Abstract

Software change impact analysis (CIA) is a key technique to identify the potential effects caused by software changes. Given the proposed changes, most commonly used CIA techniques apply reachability analysis on the graphical representation of the software to identify their effects. They often compute a large set of potentially impacted elements with many false-positives, which will waste resource in later analysis. In addition, these techniques do not consider the interference among the proposed changes, which does exist in practice. Faced with these problems, this paper proposed a new call graph-based CIA technique, which takes the interference among multiple proposed changes into account to improve the precision of the impact results. Our proposed CIA is inspired by a natural phenomenon ''water wave propagation''. The CIA process is similar to the process of water wave propagation. First we identify the ''core'' (a special set of methods) generated by the proposed changes. Then we compute the ripple effects through propagation analysis on this core. Empirical evaluations on two real-world software projects demonstrate the effectiveness of our CIA approach. The results show that our CIA technique can predict better impact results when more changes are known, and provide an eclectic way for practical use. Moreover, it can effectively remove the false-positives at the cost of missing a few false-negatives when compared to traditional (call graph based) CIA techniques.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call