Obstacles to Software Maintenance
We define a defect as an error or omission in the source code of a computer program that may cause it to malfunction. It is not always possible to identify defects directly, but there are usually patterns indicating that defects are present. We refer to these patterns as defect indicators, or obstacles to maintenance.
Through analysis of research papers and from extensive experience in performing code inspections, peer reviews, and walkthroughs, IfSQ has identified the following categories of defect indicator:
- Work In Progress (WIP): there are clear indications that the program is not yet finished
- Structured Programming (SP): there are clear indications that part of the program is too complex
- Single Point of Maintenance (SPM): values have been hard-coded into the program, or pieces of code have been duplicated at various places
- Defensive Programming (DP): there are indications that the program does not defend itself against inconsistent data or subsystem failures
- Causes for Concern (CfCs): there are concerns about the completeness, correctness and/or maintainability of the program