ABSTRACT
We take up the questions of if and how "structured goto" statements impact defect proneness, and of which what concept of size yields a superior metric for defect prediction.
We count goto-like unstructured jumps, alongside method size and compressed method size, as software engineering metrics, and examine the evolution of 26 open-source code corpora in relation to those metrics. We employ five different measures of defectiveness and development effort. We measure the statistical quality of our metrics as predictors of our defect measurements.
We show that the number of unstructured jumps is a predictor of defects, routine maintenance and two other metrics of software development effort. The correlation between unstructured jumps and development effort is positive, and it remains so even after accounting for the effect of code size. We also show that the number of unstructured jumps is superior to code size, both compressed and uncompressed, in its predictive power of accumulated defects.
- F. E. Allen. Control flow analysis. SIGPLAN Notices, 5(7):1--19, July 1970. Google ScholarDigital Library
- H. Barkmann, R. Lincke, and W. Lowe. Quantitative evaluation of software quality metrics in open-source projects. In Advanced Information Networking and Applications Workshops, 2009. WAINA '09. International Conference on, pages 1067--1072, May 2009. Google ScholarDigital Library
- C. Böhm and G. Jacopini. Flow diagrams, Turing machines and languages with only two formation rules. Commun. ACM, 9(5):366--371, May 1966. Google ScholarDigital Library
- E. W. Dijkstra. Letters to the editor: GOTO statement considered harmful. Commun. ACM, 11(3):147--148, Mar. 1968. Google ScholarDigital Library
- N. E. Fenton and M. Neil. A critique of software defect prediction models. IEEE Trans. Softw. Eng., 25(5):675--689, Sept. 1999. Google ScholarDigital Library
- D. Gray, D. Bowes, N. Davey, Y. Sun, and B. Christianson. Software defect prediction using static code metrics underestimates defect-proneness. In Neural Networks (IJCNN), The 2010 International Joint Conference on, pages 1--7, July 2010.Google Scholar
- D. Knuth. Structured programming with GOTO statements. In E. N. Yourdon, editor, Classics in software engineering, pages 257--321. Yourdon Press, Upper Saddle River, NJ, USA, 1979. Google ScholarDigital Library
- S. Markstrum. Staking claims: A history of programming language design claims and evidence: A positional work in progress. In Evaluation and Usability of Programming Languages and Tools, PLATEAU '10, pages 7:1--7:5, New York, NY, USA, 2010. ACM. Google ScholarDigital Library
- T. J. McCabe. A complexity measure. In Proceedings of the 2Nd International Conference on Software Engineering, ICSE '76, pages 407--, Los Alamitos, CA, USA, 1976. IEEE Computer Society Press. Google ScholarDigital Library
- N. Nagappan and T. Ball. Use of relative code churn measures to predict system defect density. In Proceedings of the 27th International Conference on Software Engineering, ICSE '05, pages 284--292, New York, NY, USA, 2005. ACM. Google ScholarDigital Library
Index Terms
- Structured gotos are (Slightly) harmful
Recommendations
Disciplined composition of aspects using tests
LATE '08: Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolutionA large part of the software development effort is typically spent on maintenance and evolution, namely on adding new and unanticipated features. As aspect-oriented programming (AOP) can be easily used to compose software in non-planned ways, many ...
Size measurement of DEVS models for SBA effectiveness evaluation
WSC '13: Proceedings of the 2013 Winter Simulation Conference: Simulation: Making Decisions in a Complex WorldDue to the characteristic differences between simulation models and software systems, software development effort estimation approaches, such as function point analyses, might not be appropriate for the estimation of system modeling efforts. In order to ...
Technical debt: towards a crisper definition report on the 4th international workshop on managing technical debt
As the pace of software delivery increases and technology rapidly changes, organizations seek guidance on how to insure the sustainability of their software development effort. Over the past four years running the workshops on Managing Technical Debt, ...
Comments