Research Directions in Sofiware Architecturef DAVID GAFL4N Carnegie Mellon Unlllers~ty, 5000 Forbes Avenue, Pltt~burgh, Pennsylvama 15213, ( garlan @ cs.cmu.edu). What is Software Architecture? A critical aspect of the design for any large software system is its high-level organization of computational elements and interactions between those elements. Broadly speaking, this is the software architectural level of design [ Garlan and Shaw 1993; Perry and Wolf 1992]. The structure of software has long been recognized as an important issue (e.g., [Dijkstra 1968; Parnas et al. 1985]) and recently software architecture has begun to emerge as an explicit field of study for software engineering practitioners and researchers. There is a large body of recent work in areas such as module interface languages, domain-specific architecarchitectural description lantures, guages, design patterns and handbooks, formal underpinnings for architectural design, and architectural design environments [Garlan 1995; Garlan and Perry 1995]. Although there is increasing agreement about the issues addressed by architectural design, there is currently no single, widely accepted definition of software architecture. Indeed, the term is used in quite different ways, including: (a) the architecture of a particular system, as in the architecture of this sysof the following tem consists components,
/lp/association-for-computing-machinery/research-directions-in-software-architecture-8s4h18Hmhh