1
SE311-Software Construction and
development
Week 4
Instructor: Ali Haider
Software change
► Software change is inevitable
► New requirements emerge when the software is used;
► The business environment changes;
► Errors must be repaired;
► New computers and equipment is added to the system;
► The performance or reliability of the system may have to be improved.
► A key problem for all organizations is implementing and managing change to their
existing software systems.
Lahore Garrison University
3
Importance of evolution
► Most large companies spend more on maintaining existing systems than on new systems development.
Based on an informal industry poll, Erlikh (2000) suggests that 85–90% of organizational software costs
are evolution costs.
► Other surveys suggest that about two-thirds of software costs are evolution costs.
► Organizations have huge investments in their software systems - they are critical business assets.
► To maintain the value of these assets to the business, they must be changed and updated.
► The majority of the software budget in large companies is devoted to changing and evolving existing
software rather than developing new software.
Lahore Garrison University
4
A spiral model of development and evolution
Lahore Garrison University
5
Evolution and servicing
Lahore Garrison University
6
Evolution and servicing
► Evolution
► The stage in a software system’s life cycle where it is in operational use and is evolving
as new requirements are proposed and implemented in the system.
► Servicing
► At this stage, the software remains useful but the only changes made are those required to keep it
operational i.e. bug fixes and changes to reflect changes in the software’s environment. No new
functionality is added.
► Phase-out
► The software may still be used but no further changes are made to it.
Lahore Garrison University
7
Evolution processes
► Software evolution processes depend on
► The type of software being maintained;
► The development processes used;
► The skills and experience of the people involved.
► Proposals for change are the driver for system evolution.
► Should be linked with components that are affected by the change, thus allowing the cost and
impact of the change to be estimated.
► Change identification and evolution continues throughout the system lifetime.
Lahore Garrison University
8
Change identification and evolution processes
Lahore Garrison University
11
The software evolution process
Lahore Garrison University
12
Change implementation
Lahore Garrison University
13
Change implementation
► Iteration of the development process where the revisions to the system are designed,
implemented and tested.
► 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 the change implementation.
► During the 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.
Lahore Garrison University
14
Urgent change requests
► Urgent changes may have to be implemented without going through all stages of the
software engineering process
► If a serious system fault has to be repaired to allow normal operation to continue;
► If changes to the system’s environment (e.g. an OS upgrade)
► have unexpected effects;
► If there are business changes that require a very rapid response (e.g. the release of a
competing product).
Lahore Garrison University
15
The emergency repair process
Lahore Garrison University
16
Agile methods and evolution
► Agile methods are based on incremental development so the transition from development
to evolution is a seamless one.
► Evolution is simply a continuation of the development process based on frequent system
releases.
► Automated regression testing is particularly valuable when changes are made to a
system.
►Changes may be expressed as additional user stories.
Lahore Garrison University
17
Handover problems
► Where the development team have used an agile approach but the evolution
team is unfamiliar with agile methods and prefer a plan-based approach.
► The evolution team may expect detailed documentation to support evolution and this is not
produced in agile processes.
► Where a plan-based approach has been used for development but the evolution
team prefer to use agile methods.
► The evolution team may have to start from scratch developing automated tests and
the code in the system may not have been refactored and simplified as is expected in
agile development.
Lahore Garrison University
16
Reference
► Software Engineering 10th Edition by Somerville chapter 9 “Software Evolution”
Lahore Garrison University