Analysis activity diagrams Activity diagrams describing interactions among
objects in the problem domain
Systems analysis Report and diagrams describing low-level and hard-
ware systems on which the project will be built
Application analysis document Report and diagrams describing the customer’s
requirements specific to this particular project
Operational constraints report Report describing performance characteristics and
constraints imposed by this client
Cost and planning document Report with charts and graphs indicating projected
scheduling, milestones, and costs
Step 3: The Design Phase ....................................................................................
Analysis focuses on understanding the problem domain, whereas the next step of the
processes, design, focuses on creating the solution. Designis the process of transforming
your understanding of the requirements into a model that can be implemented in soft-
ware. The result of this process is the production of a design document.
A design document can be divided into two sections: Class Design and Architectural
Mechanisms. The Class Design section, in turn, is divided into static design (which
details the various classes and their relationships and characteristics) and dynamic design
(which details how the classes interact).
The Architectural Mechanisms section of the design document provides details about
how you will implement object persistence, concurrency, a distributed object system, and
so forth. The rest of today’s lesson focuses on the class design aspect of the design docu-
ment; other lessons in the rest of this book explain elements of how to implement various
architectural mechanisms.
What Are the Classes?....................................................................................
As a C++ programmer, you are now used to creating classes. Formal design methods
require you to separate the concept of the C++ class from the concept of the design class,
although they are intimately related. The C++ class you write in code is the implementa-
tion of the class you designed. There is a one-to-one relationship: Each class in your
design corresponds to a class in your code, but don’t confuse one for the other. It is cer-
tainly possible to implement your design classes in another language, and the syntaxof
the class definitions might be changed.
350 Day 11
TABLE11.1 continued
Artifact Description