next up previous
Next: Distributed Objects in C++ Up: Description of Research Projects Previous: Parallel and Distributed Debugging

Reverse Engineering Distributed Applications

To fully utilize Poet's abstraction facilities, appropriate abstractions should be derived automatically. The research described in [3, 4, 5, 16, 18, 19, 20, 26, 27, 28] addresses this problem by applying reverse engineering approaches, originally developed for sequential legacy systems, to distributed applications. Based on a static source analysis, an analysis of the trace data describing the execution behaviour, and some rules similar to object-oriented architectural design patterns (see [12]), clusters (abstractions in the process domain) and abstract events (abstractions in the time domain) are derived automatically. To resolve ambiguities, I developed a quantitative cluster evaluation measure (see [11]). The resulting abstraction hierarchies form a tree structure, a user of Poet can navigate and manually modify these hierarchies. As described in [4], such abstraction hierarchies are not only useful in analyzing and understanding a distributed application for debugging purposes, but for more general software maintenance tasks as well. References [2, 16] study the properties of the behavioral abstractions (in the time domain) and contrast them to other proposals.

Thomas Kunz
Department of Computer Science
University of Waterloo
Waterloo, Ontario N2L 3G1
Fri May 2 10:11:04 EDT 1997