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 ), 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 ). The resulting abstraction hierarchies form a tree structure, a user of Poet can navigate and manually modify these hierarchies. As described in , 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.