Maintenance
- Maintenance
- the activity consisting of the cohesive collection of all
tasks that are primarily performed to incorporate minor fixes
and enhancements after deployment for use by the
user organizations
(i.e., between development endeavors to produce major new versions)
As illustrated in the preceding figure, Maintenance is part of the following inheritance hierarchy:
- Type: Abstract
- Superclass: Engineering Activity
- Subclasses:
- Maintenance Purpose:
- Adaptive maintenance,
which is maintenance performed to make an application usable in a changed environment.
- Corrective maintenance,
which is maintenance performed to fix minor defects.
- Perfective maintenance,
which is maintenance performed to improve a merely adequate quality factor such as
maintainability, performance, understandability, etc.
- Preventative maintenance,
which is maintenance performed to prevent defects from causing failures.
- Maintenance Scope:
The typical responsibilities of the Maintenance activity are to:
- Ensure correct functioning until the next version is deployed.
- Perform adaptive maintenance by making minor modifications due to:
- Business changes (e.g., reengineering, competition, reorganization, business-internal politics).
- Legal changes (e.g., new legislation, new regulations).
- Technology changes (e.g., hardware, software, communications, technology standardization, commercial packages).
- Physical changes (e.g., reconfiguration of data center, transfer to new locations).
- Personnel changes (e.g., changes to the users, user management, information technology staff).
- Perform corrective maintenance by correcting minor defects:
- Documentation defects.
- Data defects.
- Hardware defects.
- Software defects.
- Perform perfective maintenance by making minor improvements in correct work products:
- Rewriting parts of documents for readability.
- Refactoring software.
Maintenance typically may begin when the following preconditions hold:
Maintenance is typically complete when the following postconditions hold:
- The maintained version of the application has been either removed from service or replaced by a new version.
The maintenance activity typically involves the
maintenance team
performing the following maintenance tasks in an iterative, incremental, and parallel manner:
Maintenance is typically performed using the following environment(s) and associated tools:
Maintenance typically results in the production of the following work products:
- Maintenance Plan
- Updated system data, hardware, or software component.
- Updated developer or user documentation
The maintenance activity tasks are typically performed during the following phases:
- Maintenance depends on the quality of the work product being maintained:
- Adaptive maintenance depends on adaptability and extensibility.
- Corrective maintenance depends on correctability.
- Perfective maintenance depends on maintainability.
- Preventative maintenance depends on correctability and maintainability.
- Major modifications do not occur during maintenance but rather during the next development cycle.
- This activity is documented using the typical configuration for large projects. It is intended to be
configured (i.e., instantiated, extended, and tailored) to meet the needs of specific projects.
- The preconditions of this activity should be the union of the preconditions of its constituent tasks.
- The completion criteria for this activity should be the union of the postconditions of its constituent tasks.