A framework for incremental quality analysis of large software systems

To provide rapid feedback to engineers, software quality analysis must be incremental. However, most existing analyses are either not incremental, or limited to isolated quality characteristics. In practice, this prevents their integration into a uniform quality control approach. In this paper, we present a framework for the incremental and distributed computation of quality characteristics. It is fast enough for real-time analysis of large systems and provides a complete history of analysis results. An evaluation on several open source software systems demonstrates its scalability to large code bases under active development.

[1]  Elmar Jürgens,et al.  Why and how to control cloning in software artifacts , 2011 .

[2]  Romain Robbes,et al.  A Change-based Approach to Software Evolution , 2006, EVOL.

[3]  David Hovemeyer,et al.  Using Static Analysis to Find Bugs , 2008, IEEE Software.

[4]  Sanjay Ghemawat,et al.  MapReduce: a flexible data processing tool , 2010, CACM.

[5]  Rainer Koschke,et al.  Incremental Clone Detection , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[6]  Cem Kaner,et al.  Software Engineering Metrics: What Do They Measure and How Do We Know? , 2004 .

[7]  Elmar Jürgens,et al.  Do code clones matter? , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[8]  Susan L. Graham,et al.  Integrating Incremental Analysis with Version Management , 1995, ESEC.

[9]  Florian Deißenböck,et al.  Continuous quality control of long lived software systems , 2009 .

[10]  Rainer Koschke,et al.  Survey of Research on Software Clones , 2006, Duplication, Redundancy, and Similarity in Software.

[11]  Elmar Jürgens,et al.  Tool Support for Continuous Quality Control , 2008, IEEE Software.

[12]  Ahmed E. Hassan,et al.  An experience report on scaling tools for mining software repositories using MapReduce , 2010, ASE '10.

[13]  Elmar Jürgens,et al.  Index-based code clone detection: incremental, distributed, scalable , 2010, 2010 IEEE International Conference on Software Maintenance.

[14]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[15]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[16]  D. Ross Jeffery,et al.  Misleading Metrics and Unsound Analyses , 2007, IEEE Software.

[17]  David Notkin,et al.  Software reflexion models: bridging the gap between source and high-level models , 1995, SIGSOFT FSE.

[18]  Markus Pizka,et al.  Concise and consistent naming , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[19]  Chanchal Kumar Roy,et al.  Comparison and evaluation of code clone detection techniques and tools: A qualitative approach , 2009, Sci. Comput. Program..

[20]  Foutse Khomh,et al.  SQUANER: A framework for monitoring the quality of software systems , 2010, 2010 IEEE International Conference on Software Maintenance.

[21]  Elmar Jürgens,et al.  The loss of architectural knowledge during system evolution: An industrial case study , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[22]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[23]  Gregg Rothermel,et al.  A safe, efficient regression test selection technique , 1997, TSEM.

[24]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[25]  Rainer Koschke Incremental Reflexion Analysis , 2010, 2010 14th European Conference on Software Maintenance and Reengineering.