0% found this document useful (0 votes)
31 views18 pages

Evolution Phase

The document discusses software evolution, including that software change is inevitable, organizations invest heavily in evolving existing software, and a spiral model can represent the development and evolution process. It also covers software stages of evolution and servicing, the software evolution process, addressing urgent changes, and Lehman's laws of software evolution.

Uploaded by

jaja500x
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views18 pages

Evolution Phase

The document discusses software evolution, including that software change is inevitable, organizations invest heavily in evolving existing software, and a spiral model can represent the development and evolution process. It also covers software stages of evolution and servicing, the software evolution process, addressing urgent changes, and Lehman's laws of software evolution.

Uploaded by

jaja500x
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Software Evolution

1
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.

2
Importance of evolution
 Organisations 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.

3
A spiral model of development and evolution

4
Software Stages: 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.

5
Change identification and evolution processes

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.
6
The software evolution process

7
Change implementation

8
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.

9
Urgent change requests
 Urgentchanges 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).

10
The emergency repair process

11
Agile methods and evolution
 Agilemethods 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.
 Automatedregression testing is particularly valuable
when changes are made to a system.
 Changes may be expressed as additional user
stories.

12
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 simplified as is expected in agile
development.

13
Program evolution dynamics
 Program evolution dynamics is the study of the
processes of system change
 After major empirical studies, Lehman and Belady
proposed that there were a number of “laws” which
applied to all systems as they evolved
 There are sensible observations rather than laws.
They are applicable to large systems developed by
large organisations. Perhaps less applicable in
other cases

14
Lehman’s laws

Law Description
Continuing change A program that is used in a real-world environment must necessarily
change, or else become progressively less useful in that
environment.
Increasing As an evolving program changes, its structure tends to become more
complexity complex. Extra resources must be devoted to preserving and
simplifying the structure.
Large program Program evolution is a self-regulating process. System attributes
evolution such as size, time between releases, and the number of reported
errors is approximately invariant for each system release.
Organizational Over a program’s lifetime, its rate of development is approximately
stability constant and independent of the resources devoted to system
development.

15
Lehman’s laws

Law Description
Conservation of familiarity Over the lifetime of a system, the incremental change in each
release is approximately constant.
Continuing growth The functionality offered by systems has to continually
increase to maintain user satisfaction.
Declining quality The quality of systems will decline unless they are modified to
reflect changes in their operational environment.
Feedback system Evolution processes incorporate multiagent, multiloop
feedback systems and you have to treat them as feedback
systems to achieve significant product improvement.

16
Applicability of Lehman’s laws
 Lehman’s laws seem to be generally applicable to
large, tailored systems developed by large
organisations.
 Confirmed in early 2000’s by work by Lehman on the
FEAST project.
 It is not clear how they should be modified for
 Systems that incorporate a significant number of COTS
components;
 Small organisations;
 Medium sized systems.

17
Key points
 Software development and evolution can be thought of
as an integrated, iterative process that can be
represented using a spiral model.
 For custom systems, the costs of software maintenance
usually exceed the software development costs.
 The process of software evolution is driven by requests
for changes and includes change impact analysis,
release planning and change implementation.
 Lehman’s laws, such as the notion that change is
continuous, describe a number of insights derived from
long-term studies of system evolution.

18

You might also like