Artifacts and paradigms
May be used to assess maintainability:
Number of requests for corrective maintenance
Average time required for impact analysis
Average time taken to implement a change request
Number of outstanding change requests
Refactoring is a continuous process of improvement throughout the development and evolution process. It is intended to avoid the structure and code degradation that increases the costs and difficulties of maintaining a system.
Re-engineering takes place after a system has been maintained for some time and maintenance costs are increasing. You use automated tools to process and re-engineer a legacy system to create a new system that is more maintainable.
Multiple strategies for legacy systems:
Scrap the system completely
Continue maintaining the system
Transform the system by re-engineering to improve its maintainability
Replace the system with a new system
|Low quality||High quality|
|Low business value||Scrap the system||Replace with COTS, scrap or maintain|
|High business value||Re-engineer or replace||Continue in operation with maintenance|