Document Type : Research Article


1 Shiraz university of technology , Shiraz , Iran

2 Shiraz university of Technology Shiraz Iran


Software maintenance is an important phase of the software life cycle. An important task in this phase is to locate code fragments affected by user change requests. However, performing this task manually is costly and requires prior knowledge of the software structure. In previous studies, Latent Semantic Indexing (LSI) has been applied to map the user change queries to the relevant code segments automatically. However, due to the lack of domain knowledge embedded in the source code, LSI might be unable to perform this mapping accurately. In this paper, we have proposed a domain knowledge propagation method to obtain more relevant impact set for each change request. This method spreads the user interface originated domain knowledge to the program classes according to the program dependency graph.
The proposed method has been applied to ArgoUML case-study which is an open-source project associated with its change requests. It was observed that applying the concept propagation resulted in 5% increase in the accuracy of the plain LSI method.


[1] B. Li, X. Sun, H. Leung, and S. Zhang. A survey of code-based change impact analysis techniques. Software Testing, Verification and Reliability, 23(8):613--646, 2013. [ bib | DOI ]
[2] A. Marcus, A. Sergeyev, V. Rajlich, and J.I. Maletic. An Information Retrieval Approach to Concept Location in Source Code. In 11th Working Conference on Reverse Engineering, pages 214--223. IEEE, 2004. [ bib | DOI ]
[3] G. Canfora and L. Cerulo. Impact Analysis by Mining Software and Change Request Repositories. In 11th IEEE International Software Metrics Symposium (METRICS'05), page 29. IEEE, 2005. [ bib | DOI ]
[4] M. Torchiano and F. Ricca. Impact analysis by means of unstructured knowledge in the context of bug repositories. In Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, page 47. ACM, 2010. [ bib | DOI ]
[5] C. D. Manning, P. Raghavan, and H. Schütze. Introduction to information retrieval. Cambridge University Press, 2008. [ bib ]
[6] S. Deerwester, S. T. Dumais, G. W. Furnas, T. K. Landauer, and R. Harshman. Indexing by Latent semantic analysis. Journal of the American society for information science, 41(6):391--407, 1990. [ bib | DOI ]
[7] C. Gupta, S. Yogesh, and D. S. Chauhan. Dependency based process model for impact analysis: a requirement engineering perspective. International journal of computer applications, 6(6):28--30, 2010. [ bib | DOI ]
[8] D. M.German, A. E.Hassan, and G. Robles. Change Impact Graphs: Determining the Impact of Prior Code Changes. Information and Software Technology, 51(10):1394--1408, 2009. [ bib | DOI ]
[9] E. Ufuktepe and T. Tuglular. A Program Slicing-Based Bayesian Network Model for Change Impact Analysis. In 2018 IEEE International Conference on Software Quality, Reliability and Security (QRS), pages 490--499. IEEE, 2018. [ bib | DOI ]
[10] C. Carrillo and R. Capilla. Ripple effect to evaluate the impact of changes in architectural design decisions. In Proceedings of the 12th European Conference on Software Architecture: Companion Proceedings, page 41. ACM, 2018. [ bib | DOI ]
[11] R. Wen, D. Gilbert, M. G. Roche, and S. McIntosh. BLIMP Tracer: Integrating Build Impact Analysis with Code Review. In 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)s, pages 685--694. IEEE, 2018. [ bib | DOI ]
[12] L. B. Cuong, V. S. Nguyen, D. A. Nguyen, P. N. Hung, and D. H. Vo. JCIA: A Tool for Change Impact Analysis of Java EE Applications. In Information Systems Design and Intelligent Applications, pages 105--114. Springer, Singapore, 2018. [ bib | DOI ]
[13] L. Badri, M. Badri, and D. St-Yves. Supporting predictive change impact analysis: a control call graph based technique. In 12th Asia-Pacific Software Engineering Conference (APSEC'05), pages 167--175. IEEE, 2005. [ bib | DOI ]
[14] D. Poshyvanyk, A. Marcus, R. Ferenc, and T. Gyimóthy. Using information retrieval based coupling measures for impact analysis. Empirical Software Engineering, 14(1):5–32, 2009. [ bib | DOI ]
[15] A.E. Hassan and R.C. Holt. Predicting Change Propagation in Software Systems. In 20th IEEE International Conference on Software Maintenance, 2004. Proceedings, pages 284--293. IEEE, 2004. [ bib | DOI ]
[16] I. S. Wiese, R. Ré, I. Steinmacher, R. T. Kuroda, G. A. Oliva, C. Treude, and M. A. Gerosa. Using contextual information to predict co-changes. Journal of Systems and Software, 128:220--235, 2017. [ bib | DOI ]
[17] D. Falessi, J. Roll, J. Guo, and J. Cleland-Huang. Leveraging Historical Associations between Requirements and Source Code to Identify Impacted Classes. IEEE Transactions on Software Engineering, 2018. [ bib | DOI ]
[18] J. Novacek, A. Ahari, A. Cornaglia, F. Haxel, A. Viehl, O. Bringmann, and Wo. Rosenstiel. Ontology-Supported Design Parameter Management for Change Impact Analysis. In 2018 44th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pages 9--16. IEEE, 2018. [ bib | DOI ]
[19] A. Parashar and J. K. Chhabra. Assessing Impact of Class Change by Mining Class Associations. The International Arab Journal of Information Technology, IAJIT, 16(1):98--107, 2019. [ bib ]
[20] N. Alhindawi, N. Dragan, M. L. Collard, and J. I. Maletic. Improving Feature Location by Enhancing Source Code with Stereotypes. In 2013 IEEE International Conference on Software Maintenance. IEEE, 2013. [ bib | DOI ]
[21] B. Dit and M. Revelleand M. Gethersand D. Poshyvanyk. Feature location in source code: A taxonomy and survey. Journal of software: Evolution and Process, 25(1):53--95, 2011. [ bib | DOI ]