Instrumenting, Monitoring, & Debugging Software Architectures

Our thesis is very simple: elevating system development from the module to the architecture level requires a corresponding elevation in our tools for instrumenting, monitoring, and debugging systems. While we have a long history and mature technology for the former, we have just begun to recreate these capabilities at the software architecture level. This paper describes two architecture level tools that utilize architecture level instrumentation to monitor software architectures through animation and to create automated drivers for debugging or exercising subsets of those architectures. The latter has been used to give “demonstrations” of distributed systems in which only the user interface is run live by driving that user interface from previously recorded system executions. This paper also describes two implementations of the instrumented connectors these tools rely on.

[1]  David C. Luckham,et al.  Partial orderings of event sets and their application to prototyping concurrent, timed systems , 1993, J. Syst. Softw..

[2]  David Eichmann,et al.  Program and interface slicing for reverse engineering , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[3]  Mary Shaw Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status , 1993, ICSE Workshop on Studies of Software Design.

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

[5]  Dewayne E. Perry The inscape environment , 1989, ICSE '89.

[6]  Dewayne E. Perry,et al.  Software interconnection models , 1987, ICSE '87.

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

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

[9]  Janusz W. Laski,et al.  Dynamic slicing of computer programs , 1990, J. Syst. Softw..

[10]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[11]  Thomas W. Reps,et al.  Integrating non-intering versions of programs , 1988, POPL '88.

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

[13]  GarlanDavid,et al.  Exploiting style in architectural design environments , 1994 .

[14]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

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

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

[17]  John D. Musa,et al.  Operational profiles in software-reliability engineering , 1993, IEEE Software.

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

[19]  Thomas W. Reps,et al.  Integrating noninterfering versions of programs , 1989, TOPL.