0% found this document useful (0 votes)
15 views32 pages

L09 SW Evolution

The document discusses the inevitability and importance of software evolution, highlighting the need for organizations to manage changes in their software systems due to new requirements, errors, and environmental shifts. It covers various aspects of software evolution processes, legacy systems, software reengineering, and maintenance, emphasizing the challenges and costs associated with maintaining and updating existing software. Additionally, it addresses the risks of legacy system replacement and the advantages of reengineering as a cost-effective alternative to new software development.

Uploaded by

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

L09 SW Evolution

The document discusses the inevitability and importance of software evolution, highlighting the need for organizations to manage changes in their software systems due to new requirements, errors, and environmental shifts. It covers various aspects of software evolution processes, legacy systems, software reengineering, and maintenance, emphasizing the challenges and costs associated with maintaining and updating existing software. Additionally, it addresses the risks of legacy system replacement and the advantages of reengineering as a cost-effective alternative to new software development.

Uploaded by

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

Lecture 9

Software
Evolution

1
Topics covered

EVOLUTION LEGACY SOFTWARE SOFTWARE


PROCESSES SYSTEMS REENGINEERING MAINTENANCE

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

3
Importance of evolution
• 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.
• Most of the software budget in large companies is
devoted to changing and evolving existing
software rather than developing new software.

4
9.1
Evolution
processes

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

6
Change identification and
evolution processes

7
The software evolution process

8
Change implementation

9
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,
• How the proposed change might affect the program.
10
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).

11
The emergency repair process

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

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

14
9.2
Legacy
systems

15
Legacy systems
• Legacy systems are older systems that rely on
languages and technology that are no longer used
for new systems development.
• Legacy software may be dependent on older
hardware, such as mainframe computers and may
have associated legacy processes and
procedures.
• Legacy systems are not just software systems but
are broader socio-technical systems that include
hardware, software, libraries and other supporting
software and business processes.
16
The elements of a legacy system

17
Legacy system components
• System hardware. Legacy systems may have been
written for hardware that is no longer available.
• Support software. The legacy system may rely on a
range of support software, which may be obsolete or
unsupported.
• Application software. The application system that
provides the business services is usually made up of a
number of application programs.
• Application data. These are data that are processed
by the application system. They may be inconsistent,
duplicated or held in different databases.

18
Legacy system components
• Business processes. These are processes that
are used in the business to achieve some
business objective.
• Business processes may be designed around a legacy
system and constrained by the functionality that it provides.
• Business policies and rules. These are
definitions of how the business should be carried
out and constraints on the business. Use of the
legacy application system may be embedded in
these policies and rules.

19
Legacy system replacement
• Legacy system replacement is risky and expensive
so businesses continue to use these systems
• System replacement is risky for a number of
reasons
• Lack of complete system specification
• Tight integration of system and business processes
• Undocumented business rules embedded in the legacy
system
• New software development may be late and/or over budget

20
Legacy system categories
• Low quality, low business value
• These systems should be scrapped.
• Low-quality, high-business value
• These make an important business contribution but are
expensive to maintain. Should be re-engineered or replaced if
a suitable system is available.
• High-quality, low-business value
• Replace with COTS, scrap completely or maintain.
• High-quality, high business value
• Continue in operation using normal system maintenance.

21
9.3
Software
reengineering

22
Software reengineering
• Restructuring or rewriting part or all of a
legacy system without changing its
functionality.
• Applicable where some but not all sub-systems
of a larger system require frequent
maintenance.
• Reengineering involves adding effort to make
them easier to maintain. The system may be re-
structured and re-documented.

23
Advantages of reengineering
• Reduced risk
• There is a high risk in new software development. There
may be development problems, staffing problems and
specification problems.
• Reduced cost
• The cost of re-engineering is often significantly less than
the costs of developing new software.

24
The reengineering process

25
Reengineering process
activities
• Source code translation
• Convert code to a new language.
• Reverse engineering
• Analyze the program to understand it;
• Program structure improvement
• Restructure automatically for understandability;
• Program modularization
• Reorganize the program structure;
• Data reengineering
• Clean-up and restructure system data.

26
Reengineering cost factors
• The quality of the software to be reengineered.
• The tool support available for reengineering.
• The extent of the data conversion which is
required.
• The availability of expert staff for reengineering.
• This can be a problem with old systems based on technology
that is no longer widely used.

27
9.4
Software
maintenance

28
Software maintenance
• Modifying a program after it has been put into use.
• The term is mostly used for changing custom
software. Generic software products are said to
evolve to create new versions.
• Maintenance does not normally involve major
changes to the system’s architecture.
• Changes are implemented by modifying existing
components and adding new components to the
system.

29
Types of maintenance
• Fault repairs
• Changing a system to fix bugs/vulnerabilities and correct
deficiencies in the way meets its requirements.
• Environmental adaptation
• Maintenance to adapt software to a different operating
environment
• Changing a system so that it operates in a different
environment (computer, OS, etc.) from its initial
implementation.
• Functionality addition and modification
• Modifying the system to satisfy new requirements.

30
Maintenance effort distribution

31
Maintenance costs
• Usually greater than development costs (2* to
100* depending on the application).
• Affected by both technical and non-technical
factors.
• Increases as software is maintained.
Maintenance corrupts the software structure so
makes further maintenance more difficult.
• Ageing software can have high support costs
(e.g. old languages, compilers etc.).

32

You might also like