Skip to main content
Article thumbnail
Location of Repository

Defect patterns and structural properties in a mature well-specified software system

By Tim Hopkins and Leslie Hatton

Abstract

Software engineering is not an empirically based discipline. As a result, many of its practices are based on little more than a generally agreed feeling that something may be true. Part of the problem is that it is both relatively young and unusually rich in new and often competing methodologies. As a result, there is little time to infer important empirical patterns of behaviour before the technology moves on. Very occasionally an opportunity arises to study the defect growth and patterns in a well-specified software system which is also well-documented and heavily-used over a long period. Here we analyse the defect growth and structural patterns in just such a system, a numerical library written in Fortran evolving over a period of 30 years. This is important to the wider community for two reasons. First, the results cast significant doubt on widely-held long standing beliefs and second, some of these beliefs are perpetuated in more modern technologies. Since we obviously generalise from older languages to new, it makes good sense to use empirical long-term data when it becomes available to re-calibrate those generalisations. At the same time, the results contain intriguing glimpses into defect behaviour which may transcend whatever technology is in use

Topics: QA76
Publisher: UKC
OAI identifier: oai:kar.kent.ac.uk:24040

Suggested articles

Citations

  1. (1999). A critique of software defect prediction models. doi
  2. (1976). A software complexity measure. doi
  3. (2005). Air vehicle C++ coding standards.
  4. (1977). An extension to cyclomatic measure of program complexity. doi
  5. (1997). Do formal methods really work ? doi
  6. (1998). Does OO sync with the way we think ? doi
  7. (2003). Empirical analysis of CK metrics for object-oriented design complexity: Implications for software defects. doi
  8. (1968). Go to statement considered harmful. doi
  9. (2004). Guidelines for the use of the programming language C in critical systems.
  10. (1998). Guidelines for the use of the programming language C in vehicle based systems.
  11. (2007). Modeling the effect of size on defect proneness for open-source software. doi
  12. Month 20YY. Defect patterns and structural properties in a mature well-specified software system
  13. Month 20YY.Defect patterns and structural properties in a mature well-specified software system
  14. (1988). NPATH: A measure of execution path complexity and its applications. doi
  15. (1982). Number of faults per line of code. doi
  16. (2008). Power-law distributions of component sizes in general software systems. doi
  17. (1997). Re-examining the fault density v. component size connection. doi
  18. (1995). Safer C: Developing software in high-integrity and safety-critical systems. doi
  19. (2004). Safer language subsets: an overview and a case history, doi
  20. (2005). Scale-free geometry in OO programs. doi
  21. (2008). The effectiveness of software diversity. doi

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.