Cost-Effective Quality Assurance For Long-Lived Software Using Automated Static Analysis

When large software is maintained for decades, code quality often gradually decays, increasing costs for future change requests. As counter measure, many development teams installed static analysis tools. Nevertheless, their code quality does not improve in the long term. We present a cost-effective approach to apply static analysis successfully as quality assurance technique. We evaluated the approach with several industrial case studies.

[1]  Giuliano Antoniol,et al.  An automatic approach to identify class evolution discontinuities , 2004 .

[2]  Hagen Hagen Is Cloned Code more stable than Non-Cloned Code? , 2008 .

[3]  Miryung Kim,et al.  Program element matching for multi-version program analyses , 2006, MSR '06.

[4]  Sunghun Kim,et al.  When functions change their names: automatic detection of origin relationships , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[5]  Stephen S. Yau,et al.  Ripple effect analysis of software maintenance , 1978, COMPSAC.

[6]  Aiko Fallas Yamashita,et al.  Do code smells reflect important maintainability aspects? , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[7]  Nils Göde,et al.  Clone Stability , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[8]  Oscar Nierstrasz,et al.  Finding refactorings via change metrics , 2000, OOPSLA '00.

[9]  Laurie A. Williams,et al.  On the value of static analysis for fault detection in software , 2006, IEEE Transactions on Software Engineering.

[10]  Foutse Khomh,et al.  Inferring Repository File Structure Modifications Using Nearest-Neighbor Clone Detection , 2012, 2012 19th Working Conference on Reverse Engineering.

[11]  Giuliano Antoniol,et al.  Recovering the Evolution Stable Part Using an ECGM Algorithm: Is There a Tunnel in Mozilla? , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[12]  Witold Pedrycz,et al.  A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[13]  Jens Krinke,et al.  Is cloned code older than non-cloned code? , 2011, IWSC '11.

[14]  Qiang Tu,et al.  Tracking structural evolution using origin analysis , 2002, IWPSE '02.

[15]  Chanchal Kumar Roy,et al.  LHDiff: A Language-Independent Hybrid Approach for Tracking Source Code Lines , 2013, 2013 IEEE International Conference on Software Maintenance.

[16]  Aiko Fallas Yamashita,et al.  To what extent can maintenance problems be predicted by code smell detection? - An empirical study , 2013, Inf. Softw. Technol..

[17]  Gerardo Canfora,et al.  Identifying Changed Source Code Lines from Version Repositories , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[18]  Francesca Arcelli Fontana,et al.  Inter-smell relations in industrial and open source systems: A replication and comparative analysis , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[19]  James M. Bieman,et al.  The Effectiveness of Automated Static Analysis Tools for Fault Detection and Refactoring Prediction , 2009, 2009 International Conference on Software Testing Verification and Validation.

[20]  Michael W. Godfrey,et al.  Using origin analysis to detect merging and splitting of source code entities , 2005, IEEE Transactions on Software Engineering.

[21]  Michael W. Godfrey,et al.  An integrated approach for studying architectural evolution , 2002, Proceedings 10th International Workshop on Program Comprehension.

[22]  Miryung Kim,et al.  An empirical study of code clone genealogies , 2005, ESEC/FSE-13.

[23]  Walter F. Tichy,et al.  Extensible language-aware merging , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[24]  Benjamin Hummel,et al.  Teamscale: software quality control in real-time , 2014, ICSE Companion.

[25]  Reinhold Plösch,et al.  The Quamoco product quality modelling and assessment approach , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[26]  Michael W. Godfrey,et al.  Determining the provenance of software artifacts , 2011, IWSC '11.

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

[28]  Michael W. Godfrey,et al.  Software bertillonage: finding the provenance of an entity , 2011, MSR '11.

[29]  Taghi M. Khoshgoftaar,et al.  Detection of software modules with high debug code churn in a very large legacy system , 1996, Proceedings of ISSRE '96: 7th International Symposium on Software Reliability Engineering.

[30]  Aiko Fallas Yamashita,et al.  Do developers care about code smells? An exploratory survey , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[31]  Elmar Jürgens,et al.  A framework for incremental quality analysis of large software systems , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).