Maintainability
Introduction
Depending on the field, maintainability can have slightly different meanings:
Engineering
In engineering, maintainability is the ease with which a product can be maintained to:.
In some cases, maintainability involves a process of continuous improvement: learning from the past to improve the ability to maintain systems or improve the reliability of systems based on maintenance experience.
Telecommunications
In telecommunications and various other engineering fields, the term maintainability has the following meanings:.
Software
In software engineering, these activities are known as software maintenance (see ISO/IEC 9126). Some closely related concepts in the software engineering domain are: evolvability, modifiability, technical debt, and code stink.
The maintainability index is calculated with certain formulas based on metrics of lines of code, cyclomatic complexity and Halstead complexity.
Measuring and tracking maintainability is intended to help reduce or reverse a system's tendency toward "code entropy" or integrity degradation, as well as to indicate when it becomes cheaper and/or less risky to rewrite code than to modify it.