Maintainability
- Maintainability
- the type of modifiability
representing the degree of easiness with which a
business enterprise,
system,
application, or
component
can be modified between major releases when not required by changes to requirements
As illustrated in the preceding figure, Maintainability is part of the following inheritance hierarchy:
The typical responsibilities of maintainability are to:
- Model the degree to which an application or component is able to be maintained between major releases.
- Support the analysis and specification of
maintainability requirements.
- Provide a foundation for evaluating the quality of an architecture.
Maintainability is typically decomposed into the following aggregation hierarchy of subfactors:
Maintainability is typically measured in terms of:
- Mean and maximum:
- Cost per operating hour.
- Cost to perform specific maintenance task.
- Effort (person-time) per operating hour.
- Effort (person-time) to perform specific maintenance task.
- Down (turnaround) time due to specific maintenance task.
- Times between maintenance actions
(frequency of preventative maintenance).
- The conditions (e.g., the size and structure of the
maintenance organization in terms of staff size, roles and
skills levels, and support equipment)
under which the maintenance is taking place.
Typical mechanisms for implementing maintainability include:
- Layered architectures.
- Modular software.
- Information hiding of implementation.
- Well-defined interfaces.
- Object-orientation and component-based development.
- Complete and current documentation.
- Adherence to project conventions.
The following guidelines have been found to be useful regarding maintainability:
- Because maintainability only refers to modifications that
are made between releases of major new versions of the
application or component (i.e., development that involves
changes to the architecture and significant portions of the
design and implementation), they are typically restricted to
the correction of minor defects and the production of minor enhancements.
- Maintainability should include:
- Correcting defects in or updating the associated documentation.
- Regression or new testing.