Impact Analysis

During the Incremental Change process, after concept location, the programmers proceed with the next activity, which is impact analysis. Impact analysis determines a change’s extent by sketching out the strategy for the change and identifying the set of classes that the IC is going to affect and that is called the impact set.

While there are research tools and approaches for automated impact analysis [1], most of these tools are research prototypes. JRipples supports iterative impact analysis process illustrated by Rajlich and Gosavi in [2]. According to this approach, the initial impact set consists of all the classes which were identified (marked as   Located) during concept location. Next, the programmers iteratively inspect each class that either depends on or supports the classes in the current impact set. For each such class, the programmers determine if the change impacts this class as well; if so, the programmers add the class to the impact set. This iterative process ends when there are no more candidates to visit.

JRipples supports an extended version of the basic iterative IA, where at each step of analysis the programmers can select a granularity at which a chosen propagation rule will be applied [3]. For this, JRipples supports the granularity of classes, their members, and granularity of code fragments.

Components, identified as   Impacted during Impact Analysis process, serve as an input to the Change Propagation phase of the Incremental Change process.