| Term 
 
        | Lehan's Laws to Program Evolution |  | Definition 
 
        | 
Continuing Change Increasing ComplexityLarge program evolutionOrganizational stabilityConservation of familiarityContinuing growthDeclining qualityFeedback system |  | 
        |  | 
        
        | Term 
 
        | The three different type of software maintenance |  | Definition 
 
        | 
Maintenance to repair software faultsMaintenance to adapt the software to a dfferent operating environmentMaintenance to add to or modify the system's functionality |  | 
        |  | 
        
        | Term 
 
        | Key factors that distinguish development and maintenance, and which lead to higher maintenance costs |  | Definition 
 
        | 
Team stabilityContractual responsibilityStaff skillsProgram age and structure |  | 
        |  | 
        
        | Term 
 
        | Maintenance predictions that are closely related |  | Definition 
 
        | 
Whether a system change should be accepted depends, on the maintainability of the system components affected by that changeImplementing system changes tends to degrade the system structure and hence reduce its maintainabilityMaintenance costs depend on the number of changes, and the costs of change implementation depend on the maintainability of system components |  | 
        |  | 
        
        | Term 
 
        | Examples of process metrics that can be used for assessing maintainability |  | Definition 
 
        | 
Number of requests for corrective maintainenceAverage time required for impact analysisAverage time taken to implement a change requestNumber of outstanding change requests |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | 
Change requestsImpact analysisRelease planning
Fault repairPlatform adaptationSystem enhancement Change implementationSystem release |  | 
        |  | 
        
        | Term 
 
        | Urgent changes can arise for three reasons |  | Definition 
 
        | 
If a serious system fault occurs that has to be repaires to allow normal operation to continueIf changes to the sysm's operating environment have unexpected effects that disrupt normal operationIf there are anticipated changes to the businss running the system, such as the emergence of new compeitiors or the introduction of new legislation. |  | 
        |  | 
        
        | Term 
 
        | Two key advantages system re-engineering has over more radical approaches to system evolution. |  | Definition 
 
        | 
Reduced riskReduced cost |  | 
        |  | 
        
        | Term 
 
        | The activities in the re-engineering process |  | Definition 
 
        | 
Source code translationReverse engineeringProgram structure improvementProgram modularizationData re-engineering |  | 
        |  | 
        
        | Term 
 
        | The principle factors that affect re-engineering costs |  | Definition 
 
        | 
The quality of the software to be re-engineeredThe tool support available for re-engineeringThe extent of data conversion requiredThe availability of expert sstaff |  | 
        |  | 
        
        | Term 
 
        | Four strategic options for legacy system evolution |  | Definition 
 
        | 
Scrap the system completelyLeave the system unchanged and continue with regular maintenanceRe-engineer the system to improve its maintainabilityReplace all or part of the system with a new system |  | 
        |  | 
        
        | Term 
 
        | The four clusters of legacy systems |  | Definition 
 
        | 
Low quality, low businessLow quality, high business valueHigh quality, low business valueHigh quality, high business value |  | 
        |  | 
        
        | Term 
 
        | The four basic issues to discuss when assessing the value of a system |  | Definition 
 
        | 
The use of the systemThe business processes that are supportedThe system dependabilityThe system outputs |  | 
        |  | 
        
        | Term 
 
        | Factors to consider in the environment assessment of legacy systems |  | Definition 
 
        | 
Supplier stabilityFailure rateAgePerformanceSupport requirementsMaintenance costsInteroperability |  | 
        |  | 
        
        | Term 
 
        | Factors to considers to assess the technical quality of a system |  | Definition 
 
        | 
UnderstandabilityDocumentationDataPerformanceProgramming languageConfiguration managementTest dataPersonnel skills |  | 
        |  | 
        
        | Term 
 
        | Examples of quantitive data that might be collected while assessing legacy systems |  | Definition 
 
        | 
The number of system change requestsThe number of user interfacesThe volume of data used by the system |  | 
        |  |