Object Oriented Analysis and Design Using The UML
Object Oriented Analysis and Design Using The UML
Requirements
Analysis & Design
Test
Configuration & Change Mgmt
Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Design Model
Use-Case Model Analysis
and Design
Architecture
Document
Glossary Supplementary
Specification
(additional ‘features’ &
non-functional requirements…)
Data Model
OOAD Using the UML - Analysis and Design Overview, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved 4
Analysis and Design Overview (continued)
Design model is an abstraction of source
code and serves as the blue print for
Construction.
Design Model consists of Design Classes
structured into Design packages
Design Model also contains descriptions as to
how objects of these design classes interact to
perform Use Cases (Use Case Realizations)
The Use Case Realizations are:
• Class diagrams and
• Interaction Diagrams
OOAD Using the UML - Analysis and Design Overview, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved 5
Analysis and Design Overview (continued)
Design activities are centered around the
notion of an architecture.
Production and validation of this architecture
is the main focus of early design iterations.
Architectural design takes place during
Elaboration.
Architecture is represented by a number of
architectural views that capture the major
structural design decisions.
Architectural views are the abstractions
or simplifications of the entire design, in
which important characteristics are made
more visible by leaving details aside.
OOAD Using the UML - Analysis and Design Overview, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved 6
Analysis and Design Overview (continued)
We will create an Analysis Model as the first
part of Analysis and Design.
We create Analysis Classes from Use Cases and
other sources of requirements (Vision, Domain
Model, …)
Our Design Model will then take the artifacts
from Analysis Modeling (analysis classes) and
create our Use Case Realizations:
Static View: Design classes, and
Dynamic View: showing how objects
collaborate in ‘realizing’ each flow in a use
case.
Analysis Design
Focus on understanding Focus on
the problem understanding the
solution
Idealized design
Operations and
(Generalized) Behavior Attributes
Separation of Concerns Performance,
System structure Efficiency…
Functional requirements Close to real code
Object lifecycles
Some recognition for non- Non-functional
functional requirements
Analysis: understanding the problem; develop a visual model of
What you are trying to build
requirements in detail
A small model A large model
Get rough cut at objects that from our system but focusing on
behavior and separation of Concerns…
End-user
Analysts/Designers Programmers
Structure Functionality
Software management
Use-Case View
Architectural
Analysis
Subsystem Design
Use-Case
Analysis
Use-Case Review the
Designer (Analysis Modeling) Design Design Design
Reviewer
(Interaction Diagrams
Use Case Realizations And Class Diagrams) Class
Design
Remember, we start off with the Use Case Model and Supplementary info (Glossary;
Domain model; business model…) from Requirements Workflow and ultimately end up with a
Design Model – an abstraction of the source code produced via an Analysis and Design
Workflow.
Design activities center around architecture – the main focus of early design iterations.
Look at the activities of the architect and the designer (roles!!)
OOAD Using the UML - Analysis and Design Overview, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved 17
The Architect (See RUP Textbook)
Establishes the overall structure for each architectural
view: This includes layers, if a layered approach…
the decomposition of the view,
the grouping of elements, and the interfaces between these
major groupings.
In contrast with the other workers, the Architect's view
is one of breadth, as opposed to depth
Frequently, the architect is the most experienced
member of the team. (likely a good idea)
Architect must constantly observe all design activities
to ensure that they are compatible with the overall
architecture.
Package/
Subsystem
Design Model Class
DB Designer: Designs tables,
stored procedures, Indexes,
etc. needed to store, maintain
Software Architecture persistent data
Document Design
Reviewer
Database Designer Data Model
Designer: Responsible for the operations, attributes, and Architecture
relationships of one or several classes and how Reviewer
they are implemented; Design packages; UC Realizations
OOAD Using the UML - Analysis and Design Overview, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved 22
Review: Analysis and Design Overview
What is the purpose of Analysis and Design?
What are the input and output artifacts?
Name and briefly describe the 4+1 Views of
Architecture.
What is the difference between Analysis and
Design?
What is the purpose of Architectural Analysis?
What is the purpose of Use-Case Analysis?
What are the major responsibilities of the
Architect, Developer, Database workers?