COP4331 - Object-Oriented Design and Programming

Textbook Chapter 2

The Object-Oriented Design Process

Printable slides.

Auction example files.

Chapter Topics

From Problem to Code

We discuss design and implementation from object-oriented point of view.
Focus on small and mid-size problems.

A software development process describes an approach for
building, deploying and maintaining software.

Software development process involves three phases:

Common software development processes:



Example: The Scrum Process

From Problem to Code - Iterative Software Development Process


(From Craig Larman, "Applying UML and Patterns", ch. 2,
Book link: http://authors.phptr.com/larman/uml_ooad/index.html)


The development process is iterative and incremental:


The result of each iteration is an incomplete, but executable system.

Important benefits from an iterative software development approach:


Analysis Phase

Goal: complete description of WHAT the software product should do.
Artifacts: functional specification, use cases and a glossary of terms.

Functional Specification

For example, a user manual can be used to analyze requirements for a word processor design.

Use Case

Design Phase

OO Design is the main focus of this course.

Goals
Complexity is manageable with iterative approach.
NOT a goal: to decide on implementation aspects (algorithms,
protocols, data structures, programming languages).

Artifacts

Implementation Phase

Goals: programming, testing, and deployment of the software product.

In this phase:

Back to Analysis Phase - Use Case Design

(from the Craig Larman book)

Use cases goal: discover and record functional requirements by
writing stories of using a system to help fulfill stakeholder goals.

Definitions:


Key concept: do requirements work with focus on how a system can add value and fulfill goals.


Recommendations: