skip to main content
10.1145/2851613.2851730acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Structured gotos are (Slightly) harmful

Published:04 April 2016Publication History

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.

References

  1. F. E. Allen. Control flow analysis. SIGPLAN Notices, 5(7):1--19, July 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. E. W. Dijkstra. Letters to the editor: GOTO statement considered harmful. Commun. ACM, 11(3):147--148, Mar. 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. N. E. Fenton and M. Neil. A critique of software defect prediction models. IEEE Trans. Softw. Eng., 25(5):675--689, Sept. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Structured gotos are (Slightly) harmful

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          SAC '16: Proceedings of the 31st Annual ACM Symposium on Applied Computing
          April 2016
          2360 pages
          ISBN:9781450337397
          DOI:10.1145/2851613

          Copyright © 2016 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 4 April 2016

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          SAC '16 Paper Acceptance Rate252of1,047submissions,24%Overall Acceptance Rate1,650of6,669submissions,25%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader