A Method for Change Impact Analysis of C# Projects

  • Viet Tran VNU-University Of Engineering And Technology
  • Loan Nguyen Thi Mai
  • Kien Doan Duc
  • Nguyen Ha Trang
  • Le Van Huy
  • Pham Ngoc Hung
Keywords: change impact analysis, C# project, Wave-CIA

Abstract

Change Impact Analysis (CIA) is a common
technique for identifying the potential effects of a change
in software on other components. Despite the popularity of
C# in the software industry, there have not been any CIA
methods for C# projects. This paper proposes a new method
for performing static CIA in C# projects based on existing
methods for object-oriented languages. The main idea behind
the method is constructing a dependency graph by doing static
source code analysis. This enables the use of WaveCIA, a CIA
algorithm leveraging dependency graphs. The implementation
of this method in a CIA tool has proven its effectiveness in
determining impacted components in C# projects, which can
be further used for regression testing.
Change Impact Analysis (CIA) is a common technique for
identifying the potential effects of a change in software on
other components. This solution has been made to analyze
the impact of code changes in different languages like Java,
C/C++, etc. Despite the popularity of C# in the software industry, there have not been any CIA methods for C# projects.
This paper proposes a new method for performing static CIA
in C# projects based on existing methods for object-oriented
languages, to generate dependency graphs of that project’s
source code. The key idea behind the method is to construct
a dependency graph by doing static source code analysis.
This enables the use of Wave-CIA, a CIA method leveraging
dependency graphs. The results of analyzing the source code
to build the dependency graph between the components in the
project have been shown in the CIA4CS tool. We did some tool
testing with several C# projects and the results showed high
coverage for components and dependencies, that has proven
its effectiveness in determining impacted components in C#
projects. Finally, we provide some methodological discussion
at the end of the paper.

References

M. Kretsou, A. A. Elvira-Maria Arvanitou, I. Deligiannis, and V. C. Gerogiannis, “Change impact analysis: A systematic mapping study,” Journal of Systems and Software, vol. 174, no. 110892, (2021).

B. Li, X. Sun, H. K. N. Leung, and S. Zhang, “A survey of code-based change impact analysis techniques,” Software Testing, vol. 23, (2013).

X. Sun, B. Li, C. Tao, W. Wen, and S. Zhang, “Change Impact Analysis Based on a Taxonomy of Change Types,” in 2010 IEEE 34th Annual Computer Software and Applications Conference, (2010): 373–382.

L. Huang and Y.-T. Song, “Precise dynamic impact analysis with dependency analysis for object-oriented programs,” in 5th ACIS International Conference on Software Engineering Research, Management & Applications (SERA 2007), (2007): 374–384.

M. Mondal, B. Roy, C. K. Roy, and K. A. Schneider, “Associating Code Clones with Association Rules for Change Impact Analysis,” in 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER), (2020): 93–103.

J. Buckner, J. Buchta, M. Petrenko, and V. Rajlich, “Jripples: A tool for program comprehension during incremental change,” 06 (2005): 149 – 152.

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, V. Bhateja, B. L. Nguyen, N. G. Nguyen, S. C. Satapathy, and D.-N. Le, Eds. Singapore: Springer Singapore, (2018): 105–114.

P. Anderson and M. Zarins, “The CodeSurfer software understanding platform,” in 13th International Workshop on Program Comprehension (IWPC’05), (2005): 147–148.

S.Ãlimadadi, A. Mesbah, and K.Pattabiraman, “Hybrid DOM-Sensitive Change Impact Analysis for JavaScript,” in 29th European Conference on Object-Oriented Programming (ECOOP 2015), ser. Leibniz International Proceedings in Informatics (LIPIcs), J. T. Boyland, Ed., vol. 37. Dagstuhl, Germany: Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, (2015): 321–345. [Online]. Available:

B. Li, Q. Zhang, X. Sun, and H. Leung, “Wave-cia: A novel cia approach based on call graph mining,” in Proceedings of the 28th Annual ACM Symposium on Applied Computing, ser. SAC ’13. New York, NY, USA: Association for Computing Machinery, (2013): 1000–1005. [Online]. Available:

ECMA-334, C# Language Specification. Ecma Internationa, 4th Edition, 06 (2006).

M. Chaumun, H. Kabaili, R. K. Keller, and F. Lustman, “A change impact model for changeability assessment in object-oriented software systems,” Science of Computer Programming, vol. 45, no. 2, (2002): 155–174, special Issue on Software Maintenance and Reengineering (CSMR 99). [Online]. Available:

M. Zalewski and S. Schupp, “Change Impact Analysis for Generic Libraries,” in 2006 22nd IEEE International Conference on Software Maintenance, (2006): 35–44.

G. Pirklbauer, C. Fasching, and W. Kurschl, “Improving change impact analysis with a tight integrated process and tool,” in 2010 Seventh International Conference on Information Technology: New Generations, (2010): 956–961.

H. Kienle and H. Muller, “Rigi—an environment for software reverse engineering, exploration, visualization, and redocumentation,” Science of Computer Programming, vol. 75, 04 (2010): 247–263.

S. Ibrahim, M. Munro, and A. Deraman, “A requirements traceability to support change impact analysis,” Asian J Inform Technol, vol. 4, 01 (2005).

S. Black, “Computing ripple effect for software maintenance,” Journal of Software Maintenance, vol. 13, 07 (2001): 263–279.

S. Gwizdala, Y. Jiang, and V. Rajlich, “JTracker - A Tool for Change Propagation in Java.” 04 (2003): 223 – 229.

M. Petrenko and V. Rajlich, “Variable granularity for improving precision of impact analysis,” in 2009 IEEE 17th In-ternational Conference on Program Comprehension, (2009): 10–19.

J. Buckner, J. Buchta, M. Petrenko, and V. Rajlich, “JRipples: a tool for program comprehension during incremental change,” in 13th International Workshop on Program Comprehension (IWPC’05), (2005): 149–152.

S. Yau, J. Collofello, and T. MacGregor, “Ripple effect analysis of software maintenance,” in The IEEE Computer Society’s Second International Computer Software and Applications Conference, 1978. COMPSAC ’78., (1978): 60–65.

R. Mohamad, “A change impact analysis approach using visualization method,” 01 (2010).

Published
2023-11-28