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.
- 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 ScholarDigital Library
- C. Boogerd and L. Moonen. Prioritizing software inspection results using static profiling. In SCAM ’06, 2006. Google ScholarDigital Library
- C. Boogerd and L. Moonen. Ranking software inspection results using execution likelihood. In Proceedings Philips Software Conference, 2006.Google Scholar
- 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 Scholar
- S. Bouktif, G. Antoniol, E. Merlo, and M. Neteler. A novel approach to optimize clone refactoring activity. In GECCO ’06, 2006. Google ScholarDigital Library
- 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 ScholarDigital Library
- S. Ducasse, M. Rieger, G. Golomingi, and B. B. Tool support for refactoring duplicated oo code. In ECOOP’99, 1999. Google ScholarDigital Library
- 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 ScholarDigital Library
- M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston, MA, USA, 1999. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- B. Hummel, E. Juergens, L. Heinemann, and M. Conradt. Index-based code clone detection: Incremental, distributed, scalable. In ICSM’10, 2010. Google ScholarDigital Library
- E. Juergens, F. Deissenboeck, B. Hummel, and S. Wagner. Do code clones matter? In ICSE ’09, 2009. Google ScholarDigital Library
- S. K. and M. Ernst. Prioritizing warning categories by analyzing software history. In MSR ’07, 2007. Google ScholarDigital Library
- R. Koschke, R. Falke, and P. Frenzel. Clone detection using abstract syntax suffix trees. In WCRE ’06, 2006. Google ScholarDigital Library
- M. M. Lehman. Laws of software evolution revisited. In EWSPT ’96, 1996. Google ScholarDigital Library
- R. C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall PTR, 2008. Google ScholarDigital Library
- I. Moore. Automatic inheritance hierarchy restructuring and method refactoring. In OOPSLA ’96, 1996. Google ScholarDigital Library
- E. Murphy-Hill and A. P. Black. Breaking the barriers to successful refactoring: Observations and tools for extract method. In ICSE ’08, 2008. Google ScholarDigital Library
- D. Steidl and N. Goede. Feature-based detection of bugs in clones. In IWSC ’13, 2013.Google Scholar
- D. Steidl, B. Hummel, and E. Juergens. Quality analysis of source code comments. In ICPC’13, 2013.Google ScholarCross Ref
- A. van Deursen and L. Moonen. The video store revisited – thoughts on refactoring and testing. In XP’12, 2002.Google Scholar
- R. Venkatasubramanyam, S. Gupta, and H. Singh. Prioritizing code clone detection results for clone management. In IWSC ’13, 2013.Google Scholar
Index Terms
- Prioritizing maintainability defects based on refactoring recommendations
Recommendations
Prioritization of Classes for Refactoring: A Step towards Improvement in Software Quality
WCI '15: Proceedings of the Third International Symposium on Women in Computing and InformaticsBad Smells are certain structures in the software which violates the design principles and ruin the software quality. In order to deals with the bad smells, often refactoring treatment is provided in the code which further improves the software quality. ...
Refactoring Effect on Cohesion Metrics
ICC '09: Proceedings of the 2009 International Conference on Computing, Engineering and InformationDevelopers and designers always strive for quality software. Quality software tends to be robust, reliable and easy to maintain, and thus reduces the cost of software development and maintenance. Class cohesion is an important internal quality ...
QA to AQ part two: shifting from quality assurance to agile quality: "measuring and monitoring quality"
PLoP '14: Proceedings of the 21st Conference on Pattern Languages of ProgramsAs organizations transition to agile processes, Quality Assurance (QA) activities and roles need to evolve. Traditionally, QA activities occur late in the process, after the software is fully functioning. As a consequence, QA departments have been "...
Comments