Improved Computation of Change Impact Analysis in Software Using All Applicable Dependencies

  • Mrinaal Malhotra
  • Jitender Kumar Chhabra
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 958)


Different types of environment and user changes necessitate changes in the source code of the software and these changes also get propagated to other entities of the software. Change Impact Analysis (CIA) is one technique which helps the developers to know about the risks involved in changing different entities of the software system. This type of analysis can be carried out by computing different dependencies present in the source code. This paper proposes a new approach to compute CIA based on 8 different types of source code dependencies, out of which 3 dependencies are being introduced for the first time in this paper. The performance of the proposed technique is evaluated over four different software and results indicate that new dependencies used by us contribute significantly in accurate computation of CIA.


Change impact analysis Source code dependencies Software evolution 


  1. Sun, X., Li, B., Li, B., Wen, W.: A comparative study of static CIA techniques. In: Proceedings of the Fourth Asia-Pacific Symposium on Internetware, pp. 23–31. ACM (2012)Google Scholar
  2. Tóth, G., Hegedűs, P., Beszédes, Á., Gyimóthy, T., Jász, J.: Comparison of different impact analysis methods and programmer’s opinion: an empirical study. In: Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, pp. 109–118. ACM (2010)Google Scholar
  3. Abdeen, H., Bali, K., Sahraoui, H., Dufour, B.: Learning dependency-based change impact predictors using independent change histories. Inf. Softw. Technol. 67, 220–235 (2015)CrossRefGoogle Scholar
  4. Sun, X., Li, B., Leung, H., Li, B., Zhu, J.: Static change impact analysis techniques: a comparative study. J. Syst. Softw. 109, 137–149 (2015)CrossRefGoogle Scholar
  5. Alzamil, Z.A.: Redundant coupling detection using dynamic dependence analysis. In: International Conference on Software Engineering Advances (2007).
  6. Mens, T.: Introduction and roadmap: history and challenges of software evolution. Software Evolution, pp. 1–11. Springer, Heidelberg (2008). Scholar
  7. Moore, J.W.: Software engineering standards (1998)Google Scholar
  8. Podgurski, A., Clarke, L.A.: A formal model of program dependences and its implications for software testing, debugging, and maintenance. IEEE Trans. Softw. Eng. 16(9), 965–979 (1990)CrossRefGoogle Scholar
  9. Sharma, T., Suryanarayana, G.: Augur: incorporating hidden dependencies and variable granularity in change impact analysis. In: IEEE 16th International Working Conference on Source Code Analysis and Manipulation (SCAM), pp. 73–78. IEEE (2016)Google Scholar
  10. Jász, J., Beszédes, Á., Gyimóthy, T., Rajlich, V.: Static execute after/before as a replacement of traditional software dependencies. In: Software Maintenance ICSM, pp. 137–146. IEEE (2008)Google Scholar
  11. Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its use in optimization. ACM Trans. Programm. Lang. Syst. (TOPLAS) 9(3), 319–349 (1987)CrossRefGoogle Scholar
  12. Lutellier, T., et al.: Measuring the impact of code dependencies on software architecture recovery techniques. IEEE Trans. Softw. Eng. 1–22 IEEE (2017)Google Scholar
  13. Lienhard, A., Greevy, O., Nierstrasz, O.: Tracking objects to detect feature dependencies. In: 15th IEEE International Conference on Program Comprehension. ICPC, pp. 59–68. IEEE (2007)Google Scholar
  14. Cataldo, M., Herbsleb, J.D., Carley, K.M.: Socio-technical congruence: a framework for assessing the impact of technical and work dependencies on software development productivity. In: Proceedings of the Second ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 2–11. ACM (2008)Google Scholar
  15. Cafeo, B.B.P., Cirilo, E., Garcia, A., Dantas, F., Lee, J.: Feature dependencies as change propagators: an exploratory study of software product lines. Inf. Softw. Technol. 69, 37–49 (2016)CrossRefGoogle Scholar
  16. Lutellier, T., et al.: Comparing software architecture recovery techniques using accurate dependencies. In: 37th IEEE International Conference on, Software Engineering (ICSE), vol. 2, pp. 69–78. IEEE (2015)Google Scholar
  17. Alam, K.A., Ahmad, R., Akhunzada, A., Nasir, M.H.N.M., Khan, S.U.: Impact analysis and change propagation in service-oriented enterprises: a systematic review. Inf. Syst. 54, 43–73 (2015)CrossRefGoogle Scholar
  18. Li, B., Sun, X., Leung, H., Zhang, S.: A survey of code-based change impact analysis techniques. J Softw. Test. Verif. Reliab. 23, 613–646 (2012)CrossRefGoogle Scholar
  19. Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. ACM Trans. Programm. Lang. Syst. 12(1), 26–61 (1990)CrossRefGoogle Scholar
  20. Ryder, B.G.: Constructing the call graph of a program. IEEE Trans. Softw. Eng. 5(3), 216–226 (1979)MathSciNetCrossRefGoogle Scholar
  21. Dit, B., et al.: Impactminer: a tool for change impact analysis. In: Companion Proceedings of the 36th International Conference on Software Engineering, pp. 540–543. ACM (2014)Google Scholar
  22. De-Lucia, A., Fasano, F., Oliveto, R.: Traceability management for impact analysis. In: Proceedings of the International Conference on Software Maintenance, pp. 21–30. IEEE (2008)Google Scholar
  23. Maâzoun, J., Bouassida, N., Ben-Abdallah, H.: Change impact analysis for software product lines. J. King Saud Univ. -Comput. Inf. Sci. 28(4), 364–380 (2016)Google Scholar
  24. Autexier, S., Müller, N: Semantics-based change impact analysis for heterogeneous collections of documents. In: Proceedings of the 10th ACM Symposium on Document Engineering, pp. 97–106. ACM (2010)Google Scholar
  25. Bohner, S., Arnold, R.: Software Change Impact Analysis. IEEE Computer Society Press, Los Alamitos (1996)Google Scholar
  26. Manson, J., Pugh, W., Adve, S.V.: The Java memory model, vol. 40, no. 1. ACM (2005)Google Scholar
  27. Sun, X., Li, B., Zhang, S., Tao, C., Chen, X., Wen, W.: Using lattice of class and method dependence for change impact analysis of object oriented programs. In: Proceedings of the 2011 ACM Symposium on Applied Computing, pp. 1439–1444. ACM (2011)Google Scholar
  28. Li, B., Zhang, Q., Sun, X., Leung, H.: WAVE-CIA: a novel CIA approach based on call graph mining. In: Proceedings of the 28th Annual ACM Symposium on Applied Computing, pp. 1000–1005. ACM (2013)Google Scholar
  29. Cai, H., Santelices, R.: A comprehensive study of the predictive accuracy of dynamic change-impact analysis. J. Syst. Softw. 103, 248–265 (2015)CrossRefGoogle Scholar
  30. Amarjeet, Chhabra, J.K.: FP-ABC: fuzzy pareto-dominance driven artificial bee colony algorithm for many objective software clustering. Comput. Lang. Syst. Struct. 51, 1–21 (2018)Google Scholar
  31. Amarjeet, Chhabra, J.K.: Harmony search based remodularization for object-oriented software systems. Comput. Lang. Syst. Struct. 47(2), 153–169 (2017)Google Scholar
  32. Parashar, A., Chhabra, J.K.: Mining software change data stream to predict changeability of classes of object-oriented software system. Evolv. Syst. 7(2), 117–128 (2016)CrossRefGoogle Scholar

Copyright information

© Springer Nature Singapore Pte Ltd. 2019

Authors and Affiliations

  1. 1.Department of Computer EngineeringNational Institute of TechnologyKurukshetraIndia

Personalised recommendations