Software maintenance
by Alya Hamzah
1. Meaning
1.1. The modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment”
2. Maintenance Cost
3. Maintenance cost factors
4. Team stability
4.1. Maintenance costs are reduced if the same staff are involved with them for some time.
5. Contractual responsibility
5.1. The developers of a system may have no contractual responsibility for maintenance so there is no incentive to design for future change
6. Staff skills
6.1. Maintenance staff are often inexperienced and have limited domain knowledge
7. Program age and structure
7.1. As programs age, their structure is degraded and they become harder to understand and change.
8. Maintenance Prediction
8.1. Concerned of maintenance prediction
8.1.1. Assessing parts of the system may cause problems
8.1.2. Assessing parts of the system may have high maintenance costs
8.2. Factor that influence the relationship of change prediction
8.2.1. Number and complexity of system interfaces
8.2.2. The business processes where the system is used
8.2.3. Number of inherently volatile system requirements
9. Why maintenance
9.1. Requirement change during development
9.2. Systems MUST be maintained remain useful in an environment.
9.3. Systems are tightly coupled with their environment.
10. Type of maintenance
11. Corrective Maintenance
11.1. Identify and remove defect
11.2. Correct actual error
12. Perfective Maintenance
12.1. Improve performance, dependability, maintainability,
12.2. Update documentation
13. Adaptive Maintenance
13.1. Update to new upgraded environment
13.2. Incorporate new capability
14. Preventive Maintenance
14.1. Identify and detect latent fault
14.2. System with safety concerns
15. Emergency Maintenance
15.1. Unscheduled corrective
16. List of Guideline
16.1. Predicting maintainability (What part of the system that will be the most expensive to maintain?)
16.1.1. Predictions of maintainability can be made by assessing the complexity of system components.
16.1.1.1. Complexity depends on
16.1.1.1.1. Complexity of control structures
16.1.1.1.2. Complexity of data structures
16.1.1.1.3. Object, method (procedure) and module size.
16.1.1.2. Process metrics
16.1.1.2.1. Number of requests for corrective maintenance
16.1.1.2.2. Average time required for impact analysis
16.1.1.2.3. Object, method (procedure) and module size.