22
1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

Embed Size (px)

Citation preview

Page 1: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

1

Chapter 11 Software Evolution

This chapter is extracted from Sommerville’s slides.

Text book chapter 21

1

Page 2: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

2

Objectives Understand that change is inevitable if

software systems are to remain useful Learn different types of software maintenance

and factors that effect its costs Understand software re-engineering.

2

Page 3: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

3

Overview Software evolution Software maintenance Evolution process System Re-engineering

3

Page 4: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

4

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. Software development, therefore, does not stop

when a system is delivered but continues throughout the lifetime of the system .

Page 5: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

5

Importance of Evolution Organizations have huge investments in their

software systems. 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 evolving existing software rather than developing new software.

Page 6: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

6

Spiral model of evolution

Specification Implemention

ValidationOperation

Start

Release 1

Release 2

Release 3

Page 7: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

7

Evolution vs maintenance If a single organization is responsible for both the

initial software development and the evolution evolution

When the software is developed externally and the evolution is the responsibility of the customer’s software

development staff maintenance or an external company for system support and evolution

maintenance Maintenance usually applies to custom software

whereas evolution applies to generic software.

Page 8: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

8

Software Maintenance Modifying a program after it has been put into

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

Page 9: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

9

Types of maintenance Maintenance to repair software faults (corrective

maintenance) Correct coding errors, design errors, or requirement

errors. Maintenance to adapt software to a different

operating environment (adaptive maintenance) 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 (perfective maintenance) Modifying the system to satisfy new requirements.

Page 10: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

10

Distribution of maintenance efforts

Functionalityaddition or

modification(65%)

Fault repair(17%)

Softwareadaptation

(18%)

Page 11: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

11

Maintenance costs Vary from one application domain to another. (Guimaraes 1983) suggests that the

maintenance costs for business application systems are comparable with development costs. For real-time systems, maintenance costs may be up to 4 times higher than development costs.

Ageing software can have high support costs (e.g. old languages, compilers etc.).

Page 12: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

12

Development and maintenance costs

0 50 100 150 200 250 300 350 400 450 500

System 1

System 2

Development costs Maintenance costs

$

Page 13: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

13

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.

Page 14: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

14

Evolution process 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. Change identification and evolution continue throughout the system lifetime.

Page 15: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

15

Change identification and evolution

Change proposalsNew system

Change identificationprocess

Software evolutionprocess

Page 16: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

16

The system evolution process

Releaseplanning

Changeimplementation

Systemrelease

Impactanalysis

Changerequests

Platformadaptation

Systemenhancement

Fault repair

Page 17: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

17

Change implementation

Requirementsupdating

Softwaredevelopment

Requirementsanalysis

Proposedchanges

Page 18: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

18

System Re-engineering Re-structuring or re-writing 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.

Re-engineering involves adding effort to make them easier to maintain. The system may be re-structured and re-documented.

Difference between system re-engineering and new system development (forward engineering) is the starting point.

Page 19: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

19

Forward and re-engineering

Understanding andtransformation

Existingsoftware system

Re-engineeredsystem

Design andimplementation

Systemspecification

Newsystem

Software re-engineering

Forward engineering

Page 20: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

20

The re-engineering process

Reverseengineering

Programdocumentation

Datare-engineering

Original data

Programstructure

improvement

Programmodularisation

Structuredprogram

Re-engineereddata

Modularisedprogram

Originalprogram

Source codetranslation

Page 21: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

21

Re-engineering 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.

Page 22: 1 Chapter 11 Software Evolution This chapter is extracted from Sommerville’s slides. Text book chapter 21 1

22

Re-engineering 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.