Software traceability is important for modeling dependencies among software objects because it allows navigation to different objects to examine the extent of a change. These papers will introduce you to the fundamental ideas that permeate practical impact analysis. Automated support is essential for effective impact analysis. There is considerable work in manually identifying change impacts in the plethora of software artifacts produced during development and maintenance. By giving examples of impact-analysis tools and environments, the chapter provides some background on automated support for different types of impact analysis and alerts you to some key technologies that can be applied to impact analysis.
Impact analysis requires some model, explicit or implicit, of dependencies.
Formal definitions of programming languages provide a reasonable structure to capture data definition and use information as well as control-flow information. Many of the ideas here also pertain to the use of dependency information in impact analysis in general. Advances in software-development environments and repository technology have enabled software engineers to trace the impacts of software changes using traceability relationships. Much of this chapter is based on traceability in software-development environments and documentation systems. Traceability relationships are often represented in a graph structure, which is amenable to navigation with a hypertext system.