Mastering the complexity of programs and systems, particularly distributed systems, should lead to signi cant improvements in program and system understanding. In this paper we present a formal approach for (distributed) software understanding based action hierarchies represented by architectural design patterns. This approach allows us to model the distributed software applications through a formal model representing the underlying structure. The representation uses instances of architectural design patterns which can hide details that may be irrelevant in speci c situations. The formal models which are produced could be used as a basis for reasoning, code generation, and measuring the "goodness" of a design.
Paulo S. C. Alencar, Donald D. Cowan, Thomas Kunz,