Mining version history to predict the class instability

While most of the existing class stability assessors just rely on structural information retrieved from a desired source code snapshot. However, class stability is intrinsically characterized by the evolution of a number of dependencies and change propagation factors which aid to promote the ripple effect. Identification of classes prone to ripple effect (instable classes) through mining the version history of change propagation factors can aid developers to reduce the efforts needed to maintain and evolve the system. We propose Historical Information for Class Stability Prediction (HICSP), an approach to exploit change history information to predict the instable classes based on its correlation with change propagation factors. Subsequently, we performed two empirical studies. In the first study, we evaluate the HICSP on the version history of 10 open source projects. Subsequently, in the second replicated study, we evaluate the effectiveness of HICSP by tuning the parameters of its stability assessors. We observed the 4 to 16 percent improvement in term of F-measure value to predict the instable classes through HICSP as compared to existing class stability assessors. The promising results indicate that HICSP is able to identify instable classes and can aid developers in their decision making.

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

[2]  Alexander Chatzigeorgiou,et al.  Predicting the probability of change in object-oriented systems , 2005, IEEE Transactions on Software Engineering.

[3]  Senén Barro,et al.  Do we need hundreds of classifiers to solve real world classification problems? , 2014, J. Mach. Learn. Res..

[4]  Arif Ali Khan,et al.  Software design patterns classification and selection using text categorization approach , 2017, Appl. Soft Comput..

[5]  Pat Langley,et al.  Estimating Continuous Distributions in Bayesian Classifiers , 1995, UAI.

[6]  Lerina Aversano,et al.  An empirical study on the evolution of design patterns , 2007, ESEC-FSE '07.

[7]  Hareton K. N. Leung,et al.  A survey of code‐based change impact analysis techniques , 2013, Softw. Test. Verification Reliab..

[8]  Arif Ali Khan,et al.  Automated framework for classification and selection of software design patterns , 2019, Appl. Soft Comput..

[9]  Bojan Cukic,et al.  A Statistical Framework for the Prediction of Fault-Proneness , 2007 .

[10]  Irena Koprinska,et al.  Learning to classify e-mail , 2007, Inf. Sci..

[11]  Shane McIntosh,et al.  An Empirical Comparison of Model Validation Techniques for Defect Prediction Models , 2017, IEEE Transactions on Software Engineering.

[12]  A. Orso,et al.  Efficient and precise dynamic impact analysis using execute-after sequences , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[13]  J. Platt Sequential Minimal Optimization : A Fast Algorithm for Training Support Vector Machines , 1998 .

[14]  Tim Menzies,et al.  Data Mining Static Code Attributes to Learn Defect Predictors , 2007, IEEE Transactions on Software Engineering.

[15]  Mohammad Alshayeb,et al.  An empirical study of system design instability metric and design evolution in an agile software process , 2005, J. Syst. Softw..

[16]  Chuangyin Dang,et al.  An Integrated Planning Approach Towards Home Health Care, Telehealth and Patients Group Based Care , 2018, J. Netw. Comput. Appl..

[17]  J. Ross Quinlan,et al.  C4.5: Programs for Machine Learning , 1992 .

[18]  Shawn A. Bohner,et al.  Impact analysis in the software change process: a year 2000 perspective , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[19]  Andreas Zeller,et al.  Mining Version Histories to Guide Software Changes , 2004 .

[20]  Banu Diri,et al.  Investigating the effect of dataset size, metrics sets, and feature selection techniques on software fault prediction problem , 2009, Inf. Sci..

[21]  Shehzad Khalid,et al.  Counter Measuring Conceivable Security Threats on Smart Healthcare Devices , 2018, IEEE Access.

[22]  Apostolos Ampatzoglou,et al.  The Effect of GoF Design Patterns on Stability: A Case Study , 2015, IEEE Transactions on Software Engineering.

[23]  Carl G. Davis,et al.  A Hierarchical Model for Object-Oriented Design Quality Assessment , 2002, IEEE Trans. Software Eng..

[24]  David C. Rine,et al.  Investigation of metrics for object-oriented design logical stability , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[25]  Yann-Gaël Guéhéneuc,et al.  Detecting asynchrony and dephase change patterns by mining software repositories , 2014, J. Softw. Evol. Process..

[26]  Yann-Gaël Guéhéneuc,et al.  An empirical study of the relationships between design pattern roles and class change proneness , 2008, 2008 IEEE International Conference on Software Maintenance.

[27]  Harald C. Gall,et al.  Detection of logical coupling based on product release history , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[28]  Suresh Jagannathan,et al.  Sieve: A Tool for Automatically Detecting Variations Across Program Versions , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[29]  Harald C. Gall,et al.  CVS release history data for detecting logical couplings , 2003, Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings..

[30]  Hiroyuki Goto,et al.  Efficient Scheduling Focusing on the Duality of MPL Representation , 2007, 2007 IEEE Symposium on Computational Intelligence in Scheduling.

[31]  James M. Bieman,et al.  Understanding change-proneness in OO software through visualization , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[32]  Lefteris Angelis,et al.  An Empirical Study on Views of Importance of Change Impact Analysis Issues , 2008, IEEE Transactions on Software Engineering.

[33]  Shahid Hussain A methodology to predict the instable classes: student research abstract , 2017, SAC.

[34]  Ellis Horowitz,et al.  SODOS: A software documentation support environment — Its definition , 1986, IEEE Transactions on Software Engineering.

[35]  Laurie A. Williams,et al.  Empirical Software Change Impact Analysis using Singular Value Decomposition , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[36]  Premkumar T. Devanbu,et al.  An Investigation into Coupling Measures for C++ , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[37]  Gregg Rothermel,et al.  Whole program path-based dynamic impact analysis , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[38]  Marco Torchiano,et al.  Impact analysis by means of unstructured knowledge in the context of bug repositories , 2010, ESEM '10.

[39]  Leo Breiman,et al.  Random Forests , 2001, Machine Learning.

[40]  Sue Black,et al.  Deriving an approximation algorithm for automatic computation of ripple effect measures , 2008, Inf. Softw. Technol..

[41]  Elvira-Maria Arvanitou,et al.  Introducing a Ripple Effect Measure: A Theoretical and Empirical Validation , 2015, 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).

[42]  Tibor Gyimóthy,et al.  Using information retrieval based coupling measures for impact analysis , 2009, Empirical Software Engineering.

[43]  Yann-Gaël Guéhéneuc,et al.  A seismology-inspired approach to study change propagation , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).