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 evolving existing software rather than developing new software.
Maintenance is inevitable
- The system requirements are likely to change while the system is being developed because the environment is changing. Therefore a delivered system won’t meet its requirements!
- Systems are tightly coupled with their environment. When a system is installed in an
environment it changes that environment and therefore changes the system requirements.
- Systems MUST be maintained therefore if they are to remain useful in an environment.
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.
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.
- 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.
The system evolution process
Legacy system evolution
- Organizations that rely on legacy systems must choose a strategy for evolving these systems
- Scrap the system completely and modify business processes so that it is no longer required;Continue maintaining the system;Transform the system by re-engineering to improve its maintainability;
- Replace the system with a new system.
- The strategy chosen should depend on the system quality and its business value.
Legacy system categories
- Low quality, low business value
- These systems should be scrapped.
- Low-quality, high-business value
- These make an important business contribution but are expensive to maintain. Should be re-engineered or replaced if a suitable system is available.
- High-quality, low-business value
- Replace with COTS, scrap completely or maintain.
- High-quality, high business value
- Continue in operation using normal system maintenance.
Business value assessment
- Assessment should take different viewpoints into account
- System end-users;
- Business customers;
- Line managers;
- IT managers;
- Senior managers.
- Interview different stakeholders and collate results.
System quality assessment
- Business process assessment
- How well does the business process support the current goals of the business?
- Environment assessment
- How effective is the system’s environment and how expensive is it to maintain?
- Application assessment
- What is the quality of the application software system?
- You may collect quantitative data to make an assessment of the quality of the application system
- The number of system change requests;
- The number of different user interfaces used by the system;
- The volume of data used by the system.