0% found this document useful (0 votes)
63 views17 pages

LEcture 9 (Software Evolution)

This chapter discusses software evolution and maintenance. It covers topics like change processes for software systems, understanding software evolution, and making changes to operational software. Some key points are that software change is inevitable due to new requirements and environments, managing change to existing systems is important, and the majority of large company budgets are spent on evolving existing software rather than new development. The chapter also discusses evolution and maintenance processes, identifying and implementing changes, and factors that affect maintenance costs.

Uploaded by

umer farooq
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)
63 views17 pages

LEcture 9 (Software Evolution)

This chapter discusses software evolution and maintenance. It covers topics like change processes for software systems, understanding software evolution, and making changes to operational software. Some key points are that software change is inevitable due to new requirements and environments, managing change to existing systems is important, and the majority of large company budgets are spent on evolving existing software rather than new development. The chapter also discusses evolution and maintenance processes, identifying and implementing changes, and factors that affect maintenance costs.

Uploaded by

umer farooq
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/ 17

Chapter 9 – Software Evolution and Maintenance

Chapter 9 Software evolution 1


Topics covered

 Evolution processes
 Change processes for software systems
 Program evolution dynamics
 Understanding software evolution
 Software maintenance
 Making changes to operational software systems
 System re-engineering
 Re-writing legacy systems without change its functionality

Chapter 9 Software evolution 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.

Chapter 9 Software evolution 3


Types of changes

 Repair software faults


 Changing a system to correct deficiencies in the way meets
its requirements.
 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.
 Add to or modify the system’s functionality
 Modifying the system to satisfy new requirements.
 Improve the program structure and system
performance
 Rewriting all or parts of the system to make it more efficient
and maintainable.
Chapter 9 Software evolution 4
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.
 The majority of the software budget in large companies
is devoted to changing and evolving existing software
rather than developing new software.

Chapter 9 Software evolution 5


A spiral model of development and evolution

Chapter 9 Software evolution 6


Evolution processes

 Software evolution processes depend on


 The type( generic, bespoke) of software being maintained;
 The development(waterfall etc) 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.

Chapter 9 Software evolution 7


Change identification and evolution processes

Chapter 9 Software evolution 8


The software evolution process

Chapter 9 Software evolution 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 and how the proposed change
might affect the program.

Chapter 9 Software evolution 10


Change implementation

Chapter 9 Software evolution 11


Urgent change requests(only in some cases)

 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 or the
introduction of new legislation that affects the system.).

Chapter 9 Software evolution 12


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.
 Changes are implemented by modifying existing
components and adding new components to the system.

Chapter 9 Software evolution 13


Types of maintenance

 Maintenance to repair software faults


 Changing a system to correct deficiencies in the way meets its
requirements.
 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.
 Maintenance to add to or modify the system’s
functionality
 Modifying the system to satisfy new requirements.

Chapter 9 Software evolution 14


Figure 9.8Maintenance effort distribution

Chapter 9 Software evolution 15


Maintenance costs

 Usually greater than development costs (2* to 100*


depending on the application).
 Affected by both technical and non-technical factors.
 Ageing software can have high support costs (e.g. old
languages, compilers etc.).

Chapter 9 Software evolution 16


Maintenance cost factors

 Team stability
 Maintenance costs are reduced if the same staff are involved
with them for some time.
 Contractual responsibility
 The developers of a system may have no contractual
responsibility for maintenance so there is no incentive to design
for future change.
 Staff skills
 Maintenance staff are often inexperienced and have limited
domain knowledge.
 Program age and structure
 As programs age, their structure is degraded and they become
harder to understand and change.
Chapter 9 Software evolution 17

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy