Software Evolution

Evolution processes

Program evolution dynamics

Software maintenance

Legacy system management

Type

Environmental adaption

Fault repair

Functionality adaption

Lehman's law

Cost factors

Contractual responsibility

Staff skills

Team stability

Program age & structure

Maintenance prediction

Software reegineering

Preventive maintenance

Issues in business value assesment

Introduction

Importance

To maintain the value of these assets to the business, change & update

Devoted to changing & evolving existing software

Organisation have huge investments in their software system

Evolution & Servicing

E: SLC where in operational use and is evolving as new req proposed and implemented in the system

S: Software remain useful but the only changes made are those required

Process depend on

Development processed used

The skills and experience of the people involved

Type of software being maintained

Urgent changes

If change to system's environment have unexpected effects

If there are business changes required a very rapid response

If a serious system fault has to be repaired to allow normal operation to continue

Agile method & evolution

Handover problems

Development team have to used an agile approach but the evolution team is unfamiliar with agile methods and prefer plan-based approach

A plan-based approach has been used for development but the evolution team prefer tu use agile method

Change implementation

Definition

The study of the processes of system change

Change is inevitable

Continue change

Increase complexity

Large problem evolution

Organizational stability

Conservative of familarity

Continue growth

Declining quality

Maintenance costs

Change prediction

Advantages

Process activities

Program structre improvement

Program modularisation

Reverse engineering

Data reengineering

Source code translation

Reduced risk

Reduced cost

Cost factors

Availability of expert staff for reengineering

Extent of the data conversion which is required

Tool support available for engineering

Quality of the software to be reengineered

Refactoring & reengineering

Bad smells in program code

Switch statements

Data clumping

Long methods

Speculative generality

Duplicate code

Strategy

Scrap the system completely & modifying business process

Continue maintaining the system

Transform the system

Replace the system

Category

High Q, high BV

High Q, low BV

Low Q, high BV

Low Q, Low BV

Business process that are supported

System dependability

Use of the system

System outputs

System quality assesment

Business process assesment

Factor used in environment

Performance

Support req

Age

Maintenance costs

Failure rate

Interoperability

Supplier stability

Understandability

Documentation

P: No changed

Change identification & evolution processes

Software Evolution process

Emergency repair process

System req likely to change

Systems are tightly coupled with their environment

Systems must be changed if they are to remain useful in an environment

Feedback System

Greater than development costs

Affected by both technical & non-technical factors

Increases as software is maintained

Ageing software can have high support costs

RE takes place after a system has been maintained for some time & maintenance costs are increasing

RF is a continuous process of improvement throughout the development & evolution

Environment assmnt

Business process asmnt

Application asmnt

Performance

Data

Programming language

Configuration management

Test data

Personnel skills