Mind map
Software Maintenance
Map content
Software Maintenance
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
Type of Maintenance
- Corrective Maintenance
- Identify and remove defects
- Correct actual errors
- Perfective Maintenance
- Improve performance, dependability, maintainability
- Update Documentation
- Adaptive Maintenance
- Adapt to a new environment e.g Hardware, OS, Middleware
- Incorporate new capability
- Preventive Maintenance
- Identify and detect latent faults
- System with safety concerns
- Emergency Maintenance
- Unscheduled corrective maintenance
- Corrective Maintenance
Maintenance cost factors
- Team stability
- Maintenance costs will 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 skill
- Maintenance staff are often inexperienced and have limited domain knowledge.
- Program age and sturcture
- Structure is degraded and they become harder to understand and change.
- Team stability
Maintenance Prediction
- assessing parts of the system may cause problem
- Assessing parts of the system may have high maintenance costs
Chance Prediction
- Understand the system and its environment
- Understand the relationships between a system and its environment
Complexity Metrics
- Complexity of control structures; Complexity of data structures; Object, method (procedure) and module size.
Process metrics
- 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
Evolution processes
- The type of software being maintained; The development processes used; The skills and experience of the people involved
Change implementation
- Proposed changes - requirements analysis - requirements updating - software development
Emergency Repair
- Change request - Analyse source code - modify source code - deliver modified system
System re-engineering
- Re-structuring or re-writing part or all of a legacy system without changing its functionality
- The system may be re-structured and re-documented
Advantages of reengineering
- Risk : development problems, staffing problems and specification problems
- The cost of re-engineering is often significantly less than the costs of developing new software
Reengineering process activities
- Source code translation
- Reverse engineering
- Program structure improvement
- program modularization
- Data reengineering
Reengineering cost factors
- The quality of the software to be reengineered.
- The tool support available for reengineering.
Legacy system evolution
- Separation between software development and software maintenance is unhelpful.
Legacy system categories
- Low quality, low business value
- Low-quality, high-business value
- High-quality, low-business value
- High-quality, high business value
Business value assessment
- System end-users;
- Business customers
- Line managers
- IT managers
- Senior managers
System quality assessment
- Business process assessment
- Environment assessment
- Application assessment
Information
- Description
- Mind Map on Software Maintenance, created by Fakhri Anas on 16/05/2019.
- Created by
- Fakhri Anas
- Views
- 0
- Rating