Ch7 Software Ingieering 2
Ch7 Software Ingieering 2
Ch7 Software Ingieering 2
Lecture 1
Evolution processes
▪ Change processes for software systems
Program evolution dynamics
▪ Understanding software evolution
Software maintenance
▪ Making changes to operational software systems
Legacy system management
▪ Making decisions about software change
Evolution
▪ The stage in a software system’s life cycle where it is in
operational use and is evolving as new requirements are
proposed and implemented in the system.
Servicing
▪ At this stage, the software remains useful but the only changes
made are those required to keep it operational i.e. bug fixes and
changes to reflect changes in the software’s environment. No
new functionality is added.
Phase-out
▪ The software may still be used but no further changes are made
to it.
Lecture 2
Team stability
▪ Maintenance costs are reduced if the same staff are involved
with them for some time.
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.
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.