SMPLearner: learning to predict software maintainability

Accurate and practical software maintainability prediction enables organizations to effectively manage their maintenance resources and guide maintenance-related decision making. This paper presents SMPLearner, an automated learning-based approach to train maintainability predictors by harvesting the actual average maintenance effort computed from the code change history as well as employing a much richer set of 44 four-level hierarchical code metrics collected by static code analysis tools. We systematically evaluated SMPLearner on 150 observations partitioned from releases of eight large scale open source software systems. Our evaluation showed that SMPLearner not only outperformed the traditional 4-metric MI model but also the recent learning-based maintainability predictors constructed based on single Class-level metrics, demonstrating that single Class-level metrics were not sufficient for maintainability prediction.

[1]  Maurice H. Halstead,et al.  Elements of software science (Operating and programming systems series) , 1977 .

[2]  Paul W. Oman,et al.  Development and Application of an Automated Source Code Maintainability Index , 1997, J. Softw. Maintenance Res. Pract..

[3]  Barbara A. Kitchenham,et al.  The use and usefulness of the ISO/IEC 9126 quality standard , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

[4]  Liguo Yu Indirectly predicting the maintenance effort of open-source software: Research Articles , 2006 .

[5]  OmanPaul,et al.  Using Metrics to Evaluate Software System Maintainability , 1994 .

[6]  Joost Visser,et al.  A Practical Model for Measuring Maintainability , 2007, 6th International Conference on the Quality of Information and Communications Technology (QUATIC 2007).

[7]  Yogesh Singh,et al.  Predicting software maintenance using fuzzy model , 2009, SOEN.

[8]  Paul W. Oman,et al.  Using metrics to evaluate software system maintainability , 1994, Computer.

[9]  Mehwish Riaz,et al.  A systematic review of software maintainability prediction and metrics , 2009, ESEM 2009.

[10]  Yuming Zhou,et al.  Predicting the maintainability of open source software using design metrics , 2008, Wuhan University Journal of Natural Sciences.

[11]  Yuming Zhou,et al.  Predicting object-oriented software maintainability using multivariate adaptive regression splines , 2007, J. Syst. Softw..

[12]  Michalis Faloutsos,et al.  Graph-based analysis and prediction for software evolution , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[13]  Arvinder Kaur,et al.  Statistical Comparison of Modelling Methods for Software Maintainability Prediction , 2013, Int. J. Softw. Eng. Knowl. Eng..

[14]  Barbara A. Kitchenham,et al.  A Simulation Study of the Model Evaluation Criterion MMRE , 2003, IEEE Trans. Software Eng..

[15]  Iulian Neamtiu,et al.  Assessing programming language impact on development and maintenance: a study on c and c++ , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[16]  C. van Koten,et al.  An application of Bayesian network for predicting object-oriented software maintainability , 2006, Inf. Softw. Technol..

[17]  ShepperdMartin,et al.  On Building Prediction Systems for Software Engineers , 2000 .

[18]  P. Oman,et al.  Metrics for assessing a software system's maintainability , 1992, Proceedings Conference on Software Maintenance 1992.

[19]  Dan Klein,et al.  Two Languages are Better than One (for Syntactic Parsing) , 2008, EMNLP.

[20]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[21]  Stephen G. MacDonell,et al.  What accuracy statistics really measure , 2001, IEE Proc. Softw..

[22]  Ruchika Malhotra,et al.  Software Maintainability Prediction using Machine Learning Algorithms , 2012 .

[23]  Robert L. Glass,et al.  Facts and fallacies of software engineering , 2002 .

[24]  Tom Mens,et al.  What Does It Take to Develop a Million Lines of Open Source Code? , 2009, OSS.

[25]  Harish Mittal,et al.  Software maintainability assessment based on fuzzy logic technique , 2009, SOEN.

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

[27]  P. Antonellis,et al.  A Data Mining Methodology for Evaluating Maintainability according to ISO / IEC-9126 Software Engineering-Product Quality Standard , 2007 .

[28]  Liguo Yu Indirectly predicting the maintenance effort of open-source software , 2006, J. Softw. Maintenance Res. Pract..

[29]  Michelle Cartwright,et al.  On Building Prediction Systems for Software Engineers , 2000, Empirical Software Engineering.

[30]  Robert L. Glass Software Engineering: Facts and Fallacies , 2002 .

[31]  Kumaraswamy Ponnambalam,et al.  A maintainability model for industrial software systems using design level metrics , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[32]  Angélica Caro,et al.  A Probabilistic Approach to Web Portal's Data Quality Evaluation , 2007 .

[33]  Kurt D. Welker,et al.  Software Maintainability Index Revisited , 2001 .

[34]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[35]  Joost Visser,et al.  Standardized code quality benchmarking for improving software maintainability , 2011, Software Quality Journal.