Abstract
Software development and maintenance accompany several challenges related to change management. Identifying dependencies of change-prone classes helps to manage the after-effects of changes smoothly. This paper aims to study the ripple effect identification in object-oriented software applications using software metrics and change history. The changeability pattern is generated and compared with actual changes to validate the effectiveness of the proposed approach for ripple effect identification. The impact set of existing classes is derived using the change history with a commit weight-based approach. Two coupling measures, Likelihood of Change (LiCh) and Co-change Probability (CChPr), are derived to analyse the change impact set of existing classes. The change impact of new classes is derived using a Bagging classification technique. The source code metrics are independent variables and co-change derived from change history is the dependent variable for the prediction model. The results indicate that most dependent classes are identified using the proposed technique and advocate using software metrics and change history for ripple effect identification. It can be beneficial for software practitioners to understand the impact of change and identify dependencies of an explicit class.
Similar content being viewed by others
References
Pressman R S and Maxim B R 2021 Software Configuration Management, Software engineering: a practitioner’s approach. vol 9. McGraw Hill Higher Education, pp 1047–1095
Basri S, Kama N, Haneem F and Ismail S A 2016 Predicting effort for requirement changes during software development. In: 7th Symposium on Information and Communication Technology, pp. 380–387
Arvanitou E M, Ampatzoglou A, Chatzigeorgiou A, Avgeriou P and Tsiridis N 2022 A metric for quantifying the ripple effects among requirements. Softw. Q. J. 30: 853–883
Jaafar F, Lozano A, Guéhéneuc Y G and Mens K 2017 Analyzing software evolution and quality by extracting Asynchrony change patterns. J. Syst. Softw. 131: 311–322
Zimmermann T, Zeller A, Weissgerber P and Diehl S 2005 Mining version histories to guide software changes. IEEE Trans. Softw. Eng. 31: 429–445
Malhotra R and Agrawal A 2014 CMS tool: calculating defect and change data from software project repositories. ACM SIGSOFT Softw. Eng. Not. 39: 1–5
Rolfsnes T, Di Alesio S, Behjati R, Moonen L and Binkley DW 2016 Generalizing the analysis of evolutionary coupling for software change impact analysis. In: IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol. 1, pp. 201–212
Martinez M and Monperrus M 2019 Coming: A tool for mining change pattern instances from git commits. In: IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion), pp. 79–82
Jiang S, McMillan C and Santelices R 2017 Do programmers do change impact analysis in debugging? Empir. Softw. Eng. 22: 631–669
Johnson B, Song Y, Murphy-Hill E and Bowdidge R 2013 Why don't software developers use static analysis tools to find bugs?. In 35th International Conference on Software Engineering (ICSE), pp. 672–681
Agrawal A and Singh R K 2020 Identification of co-changed classes in software applications using software quality attributes. J. Inf. Technol. Res. 13: 110–128
Agrawal A and Singh R K 2020 Ripple effect identification in software applications. Int. J. Open Sour. Softw. Process. 11: 41–56
Moonen L, Rolfsnes T, Binkley D and Di Alesio S 2018 What are the effects of history length and age on mining software change impact? Empir. Softw. Eng. 23: 2362–2397
Agrawal A and Singh RK 2020 Identification of co-change patterns in software evolution. In: 8th International Conference on Reliability, Infocom Technologies and Optimization (Trends and Future Directions)(ICRITO), pp. 781–785
Agrawal A and Singh R K 2020 Mining software repositories for revision age-based Co-change probability prediction. Int. J. Open Sour. Softw. Process. 11: 16–32
Agrawal A and Singh R K 2018 Ruffle: Extracting co-change information from software project repositories. In: International Conference on Smart Systems and Inventive Technology (ICSSIT), pp. 88–91
Agrawal A and Singh R K 2020 Predicting co-change probability in software applications using historical metadata. IET Softw. 14: 739–747
Arisholm E, Briand L C and Foyen A 2004 Dynamic coupling measurement for object-oriented software. IEEE Trans. Softw. Eng. 30: 491–506
Wilkie F G and Kitchenham B A 2000 Coupling measures and change ripples in C++ application software. J. Syst. Softw. 52: 157–164
Kumar L, Krishna A and Rath S K 2017 The impact of feature selection on maintainability prediction of service-oriented applications. Serv. Orient. Comput. Appl. 11: 137–161
Chug A and Malhotra R 2016 Benchmarking framework for maintainability prediction of open source software using object oriented metrics. Int. J. Innov. Comput. Inf. Control. 12: 615–634
Abdeen H, Bali K, Sahraoui H and Dufour B 2015 Learning dependency-based change impact predictors using independent change histories. Inf. Softw. Technol. 67: 220–235
Zhou Y, Wursch M, Giger E, Gall H and Lu J 2008 A Bayesian Network Based Approach for Change Coupling Prediction. In: 15th Working Conference on Reverse Engineering, Antwerp., pp. 27–36
Ahsan S N and Wotawa F 2010 Impact analysis of SCRs using single and multi-label machine learning classification. In: ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 1–4
Macho C, McIntosh S and Pinzger M 2016 Predicting build co-changes with source code change and commit categories. In: IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering, vol. 1, pp. 541–551
Ying A T, Murphy G C, Ng R and Chu-Carroll M C 2004 Predicting source code changes by mining change history. IEEE Trans. Softw. Eng. 30: 574–586
Beyer D and Noack A. Clustering software artifacts based on frequent common changes. In: 13th International Workshop on Program Comprehension (IWPC'05), pp. 259–268
Silva L L, Valente M T and Maia M A 2019 Co-change patterns: A large scale empirical study. J. Syst. Softw. 152: 196–214
Rolfsnes T, Moonen L, Alesio S D, Behjati R and Binkley D 2018 Aggregating association rules to improve change recommendation. Empir. Softw. Eng. 23: 987–1035
Parashar A and Chhabra J K 2016 Mining software change data stream to predict changeability of classes of object-oriented software system. Evol. Syst. 7: 117–128
Ortu M, Destefanis G, Graziotin D, Marchesi M and Tonelli R 2020 How do you propose your code changes? Empirical analysis of affect metrics of pull requests on github. IEEE Access. 8: 110897–110907
Zhou D, Wu Y, Xiao L, Cai Y, Peng X, Fan J, Huang L and Chen H 2019 Understanding evolutionary coupling by fine-grained co-change relationship analysis. In: IEEE/ACM 27th International Conference on Program Comprehension (ICPC), pp. 271–282
Shatnawi R 2019 Exploring trends in the evolution of open-source systems. Int. J. Syst. Assurance Eng. Manag. 10: 1516–1526
Kagdi H, Gethers M and Poshyvanyk D 2013 Integrating conceptual and logical couplings for change impact analysis in software. Empir. Softw. Eng. 18: 933–969
Moonen L, Di Alesio S, Binkley D and Rolfsnes T 2016 Practical guidelines for change recommendation using association rule mining. In: 31st IEEE/ACM International Conference on Automated Software Engineering, pp. 732–743
Moonen L, Di Alesio S, Rolfsnes T and Binkley DW 2016 Exploring the effects of history length and age on mining software change impact. In: IEEE 16th International Working Conference on Source Code Analysis and Manipulation (SCAM), pp. 207–216
Moonen L, Binkley D and Pugh S 2020 On adaptive change recommendation. J. Syst. Softw. 164: 110550
Shen B, Zhang W, Yu A, Wei Z, Liang G, Zhao H and Jin Z 2021 Cross-language Code Coupling Detection: A Preliminary Study on Android Applications. In: IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 378–388
Ben Abdullah A M Maatuk A and Ben M Omran O 2021 Change Propagation Path: An Approach for Detecting Co-Changes Among Software Entities. In: The 7th International Conference on Engineering & MIS, pp. 1–6
Jalaja T, Adilakshmi T and Abhishek P S 2021 Automation of change impact analysis for Python applications. Fourth Int. Conf. Smart Comput. Inform. 2: 259–267
Silva L L, Valente M T and de A Maia M 2015 Co-change clusters: Extraction and application on assessing software modularity. Chiba S, Tanter É, Ernst E, and Hirschfeld R ed(s) Transactions on Aspect-Oriented Software Development XII. 8989:96-131
CKJM Extended. http://gromit.iiar.pwr.wroc.pl/p_inf/ckjm/down.html
Perceron. https://www.percerons.com
Understand. https://www.scitools.com
Mansour N and Salem H 2006 Ripple effect in object oriented programs. J. Comput. Methods Sci. Eng. 6: S23–S32
Bilal H and Black S 2007 Ripple effect: a complexity measure for object oriented software. In: European Conference on Object-Oriented Programming
Malhotra R and Khanna M 2015 Mining the impact of object oriented metrics for change prediction using machine learning and search-based techniques. In: 2015 International Conference on Advances in Computing, Communications and Informatics (ICACCI), pp. 228–234
Kumar L, Naik D K and Rath S K 2015 Validating the effectiveness of object-oriented metrics for predicting maintainability. Procedia Comput. Sci. 57: 798–806
Asadi M and Rashidi H 2016 A model for object-oriented software maintainability measurement. Int. J. Intell. Syst. Appl. 8: 60–66
Mukherjee A and Das A K 2015 Application of interval valued intuitionistic fuzzy soft set in investment decision making. In: Fifth International Conference on Advances in Computing and Communications (ICACC), pp. 61–64
Malhotra R and Khanna M 2017 An exploratory study for software change prediction in object-oriented systems using hybridized techniques. Autom. Softw. Eng. 24: 673–717
Malhotra R and Bansal A 2015 Predicting change using software metrics: A review. In: 4th International Conference on Reliability, Infocom Technologies and Optimization (ICRITO)(Trends and Future Directions), pp. 1–6
Agrawal A and Singh R K 2018 Empirical validation of OO metrics and machine learning algorithms for software change proneness prediction. In: Towards Extensible and Adaptable Methods in Computing, pp. 69–84
Nuñez-Varela A S, Pérez-Gonzalez H G, Martínez-Perez F E and Soubervielle-Montalvo C 2017 Source code metrics: A systematic mapping study. J. Syst. Softw. 128: 164–197
Wan Z, Xia X, Lo D and Murphy G C 2019 How does machine learning change software development practices? IEEE Trans. Softw. Eng. 47: 1857–1871
El Morr C, Jammal M, Ali-Hassan H and El-Hallak W 2022 Decision Trees. In: Machine Learning for Practical Decision Making: A Multidisciplinary Perspective with Applications from Healthcare, Engineering and Business Analytics, pp. 251–278
SweetHome3D. http://www.sweethome3d.com/
jedit. http://www.jedit.org/
Author information
Authors and Affiliations
Corresponding author
Appendix
Rights and permissions
About this article
Cite this article
Singh, R.K., Agrawal, A. Identification and analysis of change ripples in object-oriented software applications. Sādhanā 48, 95 (2023). https://doi.org/10.1007/s12046-023-02137-9
Received:
Revised:
Accepted:
Published:
DOI: https://doi.org/10.1007/s12046-023-02137-9