Using Dependence Analysis to Support Software Architecture Understanding

Software architecture is receiving increasingly attention as a critical design level for software systems. As software architecture design resources (in the form of architectural descriptions) are going to be accumulated, the development of techniques and tools to support architectural understanding, testing, reengineering, maintaining, and reusing will become an important issue. In this paper we introduce a new dependence analysis technique, named architectural dependence analysis to support software architecture development. In contrast to traditional dependence analysis, architectural dependence analysis is designed to operate on an architectural description of a software system, rather than the source code of a conventional program. Architectural dependence analysis provides knowledge of dependences for the high-level architecture of a software system, rather than the low-level implementation details of a conventional program.

[1]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984, SDE 1.

[2]  Andrea De Lucia,et al.  Understanding function behaviors through program slicing , 1996, WPC '96. 4th Workshop on Program Comprehension.

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

[4]  Lori A. Clarke,et al.  A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance , 1990, IEEE Trans. Software Eng..

[5]  Jianjun Zhao,et al.  Software Architecture Slicing , 1997 .

[6]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[7]  Bogdan Korel The Program Dependence Graph in Static Program Testing , 1987, Inf. Process. Lett..

[8]  Jingde Cheng Dependence analysis of parallel and distributed programs and its applications , 1997, Proceedings. Advances in Parallel and Distributed Computing.

[9]  Jingde Cheng,et al.  Static slicing of concurrent object-oriented programs , 1996, Proceedings of 20th International Computer Software and Applications Conference: COMPSAC '96.

[10]  Jianjun Zhao,et al.  Dependence Analysis of Concurrent Logic Programs , 1998 .

[11]  Gregg Rothermel,et al.  Efficient construction of program dependence graphs , 1993, ISSTA '93.

[12]  Eugene H. Spafford,et al.  Debugging with dynamic slicing and backtracking , 1993, Softw. Pract. Exp..

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

[14]  Susan Horwitz,et al.  Incremental program testing using program dependence graphs , 1993, POPL '93.

[15]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[16]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

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

[18]  趙建軍 PROGRAM DEPENDENCE ANALYSIS OF CONCURRENT LOGIC PROGRAMS AND ITS APPLICATIONS(並行論理型プログラムにおけるプログラム従属性の解析とその応用) , 1997 .

[19]  Karl J. Ottenstein,et al.  Experience compiling Fortran to program dependence graphs , 1992, Softw. Pract. Exp..

[20]  David A. Padua,et al.  Dependence graphs and compiler optimizations , 1981, POPL '81.