Chaining: A Software Architecture Dependence Analysis Technique

The emergence of formal architecture description languages provides an opportunity to perform analyses at high levels of abstraction. Research has primarily focused on developing techniques such as algebraic and transition-system analysis to detect component mismatches or global behavioral incorrectness. In this paper, we describe chaining, a technique similar in concept and application to program slicing, in which the goal is to reduce the portions of an architecture that must be examined by an architect for some purpose, such as testing or debugging. In chaining, links represent the dependence relationships that exist in an architectural speciication. Links connect elements of the speciication that are directly related, producing a chain of dependencies that can be followed during analysis. We illustrate the utility of chaining by showing how the technique can be used to answer various questions one might pose of a Rapide architecture speciication.

[1]  Debra J. Richardson,et al.  Static and Dynamic Speci cation Slicing , 1994 .

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

[3]  Walter Mann,et al.  A Rapide-1.0 Definition of the ADAGE Avionics System , 1993 .

[4]  Jingde Cheng,et al.  Slicing Concurrent Programs - A Graph-Theoretical Approach , 1993, AADEBUG.

[5]  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..

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

[7]  Paola Inverardi,et al.  Checking Assumptions in Component Dynamics as the Architectural Level , 1997, COORDINATION.

[8]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[9]  Eugene H. Spafford,et al.  An execution-backtracking approach to debugging , 1991, IEEE Software.

[10]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.

[11]  Richard N. Taylor,et al.  Formal Modeling of Software Architectures at Multiple Levels of Abstraction , 1996 .

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

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

[14]  Jeff Magee,et al.  Distributed Software Architectures , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[15]  Debra J. Richardson,et al.  TAOS: Testing with Analysis and Oracle Support , 1994, ISSTA '94.

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

[17]  Anthony M. Sloane,et al.  Beyond traditional program slicing , 1996, ISSTA '96.

[18]  Tornohiro ODA,et al.  Specification slicing in formal methods of software development , 1993, Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93.

[19]  Debra J. Richardson,et al.  Developing and integrating ProDAG in the Arcadia environment , 1992, SDE.

[20]  Barbara G. Ryder,et al.  Interprocedural Def-Use Associations for C Systems with Single Level Pointers , 1994, IEEE Trans. Software Eng..