Change impact analysis to support architectural evolution

Change impact analysis is a useful technique in software maintenance and evolution. Many techniques have been proposed to support change impact analysis at the code level of software systems, but little effort has been made for change impact analysis at the architectural level. In this paper, we present an approach to supporting change impact analysis at the architectural level of software systems based on an architectural slicing and chopping technique. The main feature of our approach is to assess the effect of changes in a software architecture by analyzing its formal architectural specification, and, therefore, the process of change impact analysis can be automated completely. John Wiley & Sons, Ltd.

[1]  James S. Ketchel,et al.  Impact analysis , 1974, ACM '74.

[2]  Joseph P. Loyall,et al.  Using dependence analysis to support the software maintenance process , 1993, 1993 Conference on Software Maintenance.

[3]  Robert J. Allen A formal approach to software architecture , 1997 .

[4]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[5]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[6]  Robert S. Arnold,et al.  Software Change Impact Analysis , 1996 .

[7]  George S. Avrunin,et al.  Applying static analysis to software architectures , 1997, ESEC '97/FSE-5.

[8]  Alexander L. Wolf,et al.  Aladdin: A Tool for Architecture-Level Dependence Analysis of Software Systems , 1998 .

[9]  Jianjun Zhao Using Dependence Analysis to Support Software Architecture Understanding , 2001, ArXiv.

[10]  Stephen S. Yau,et al.  Ripple effect analysis of software maintenance , 1978, COMPSAC.

[11]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[12]  Daniel Jackson,et al.  A new model of program dependences for reverse engineering , 1994, SIGSOFT '94.

[13]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[14]  C. A. R. Hoare,et al.  Communicating Sequential Processes (Reprint) , 1983, Commun. ACM.

[15]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[16]  David Luckham,et al.  Debugging Ada Tasking Programs , 1985, IEEE Software.

[17]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[18]  H. Dieter Rombach Design measurement: some lessons learned , 1990, IEEE Software.

[19]  Mikael Lindvall,et al.  How well do experienced software developers predict software change? , 1998, J. Syst. Softw..

[20]  Mark David Weiser,et al.  Program slices: formal, psychological, and practical investigations of an automatic program abstraction method , 1979 .

[21]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[22]  Jianjun Zhao,et al.  Applying slicing technique to software architectures , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[23]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .