Date of Original Version
Abstract or Description
A critical aspect of the design for any large software system is its gross structure – that is, its high-level organization of computational elements and interactions between those elements [3, 6]. Broadly speaking, we refer to this as the software architectural level of design. Recently software architecture has begun to emerge as an important field of study for software engineering practitioners and researchers. This emergence is evidenced by a large body of recent work in areas such as module interface languages, domain specific architectures, architectural description languages, formal underpinnings for architectural design, and architectural design environments.