Week 02 A
Week 02 A
Association
Generalization
Aggregation
Composition
Dependency
The system must be able to keep track of which movie videos
have been bought/rented and by whom.
classes & associations: customer Buys movie video;
customer Rents movie video
For videos bought, the system must record the quantity bought;
for videos rented, the system must record which copy of the
video has been rented and when it is due back.
classes & associations: customer Rents movie video;
–> movie video Has rental copy; customer Rents rental copy;
Attributes : Buys –> quantity;
Rentalcopy -> copyNumber, dateDue
The system must keep track of overdue rental videos and allow notices
to be sent to customers who have videos overdue.
functional requirement: no new domain model requirements in this
statement
The video shop will have a customer membership option for an annual
fee, which will entitle the member to discounts (10%) on video
sales and rentals.
generalization: Member is a kind of Customer
Member Specializes Customer
HasReview Rents
Reserves
* 1
* Provides 1
Review Customer
*
|
|
Buys Member
0..1
quantity
MovieVideo
title
leadingActor [0..*]
director
producer RentalCopy
genre synopsis 1 Has 0..* copyNumber 0..5
* releaseYear dateDue
runningTime *
sellingPrice
rentalPrice
Rents
1
1
HasReview
Customer
*
name address
Review phoneNumber
reviewText
Reserves
* Provides 1 faxNumber
rating age
anonymous gender email
Buys Member
quantity memberNumber
password 0..1
Waterfall Model
Evolutionary models
Evolutionary models are iterative type models.
Incremental
Spiral
Incremental development
Spiral model - software process
Existing Agile Methods
Extreme Programming (“XP”)
Scrum
Topics
Unified Process
Unified Process Workflows
UML (in general)
Use Cases
What Is a Process?
Defines Who is doing What, When to do it, and
How to reach a certain goal.
History of UP
Some roots in “Spiral Model ” of Barry Boehm
Core initial development around 1995-1998
Canadian Air Traffic Control project as test bed
Philippe Kruchten : chief architect of UP/RUP
Rational Corporation had commercial product in mind
(RUP, now owned by IBM) but also reached out to public
domain (UP)
Creating the Unified Process
OO Approach Unified Process
1998
• Object-oriented
• Use-case driven
• Architecture centric
• Iteration and incrementation
Basic Characteristics of the Unified Process
• Object-oriented
Utilizes object oriented technologies.
Classes are extracted during OOA and
designed during OOD.
Use-case driven
Utilizes use case model to describe complete
functionality of the system
Req.ts Analysis Design Impl. Test
• Architecture centric
Focus core architecture in the early iterations
In earliest iterations, get high valued
requirements
View of the whole design with the important
characteristics made more visible
Expressed initially with class diagram
Basic Characteristics of the Unified Process
Worker
Describe a
Analyst
Use Case
Phase iteration
Inception
Define business case, risks, 10% requirements identified, estimate
next phase effort.
Elaboration
Understanding of problem / architecture, risk significant units
are coded/tested, 80% requirements identified.
Construction
System design, programming and testing.
Transition
Deploy the system in its operating environment.
The Phases/Workflows of the
Unified Process Phase is Business context of a step
Workflow is
Technical
context of a step
Figure 3.1
The Phases/Workflows of the
Unified Process
NOTE: Most
of the
requirement
s work or
workflow is
done in the
inception
phase.
However
some is
done later.
Figure 3.1
The Phases/Workflows of the
Unified Process
NOTE: Most
of the
implementati
on work or
workflow is
done in
construction
However
some is
done earlier
and some
later.
Figure 3.1
Phase Deliverables
Inception Phase Elaboration Construction Transition Phase
Phase Phase
• The initial version of • The completed • The initial user • All the artifacts
the domain model domain model manual and other (final versions)
• The initial version of • The completed manuals, as • The completed
the business model business model appropriate manuals
• The initial version of • The completed • All the artifacts
the requirements requirements (beta release
artifacts artifacts versions)
• A preliminary • The completed • The completed
version of the analysis artifacts architecture
analysis artifacts • An updated version • The updated risk
• A preliminary of the architecture list
version of the • An updated list of • The project
architecture risks management plan
• The initial list of • The project (for the remainder
risks management plan of the project)
• The initial ordering (for the rest of the • If necessary, the
of the use cases project) updated business
• The plan for the • The completed case
elaboration phase business case
• The initial version of
the business case
UP Life cycle in four phases
Inception
Elaboration
Construction
Transition
6. Manage change:
- disciplined configuration management protocol,
version control,
- change request protocol
- baselined releases at iteration ends
The Unified Process
The Unified Process IS A
2-dimensional systems development process
described by a
set of phases and (dimension one)
Workflows (dimension two)
The Unified Process
Phases
Describe the business steps needed to develop,
buy, and pay for software development.
The business increments are identified as phases
Workflows
Describe the tasks or activities that a developer
performs to evolve an information system over
time
Process Overview
Phases (time)
Analysis
Design
Implementation
Test
workflows
Workflow Description
Business modelling The business processes are modelled using business use cases.
Requirements Actors who interact with the system are identified and use cases are
developed to model the system requirements.
Analysis and design A design model is created and documented using architectural
models, component models, object models and sequence models.
Implementation The components in the system are implemented and structured into
implementation sub-systems. Automatic code generation from design
models helps accelerate this process.
Test Testing is an iterative process that is carried out in conjunction with
implementation. System testing follows the completion of the
implementation.
Deployment A product release is created, distributed to users and installed in their
workplace.
Configuration and This supporting workflow managed changes to the system (see
change management Chapter 29).
Project management This supporting workflow manages the system development (see
Chapter 5).
Environment This workflow is concerned with making appropriate software tools
available to the software development team.
Primary Workflows
The Unified Process
PRIMARY WORKFLOWS
Requirements workflow
Analysis workflow
Design workflow
Implementation workflow
Test workflow
Post delivery maintenance workflow
Supplemental Workflows
Planning Workflow
Planning Workflow
Define scope of Project
Define scope of next iteration
Identify Stakeholders
Capture Stakeholders expectation
Build team
Assess Risks
Plan work for the iteration
Plan work for Project
Develop Criteria for iteration/project closure/success
UML concepts used: initial Business Model, using class diagram
Workflow
(tasks)
Analysis
Design
Primary focus Implementation
To determine the client’s needs by
Testing
eliciting both functional and
nonfunctional requirements
Gain an understanding of the
application domain
Described in the language of the
customer
Workflow
(tasks)
Analysis
Design
The aim is to determine the client’s needs Implementation
First, gain an understanding of the domain
How does the specific business environment work Testing
Second, build a business model
Use UML to describe the client’s business processes
If at any time the client does not feel that the cost is justified,
development terminates immediately
It is vital to determine the client’s constraints
Deadline -- Nowadays software products are often mission critical
Parallel running
Portability
Reliability
Rapid response time
Cost
The aim of this concept exploration is to determine
What the client needs, and
Not what the client wants
Workflow
(tasks)
Analysis
Design
Implementation
List candidate requirements
Testing
textual feature list
Understand system context
domain model describing important concepts of the
context
business modeling specifying what processes have to be
supported by the system using Activity Diagram
Capture functional and nonfunctional requirements
Use Case Model
Supplementary requirements
physical, interface, design constraints, implementation
constraints
Workflow
(tasks)
Analysis
Design
Primary focus Implementation
Analyzing and refining the requirements to
Testing
achieve a detailed understanding of the
requirements essential for developing a software
product correctly
To ensure that both the developer and
user organizations understand the
underlying problem and its domain
Written in a more precise language
Workflow
(tasks)
Analysis
The aim of the analysis workflow Design
To analyze and refine the requirements Implementation
Two separate workflows are needed
The requirements artifacts must be expressed in the language of the Testing
client
The analysis artifacts must be precise, and complete enough for the
designers
Specification document (“specifications”)
Constitutes a contract
It must not have imprecise phrases like “optimal,” or “98 percent
complete”
Having complete and correct specifications is essential for
Testing, and
Maintenance
The specification document must not have
Contradictions
Omissions
Incompleteness
Workflow
(tasks)
Analysis
Structure the Use Cases Design
Start reasoning about the internal of the system Implementation
Develop Analysis Model: Class Diagram and State Diagram
Focus on what is the problem not how to solve it Testing
Analysis
Design
The aim of the design workflow is to Implementation
refine the analysis workflow until the Testing
material is in a form that can be
implemented by the programmers
Determines the internal structure of the
software product
Workflow
(tasks)
Analysis
Design
The goal is to refine the analysis workflow until the material is Implementation
in a form that can be implemented by the programmers
Many nonfunctional requirements need to be finalized at this time, including:
Choice of programming language, Reuse issues, Portability issues. Testing
Classical Design
Architectural design
Decompose the product into modules
Detailed design
Design each module using data structures and algorithms
Object Oriented Design
Classes are extracted during the object-oriented analysis
workflow, and
Designed during the design workflow
Workflow
(tasks)
Analysis
Architectureal Design Design
Identify Design Mechanisms Implementation
Refine Analysis based on implementation environment
Testing
Characterize needs for specific mechanisms (inter-process
communication, real-time computation, access to legacy system,
persistence, …)
Assess existing implementation mechanisms
Identify Design Classes and Subsystems
A Subsystem is a special kind of Package which has behavioral
semantics (realizes one or more interfaces)
Refine analysis classes
Group classes into Packages
Identify Subsystems when analysis classes are complex
Look for strong interactions between classes
Try to organize the UI classes into a subsystem
Separate functionality used by different actors in different subsystems
Separate subsystems based on the distribution needs
Identify Interfaces of the subsystems
Workflow
(tasks)
Analysis
Design
The aim of the implementation Implementation
workflow is to implement the target Testing
software product in the selected
implementation language
Workflow
(tasks)
Analysis
Analysis
Design
Carried out in parallel with other Implementation
workflows Testing
Primary purpose
To increase the quality of the evolving
system
The test workflow is the
responsibility of
Every developer and maintainer
Quality assurance group
Workflow
(tasks)
Analysis
I t e r a tio n s
Supporting Workflows
of The Unified Process
Software Project Management
Plan
Once the client has signed off the specifications, detailed planning and
estimating begins
All previous test cases (and their expected outcomes) need to be retained
Retirement
Software is can be made unmaintainable because
A drastic change in design has occurred
The product must be implemented on a totally new hardware/operating
system
Documentation is missing or inaccurate
Hardware is to be changed—it may be cheaper to rewrite the software from
scratch than to modify it