Page 255 -
P. 255
238 Chapter 9 Software evolution
Change Impact Release Change System
Requests Analysis Planning Implementation Release
Platform System
Fault Repair
Adaptation Enhancement
Figure 9.4, adapted from Arthur (1988), shows an overview of the evolution process.
Figure 9.4 The
software evolution The process includes the fundamental activities of change analysis, release planning,
process system implementation, and releasing a system to customers. The cost and impact of
these changes are assessed to see how much of the system is affected by the change and
how much it might cost to implement the change. If the proposed changes are accepted,
a new release of the system is planned. During release planning, all proposed changes
(fault repair, adaptation, and new functionality) are considered. A decision is then made
on which changes to implement in the next version of the system. The changes are
implemented and validated, and a new version of the system is released. The process
then iterates with a new set of changes proposed for the next release.
You can think of change implementation as an iteration of the development
process, where the revisions to the system are designed, implemented, and tested.
However, a critical difference is that the first stage of change implementation may
involve program understanding, especially if the original system developers are not
responsible for change implementation. During this program understanding phase,
you have to understand how the program is structured, how it delivers functionality,
and how the proposed change might affect the program. You need this understanding
to make sure that the implemented change does not cause new problems when it is
introduced into the existing system.
Ideally, the change implementation stage of this process should modify the sys-
tem specification, design, and implementation to reflect the changes to the system
(Figure 9.5). New requirements that reflect the system changes are proposed, ana-
lyzed, and validated. System components are redesigned and implemented and the
system is retested. If appropriate, prototyping of the proposed changes may be car-
ried out as part of the change analysis process.
During the evolution process, the requirements are analyzed in detail and implica-
tions of the changes emerge that were not apparent in the earlier change analysis
process. This means that the proposed changes may be modified and further cus-
tomer discussions may be required before they are implemented.
Change requests sometimes relate to system problems that have to be tackled
urgently. These urgent changes can arise for three reasons:
1. If a serious system fault occurs that has to be repaired to allow normal operation
to continue.