Lecture 2
Lecture 2
Classical Software
Engineering
Eighth Edition, WCB/McGraw-Hill, 2010
Stephen R. Schach
[email protected]
CHAPTER 2
SOFTWARE
LIFE-CYCLE
MODELS
2
Overview
• Software development in theory
• Winburg mini case study
• Lessons of the Winburg mini case study
• Teal tractors mini case study
• Iteration and incrementation
• Winburg mini case study revisited
• Risks and other aspects of iteration and
incrementation
• Managing iteration and incrementation
• Other life-cycle models
• Comparison of life-cycle models
3
2.1 Software Development in Theory
Ideally, software is
developed as described in
Chapter 1
Linear
Starting from scratch
Figure 2.1
Software Development in Practice
In the real world, software development is
totally different
We make mistakes
The client’s requirements change while the
software product is being developed
5
2.2 Winburg Mini Case Study
• Episode 1: The first version is implemented
• Epilogue:
6
A few years later, these problems recur
Evolution-Tree Model
Figure 2.2
Waterfall Model
Figure 2.3
Return to the Evolution-Tree Model
• The explicit order of events is shown
• Example:
– Baseline at the end of Episode 3:
• Requirements1, Analysis1, Design3, Implementation3
9
2.3 Lessons of the Winburg Mini Case
Study
• In the real world, software development is
more chaotic than the Winburg mini case
study
10
2.4 Teal Tractors Mini Case Study
• While the Teal Tractors software product is
being constructed, the requirements change
12
Moving Target Problem
A change in the requirements while the
software product is being developed
13
Moving Target Problem (contd)
Any change made to a software product can
potentially cause a regression fault
A fault in an apparently unrelated part of the
software
14
Moving Target Problem (contd)
Change is inevitable
Growing companies are always going to change
If the individual calling for changes has sufficient
clout, nothing can be done about it
15
2.5 Iteration and Incrementation
• In real life, we cannot speak about “the
analysis phase”
– Instead, the operations of the analysis phase are
spread out over the life cycle
16
Miller’s Law
• At any one time, we can concentrate on only
approximately seven chunks (units of
information)
18 Figure 2.4
Classical Phases versus Workflows
Sequential phases do not exist in the real world
19
Workflows
• All five core workflows are performed over the
entire life cycle
• Examples:
– At the beginning of the life cycle
• The requirements workflow predominates
– At the end of the life cycle
• The implementation and test workflows predominate
Figure 2.5
2.7 Risks and Other Aspects of Iter. and
Increm.
• We can consider the project as a whole as a set
of mini projects (increments)
22
Risks and Other Aspects of Iter. and Increm.
(contd)
During each mini project we
Extend the artifacts (incrementation);
Check the artifacts (test workflow); and
If necessary, change the relevant artifacts
(iteration)
23
Risks and Other Aspects of Iter. and Increm.
(contd)
• Each iteration can be viewed as a small but
complete waterfall life-cycle model
24
Strengths of the Iterative-and-Incremental
Model
• There are multiple opportunities for checking
that the software product is correct
– Every iteration incorporates the test workflow
– Faults can be detected and corrected early
25
Strengths of the Iterative-and-Incremental
Model (contd)
• We can mitigate (resolve) risks early
– Risks are invariably involved in software
development and maintenance
27
2.9 Other Life-Cycle Models
• The following life-cycle models are presented
and compared:
– Code-and-fix life-cycle model
– Waterfall life-cycle model
– Rapid prototyping life-cycle model
– Open-source life-cycle model
– Agile processes
– Synchronize-and-stabilize life-cycle model
– Spiral life-cycle model
28
2.9.1 Code-and-Fix Model
No design
No
specifications
Maintenance
nightmare
Figure 2.8
Code-and-Fix Model (contd)
The easiest way to develop software
30
2.9.2 Waterfall Model
31
Figure 2.9
2.9.2 Waterfall Model (contd)
Characterized by
Feedback loops
Documentation-driven
Advantages
Documentation
Maintenance is easier
Disadvantages
Until the final stage of the development cycle is
complete, a working model of the software does not
lie in the hands of the client. Thus, he is hardly in a
position to inform the developers, if what has been
32 designed is exactly what he had asked for.
2.9.3 Rapid Prototyping Model
Linear
model
“Rapid”
Figure 2.10
2.9.4 Open-Source Life-Cycle Model
• Two informal phases
35
Open-Source Life-Cycle Model (contd)
Figure 2.11
Open-Source Life-Cycle Model (contd)
• Closed-source software is maintained and
tested by employees
– Users can submit failure reports but never fault
reports (the source code is not available)
37
Open-Source Life-Cycle Model (contd)
• Core group
– Small number of dedicated maintainers with the
inclination, the time, and the necessary skills to
submit fault reports (“fixes”)
– They take responsibility for managing the project
– They have the authority to install fixes
• Peripheral group
– Users who choose to submit defect reports from
time to time
38
Open-Source Life-Cycle Model (contd)
Consequently, in an open-source project,
there are generally no specifications and no
design
39
Open-Source Life-Cycle Model (contd)
• Open-source software production has
attracted some of the world’s finest software
experts
– They can function effectively without
specifications or designs
40
Open-Source Life-Cycle Model (contd)
• The open-source life-cycle model is restricted
in its applicability
41
Open-Source Life-Cycle Model (contd)
• About half of the open-source projects on the
Web have not attracted a team to work on the
project
42
2.9.5 Agile Processes
• Somewhat controversial new approach
• Pair programming
43
Unusual Features of XP
• The computers are put in the center of a large
room lined with cubicles
44
Agile Processes (contd)
• A principle in the Manifesto is
– Deliver working software frequently
– Ideally every 2 or 3 weeks
46
Agile Processes (contd)
• Another common feature of agile processes is
stand-up meetings
– Short meetings held at a regular time each day
– Attendance is required
47
Agile Processes (contd)
The aim of a stand-up meeting is
To raise problems
Not solve them
48
2.9.6 Synchronize-and Stabilize Model
• Microsoft’s life-cycle model
• Draw up specifications
49
Synchronize-and Stabilize Model
(contd)
• At the end of the day — synchronize their
code with that of other teams (test and
debug)
50
2.10 Comparison of Life-Cycle Models
• Different life-cycle models have been
presented
– Each with its own strengths and weaknesses
• Best suggestion
– “Mix-and-match” life-cycle model
51
Comparison of Life-Cycle Models
(contd)
Figure 2.14
52