Documente Academic
Documente Profesional
Documente Cultură
ObjectOrientedSoftwareEngineering
Chapter 15,
Software Life
Cycle
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
Childhood
Pre
Development
BerndBruegge&AllenH.Dutoit
Adulthood
Development
Development
Retirement
Post
Development
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
System Design
Detailed Design
Application
Application
Domain
Domain
Program Implementation
Testing
Delivery
Maintenance
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
Solution
Solution
Domain
Domain
Application
Application
Domain
Domain
System Design
Object Design
Implementation
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
Solution
Solution
Domain
Domain
Definitions
Software life cycle:
Set of activities and their relationships to each other
to support the development of a software system
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
<<include>>
<<include>>
Problem definition
Client
System development
Project manager
BerndBruegge&AllenH.Dutoit
Developer
System operation
Administrator
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
End user
10
Problem
definition
activity
System
development
activity
System
operation
activity
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
11
System
development
activity
System
upgrade
activity
Market
creation
activity
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
12
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
13
SoftwareDevelopment
Lessonslearned
document
Marketsurvey
document
Systemspecification
document
Executablesystem
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
14
Workproduct
consumes
Problemdefinition
activity
Systemdevelopment
activity
produces
consumes
produces
Systemoperation
activity
consumes
produces
BerndBruegge&AllenH.Dutoit
Marketsurvey
document
Specification
document
Executablesystem
Lessonslearned
document
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
15
Project
Project
Management
Management
PrePreDevelopment
Development
> Concept
Exploration
> System
Allocation
DevelopDevelopment
ment
PostPostDevelopment
Development
> Requirements
> Design
> Implementation
CrossCrossDevelopment
Development
(Integral
(IntegralProcesses)
Processes)
> Installation
> Operation &
Support
> Maintenance
> Retirement
>V&V
> Configuration
Management
> Documentation
> Training
Process
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
16
Development
Development
Process
Process
Design
Design
Activity
Activity
Design
Design
Database
Database
Make
Makeaa
Purchase
Purchase
Recommendation
Recommendation
Task
Task
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
17
Money
*
Process Group
Time
Participant
*
Process
Work Unit
consumed by
*
Activity
BerndBruegge&AllenH.Dutoit
Resource
Task
*
produces
Work Product
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
18
Process Maturity
A software development process is mature
if the development activities are well defined and
if management has some control over the quality, budget
and schedule of the project
Assumption:
With increasing maturity the risk of project failure
decreases
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
19
CMM levels
1. Initial Level
also called ad hoc or chaotic
2. Repeatable Level
Process depends on individuals ("champions")
3. Defined Level
Process is institutionalized (sanctioned by management)
4. Managed Level
Activities are measured and provide feedback for resource
allocation (process itself does not change)
5. Optimizing Level
Process allows feedback of information to change process
itself
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
20
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
21
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
22
Problems:
Need to watch a lot (Big brother, big sister)
Overhead to capture, store and analyse the required
information
Agile Methodologies
Deemphasize the importance of process maturity
=> Lecture on Methodologies
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
23
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
24
The Waterfall
Model of the
Software Life
Cycle
Concept
Exploration
Process
System
Allocation
Process
Requirements
Process
Design
Process
Implementation
Process
Verification
& Validation
Process
Installation
Process
Operation &
Support Process
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
25
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
26
Activity Diagram of
MIL DOD-STD-2167A
System
Requirements
Analysis
Preliminary
Design
System
Requirements
Review
Preliminary
Design Review
System
Design
Detailed
Design
System
Design
Review
Critical Design
Review (CDR)
Software
Requirements
Analysis
Software
Specification
Review
BerndBruegge&AllenH.Dutoit
CSC
Integration
& Testing
Coding &
CSU Testing
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
27
System
Testing
nts
Analysis
Integration
Testing
System
Design
Object
Design
Unit
Testing
Implementation
Unit
Testing
Integration
Testing
System
Testing
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
28
Operation
Is validated by
precedes
Software
Requirements
Elicitation
Client
Acceptance
System
Integration
&Test
Requirements
Analysis
Component
Integration
&Test
Preliminary
Design
Detailed
Design
Unit
Test
Developers Perception
User Perception
29
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
Properties of Waterfall-based
Models
Managers love waterfall models
Nice milestones
No need to look back (linear system)
Always one activity at a time
Easy to check progress during development: 90%
coded, 20% tested
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
30
http://en.wikipedia.org/wiki/File:Escher_Waterfall.jpg
Note: The image is copyrighted
Escherwasthefirst:)
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
31
http://www.cs.technion.ac.il/~gershon/EscherForReal/EscherWaterf
all2Penrose.gif
Note: The image is copyrighted
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
32
Spiral Model
The spiral model proposed by Boehm has the following
set of activities
Determine objectives and constraints
Evaluate alternatives
Identify risks
Resolve risks by assigning priorities to risks
Develop a series of prototypes for the identified risks starting
with the highest risk
Use a waterfall model for each prototype development
If a risk has successfully been resolved, evaluate the results of
the round and plan the next round
If a certain risk cannot be resolved, terminate the project
immediately
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
33
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
34
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
35
Project
Project
Start
Start
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
36
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
37
Concept
ConceptofofOperation
Operation
Activity
Activity
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
38
Requirements
Requirementsand
and
Life
Lifecycle
cyclePlanning
Planning
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
39
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
40
Comparison of Projects
Determine objectives,
alternatives, & constraints
Evaluate alternatives,
identify & resolve risks
Risk
analysis
Risk
analysis
Project P1
Risk
analysis
P1
Prototype3
Prototype2
Prototype1
Requirements
plan
Concept of
operation
Development Requirements
plan validation
Integration Design
plan validation
Software
Requirements
System
Product
Design
P2
Detailed
Design
Code
Unit Test
Acceptance
Test
BerndBruegge&AllenH.Dutoit
Project P2
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
41
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
42
An Alternative: Issue-Based
Development
A.I1:Open
SD.I1:Closed
SD.I3:Closed
I2:Closed
I3:Closed
A.I2:Open
Planning
BerndBruegge&AllenH.Dutoit
Requirements Analysis
SD.I2:Closed
System Design
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
43
I3:Open
A.I2:Open
SD.I1:Open
Analysis
Analysis
SD.I3:Open
SD.I2:Open
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
44
I3:Open
A.I2:Open
SD.I1:Open
Analysis
Analysis
SD.I3:Open
SD.I2:Open
Design
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
45
I3:Closed
A.I2:Closed
SD.I1:Open
Analysis
SD.I3:Open
SD.I2:Open
Design
Implementation
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
46
I3:Closed
A.I2:Closed
SD.I1:Open
Analysis
SD.I3:Open
SD.I2:Open
Design
Implementation
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
47
I3:Open
Imp.I1:Open
Analysis:80%
Design: 10%
Implementation: 10%
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
48
I3:Open
SD.I2:Open
Imp.I1:Open
Imp.I3:Open
Analysis:40%
Imp.I2:Open
Design: 60%
Implementation: 0%
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
49
I2:Closed
I3:Closed
A.I2:Closed
SD.I1:Open
SD.I3:Open
Analysis:10%
SD.I2:Closed
Design: 10%
Implementation: 60%
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
50
I2:Closed
I3: Pending
A.I2:Closed
SD.I1:Open
SD.I3:Closed
SD.I2: Unresolved
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
51
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
52
Summary
Software life cycle models
Sequential models
Pure waterfall model and V-model
Sawtooth model
Iterative model
Boehms spiral model
Rounds
Comparison of projects
Prototyping
Revolutionary and evolutionary prototyping
Time-boxed prototyping instead of rapid prototyping
Entity-oriented models
Issue-based model
Sequential models can be modeled as special cases of
the issue-based model.
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
53
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
54
Questions
Boehms spiral model is usually shown in a polar
coordinate system.
Why did Boehm use such a notation?
What are the problems with such a notation?
What happens if you attempt to remodel the
spiral model in UML?
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
55
Initial
Repeatable
Defined
Managed
Optimizing
70%
15%
< 10%
< 5%
< 1%
Source: Royce, Project Management, page 364
Citation needs to be updated
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
56
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
57
Requirements
elicitation
nonfunctional
requirements
functional
model
use case
diagram
Analysis
class
diagram
System design
BerndBruegge&AllenH.Dutoit
statechart
diagram
object
model
dynamic
model
sequence
diagram
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
58
subsystem
decomposition
design goals
Object
design
class
diagram
source
code
Testing
BerndBruegge&AllenH.Dutoit
object
design
model
Implemen-tation
deliverable
system
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
59
Functional Prototype
Implement and deliver an operational system with
minimum functionality
Then add more functionality
Order identified by risk
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
60
Types of Prototyping
Revolutionary Prototyping
Also called specification prototyping
Get user experience with a throwaway version to get the
requirements right, then build the whole system
Advantage: Can be developed in a short amount of
time.
Disadvantage: Users may have to accept that
features in the prototype are expensive to implement
Evolutionary Prototyping
The prototype is used as the basis for the
implementation of the final system
Advantage: Short time to market
Disadvantage: Can be used only if target system can
be constructed in prototyping language
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
61
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
62
References
Readings used for this lecture
[Bruegge-Dutoit] Chapter 12
[Humphrey 1989] Watts Humphrey, Managing the
Software Process, SEI Series in Software Engineering,
Addison Wesley, ISBN 0-201-18095-2
Additional References
[Royce 1970] Winston Royce, Managing the Development
of Large Software Systems, Proceedings of the IEEE
WESCON, August 1970, pp. 1-9
SEI Maturity Questionaire, Appendix E.3 in [Royce 1998],
Walker Royce, Software Project Management,
Addison-Wesley, ISBN0-201-30958-0
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
63
Additional References
Overview of Capability Maturity Models
http://www.sei.cmu.edu/cmm/cmms/cmms.html
Personal Process
http://www.sei.cmu.edu/tsp/psp.html
Team Process:
http://www.sei.cmu.edu/tsp/tsp.html
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
64
Summary
Software life cycle
The development process is broken into individual pieces
called software development activities
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
65
BerndBruegge&AllenH.Dutoit
Recommendation: Level 1
managers & developers
should not concentrate on
metrics and their meanings,
They should first attempt to
adopt a process model
(waterfall, spiral model,
saw-tooth, macro/micro
process lifecycle, unified
process)
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
66
Level 2 Metrics:
Software size: Lines of
code, Function points,
classes or method counts
Personnel efforts:
person-months
Technical expertise
Experience with
application domain
Design experience
Tools & Method
experience
Employee turnover
within project
"Champion"
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
67
600
3000
500
2500
25000
400
2000
20000
300
1500
200
1000
100
500
30000
15000
10000
5000
0
F'89 F'91 F'92
S'91 S'92 S'93
Lines of Code
BerndBruegge&AllenH.Dutoit
# of Classes
Lines of Code/Student
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
68
BerndBruegge&AllenH.Dutoit
Implementation complexity:
Number of code modules,
code complexity
Testing complexity: Number
of paths to test, number of
class interfaces to test
Thoroughness of Testing:
Requirements defects
discovered
Design defects
discovered
Code defects discovered
Failure density per unit
(subsystem, code
module, class
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
69
BerndBruegge&AllenH.Dutoit
Defect identification:
How and when (which
review) are defects
discovered?
Defect density:
When is testing complete?
Configuration management:
Is it used during the
development process?
(Has impact on tracability
of changes).
Module completion time:
Rate at which modules
are completed (Slow rate
indicates that the process
needs to be improved).
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
70
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
71
Level 1 questions:
Level 2 questions:
Software size: How big is the system?
Personnel effort: How many person-months have been
invested?
Technical expertise of the personnel:
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
72
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
73
Level 5 questions:
Did we use measures obtained during development to
influence our design or implementation activities?
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
74
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
75
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
76
Quality management:
The organization has defined a set of quality goals
for software products. It monitors and adjusts the
goals and products to deliver high-quality products to
the user.
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
77
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
78
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
79