Skip to main content
Log in

Identification and analysis of change ripples in object-oriented software applications

  • Published:
Sādhanā Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13

Similar content being viewed by others

References

  1. 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

    Google Scholar 

  2. 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

  3. 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

    Article  Google Scholar 

  4. 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

    Article  Google Scholar 

  5. Zimmermann T, Zeller A, Weissgerber P and Diehl S 2005 Mining version histories to guide software changes. IEEE Trans. Softw. Eng. 31: 429–445

    Article  Google Scholar 

  6. 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

    Article  Google Scholar 

  7. 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

  8. 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

  9. Jiang S, McMillan C and Santelices R 2017 Do programmers do change impact analysis in debugging? Empir. Softw. Eng. 22: 631–669

    Article  Google Scholar 

  10. 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

  11. 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

    Article  Google Scholar 

  12. Agrawal A and Singh R K 2020 Ripple effect identification in software applications. Int. J. Open Sour. Softw. Process. 11: 41–56

    Article  Google Scholar 

  13. 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

    Article  Google Scholar 

  14. 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

  15. 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

    Article  Google Scholar 

  16. 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

  17. Agrawal A and Singh R K 2020 Predicting co-change probability in software applications using historical metadata. IET Softw. 14: 739–747

    Article  Google Scholar 

  18. Arisholm E, Briand L C and Foyen A 2004 Dynamic coupling measurement for object-oriented software. IEEE Trans. Softw. Eng. 30: 491–506

    Article  Google Scholar 

  19. Wilkie F G and Kitchenham B A 2000 Coupling measures and change ripples in C++ application software. J. Syst. Softw. 52: 157–164

    Article  Google Scholar 

  20. 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

    Article  Google Scholar 

  21. 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

    Google Scholar 

  22. 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

    Article  Google Scholar 

  23. 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

  24. 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

  25. 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

  26. 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

    Article  Google Scholar 

  27. 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

  28. 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

    Article  Google Scholar 

  29. 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

    Article  Google Scholar 

  30. 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

    Article  Google Scholar 

  31. 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

    Article  Google Scholar 

  32. 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

  33. Shatnawi R 2019 Exploring trends in the evolution of open-source systems. Int. J. Syst. Assurance Eng. Manag. 10: 1516–1526

    Article  Google Scholar 

  34. 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

    Article  Google Scholar 

  35. 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

  36. 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

  37. Moonen L, Binkley D and Pugh S 2020 On adaptive change recommendation. J. Syst. Softw. 164: 110550

    Article  Google Scholar 

  38. 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

  39. 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

  40. 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

    Google Scholar 

  41. 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

  42. CKJM Extended. http://gromit.iiar.pwr.wroc.pl/p_inf/ckjm/down.html

  43. Perceron. https://www.percerons.com

  44. Understand. https://www.scitools.com

  45. Mansour N and Salem H 2006 Ripple effect in object oriented programs. J. Comput. Methods Sci. Eng. 6: S23–S32

    Google Scholar 

  46. Bilal H and Black S 2007 Ripple effect: a complexity measure for object oriented software. In: European Conference on Object-Oriented Programming

  47. 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

  48. 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

    Article  Google Scholar 

  49. Asadi M and Rashidi H 2016 A model for object-oriented software maintainability measurement. Int. J. Intell. Syst. Appl. 8: 60–66

    Google Scholar 

  50. 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

  51. 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

    Article  Google Scholar 

  52. 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

  53. 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

  54. 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

    Article  Google Scholar 

  55. 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

    Google Scholar 

  56. 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

  57. SweetHome3D. http://www.sweethome3d.com/

  58. PMD. https://pmd.github.io/latest/index.html

  59. jedit. http://www.jedit.org/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Anushree Agrawal.

Appendix

Appendix

See table

Table 15 Significant software metrics related to software changeability.

15.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s12046-023-02137-9

Keywords

Navigation