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