Title: Module SEO01 Software Evolution
1Module SE-O-01Software Evolution
Topic 2 Evolution within development life cycles
2Contents
- Traditional vs evolutionary process model
- Examples of evolutionary models
3Traditional process model
- E.g., waterfall process model (Royce, 1970)
- inspired by established engineering disciplines
- maintenance final phase only bug fixing and
minor adjustments
4Evolutionary process model
version 1.
0
version 2.
0
Require ment
Require ment
s
s
Design
Design
Implemen tation
Implemen tation
evolution
evolution
Testing
Testing
Deploy ment
Deploy ment
5Evolution processes
- Main characteristics
- change requests are the driver for software
evolution - change identification and evolution continue
throughout the software lifetime - The choice of a particular evolution process
depends on - The type of software being maintained
- The development processes used
- The skills and experience of the people involved
6Evolution processes
- Change identification and evolution
- (taken from Sommerville)
Change identification process
New System
Change proposals
Software evolution process
7Contents
- Traditional vs evolutionary process model
- Examples of evolutionary models
8Evolutionary process model
- Any iterative, incremental process model can be
used for the software evolution process - Spiral Model
- Extreme Programming
- Reuse-oriented development
- Staged life-cycle
- Change mini cycle
9Evolutionary process model Example 1
- Concurrent development model
- (taken from Sommerville)
10Evolutionary process model Example 2
- Spiral model of evolution
11Evolutionary process model Example 3
- Staged life-cycle model Bennet Rajlich 1999
Initial development
evolution changes
evolutio
n
(preserves architectural integrity
evolutio
n
evolution
versio
n
2
Version 3
servicing patches
servicin
g
servicin
g
servicing
versio
n
2
Version 3
pha
e-ou
t
pha
s
t
phase-out
versio
n
2
Version 3
close-dow
n
close-dow
n
close-down
versio
n
2
Version 3
12Evolutionary process model Example 4
- Change mini-cycle Yau 1978
- Request for change
- Planning phase
- Program comprehension
- Change impact analysis
- Change implementation
- Restructuring/refactoring for change
- Change propagation
- Verification and validation
- Re-documentation
- to avoid software erosion
13Evolutionary process model Example 4
- Sommerville's software evolution process
14Evolutionary process model Urgent change requests
- Urgent changes
- may have to be implemented without going through
all stages of the software engineering process - They are needed when
- a serious system fault has to be repaired
- changes to the systems environment (e.g. an OS
upgrade) have unexpected effects - business changes require a very rapid response
(e.g. the release of a competing product)