skip to main content
10.1145/2597008.2597805acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Prioritizing maintainability defects based on refactoring recommendations

Published:02 June 2014Publication History

ABSTRACT

As a measure of software quality, current static code analyses reveal thousands of quality defects on systems in brown-field development in practice. Currently, there exists no way to prioritize among a large number of quality defects and developers lack a structured approach to address the load of refactoring. Consequently, although static analyses are often used, they do not lead to actual quality improvement. Our approach recommends to remove quality defects, exemplary code clones and long methods, which are easy to refactor and, thus, provides developers a first starting point for quality improvement. With an empirical industrial Java case study, we evaluate the usefulness of the recommendation based on developers’ feedback. We further quantify which external factors influence the process of quality defect removal in industry software development.

References

  1. V. Bauer, L. Heinemann, B. Hummel, E. Juergens, and M. Conradt. A framework for incremental quality analysis of large software systems. In ICSM’12, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. C. Boogerd and L. Moonen. Prioritizing software inspection results using static profiling. In SCAM ’06, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Boogerd and L. Moonen. Ranking software inspection results using execution likelihood. In Proceedings Philips Software Conference, 2006.Google ScholarGoogle Scholar
  4. C. Boogerd and L. Moonen. Using software history to guide deployment of coding standards, chapter 4, pages 39–52. Embedded Systems Institute, Eindhoven, the Netherlands, 2009.Google ScholarGoogle Scholar
  5. S. Bouktif, G. Antoniol, E. Merlo, and M. Neteler. A novel approach to optimize clone refactoring activity. In GECCO ’06, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. F. Deissenboeck, E. Juergens, B. Hummel, S. Wagner, B. M. y Parareda, and M. Pizka. Tool support for continuous quality control. IEEE Softw., 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. Ducasse, M. Rieger, G. Golomingi, and B. B. Tool support for refactoring duplicated oo code. In ECOOP’99, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. Eick, T. Graves, A. Karr, J. Marron, and A. Mockus. Does code decay? Assessing the evidence from change management data. IEEE Softw., 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston, MA, USA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Y. Higo, T. Kamiya, S. Kusumoto, and K. Inoue. Refactoring support based on code clone analysis. In Kansai Science City, pages 220–233. Springer, 2004.Google ScholarGoogle Scholar
  11. Y. Higo, T. Kamiya, S. Kusumoto, K. Inoue, and K. Words. Aries: Refactoring support environment based on code clone analysis. In SEA 2004, 2004.Google ScholarGoogle Scholar
  12. Y. Higo, Y. Ueda, T. Kamiya, S. Kusumoto, and K. Inoue. On software maintenance process improvement based on code clone analysis. In PROFES’02, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. B. Hummel, E. Juergens, L. Heinemann, and M. Conradt. Index-based code clone detection: Incremental, distributed, scalable. In ICSM’10, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. Juergens, F. Deissenboeck, B. Hummel, and S. Wagner. Do code clones matter? In ICSE ’09, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. K. and M. Ernst. Prioritizing warning categories by analyzing software history. In MSR ’07, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Koschke, R. Falke, and P. Frenzel. Clone detection using abstract syntax suffix trees. In WCRE ’06, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. M. Lehman. Laws of software evolution revisited. In EWSPT ’96, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. R. C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall PTR, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. I. Moore. Automatic inheritance hierarchy restructuring and method refactoring. In OOPSLA ’96, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. E. Murphy-Hill and A. P. Black. Breaking the barriers to successful refactoring: Observations and tools for extract method. In ICSE ’08, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Steidl and N. Goede. Feature-based detection of bugs in clones. In IWSC ’13, 2013.Google ScholarGoogle Scholar
  22. D. Steidl, B. Hummel, and E. Juergens. Quality analysis of source code comments. In ICPC’13, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  23. A. van Deursen and L. Moonen. The video store revisited – thoughts on refactoring and testing. In XP’12, 2002.Google ScholarGoogle Scholar
  24. R. Venkatasubramanyam, S. Gupta, and H. Singh. Prioritizing code clone detection results for clone management. In IWSC ’13, 2013.Google ScholarGoogle Scholar

Index Terms

  1. Prioritizing maintainability defects based on refactoring recommendations

        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
          ICPC 2014: Proceedings of the 22nd International Conference on Program Comprehension
          June 2014
          325 pages
          ISBN:9781450328791
          DOI:10.1145/2597008

          Copyright © 2014 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 ACM 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: 2 June 2014

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Upcoming Conference

          ICSE 2025

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader