Abstract-Change impact analysis is required for constantly evolving systems to support the comprehension, implementation, and evaluation of changes. A lot of research effort has been spent on this subject over the last twenty years, and many approaches were published likewise. However, there has not been an extensive attempt made to summarize and review published approaches as a base for further research in the area. Therefore, we present the results of a comprehensive investigation of software change impact analysis, which is based on a literature review and a taxonomy for impact analysis. The contribution of this review is threefold. First, approaches proposed for impact analysis are explained regarding their motivation and methodology. They are further classified according to the criteria of the taxonomy to enable the comparison and evaluation of approaches proposed in literature. We perform an evaluation of our taxonomy regarding the coverage of its classification criteria in studied literature, which is the second contribution. Last, we address and discuss yet unsolved problems, research areas, and challenges of impact analysis, which were discovered by our review to illustrate possible directions for further research.
Typical software engineering activities, such as program maintenance or reengineering, result in frequent changes of software which are often accompanied by unintended side effects. Consequently, research on impact analysis put forth approaches to assess the adverse effects of changes. However, understanding and implementing these changes is often aggravated by inconsistencies and dependencies between different types of software artifacts. Likewise, most impact analysis approaches are not able to detect the possible side effects of changes when different types of software artifacts are involved. We present an approach that combines impact analysis and multi-perspective modeling for analyzing the change propagation between heterogeneous software artifacts. Our approach assists developers with understanding the consequences of changes by identifying impacted artifacts and determining how they are affected. We utilize a model repository for combining UML models, Java source code, and JUnit tests by mapping them on a unifying meta-model. We introduce a novel impact propagation approach that analyzes dependencies between software artifacts according to the type of change which is applied upon them. Our approach is implemented by a set of impact propagation rules which are evaluated by a case study.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.