A critical aspect of the design for any large software system is its gross structure represented as a high-level organization of computational elements and interactions between those elements. Broadly speaking, this is the software architectural level of design 11, 22. The structure of software has long been recognized as an important issue of concern e.g., 33, 44. However, recently software architecture has begun to emerge as an explicit eld of study for software engineering practitioners and researchers. Evidence of this trend is apparent in a large body of recent w ork in areas such as module interface languages, domain speciic architectures, architectural description languages, design patterns and handbooks, formal underpinnings for architectural design, and architectural design environments. What exactly do we mean by the term software archi-tecture?" As one might expect of a eld that has only recently emerged as an explicit focus for research and development , there is currently no universally-accepted definition. Moreover, if we look at the common uses of the term architecture" in software, we nd that it is used in quite diierent w a ys, often making it diicult to understand what aspect is being addressed. Among the various uses are a the architecture of a particular system, as in the architecture of this system consists of the following components ," b an architectural style, as in this system adopts a client-server architecture," and c the general study of architecture, as in the papers in this journal are about architecture." Within software engineering, most uses of the term software architecture" focus on the rst of these interpretations. Typical of these is the following deenition which was developed in a a software architecture discussion group at the SEI in 1994. The structure of the components of a pro-grammsystem, their interrelationships, and principles and guidelines governing their design and evolution over time. As deenitions go, this is not a bad starting point. But deenitions such as this tell only a small part of the story. More important than such explicit deenitions, is the locus of eeort in research and development that implicitly has come to deene the eld of software architecture. To clarify the nature of this eeort it is helpful to observe that the recent emergence of interest in software architecture has been prompted by t w o distinct trends. The rst is the recognition that over the years designers have begun to develop a shared …
[1]
GarlanDavid,et al.
Exploiting style in architectural design environments
,
1994
.
[2]
Alexander L. Wolf,et al.
Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture
,
2022
.
[3]
David Garlan,et al.
Beyond definition/use: architectural interconnection
,
1994
.
[4]
David Garlan,et al.
The role of formal reusable frameworks
,
1990,
Formal Methods in Software Development.
[5]
David Lorge Parnas,et al.
The Modular Structure of Complex Systems
,
1984,
IEEE Transactions on Software Engineering.
[6]
Edsger W. Dijkstra,et al.
The structure of the “THE”-multiprogramming system
,
1968,
CACM.
[7]
Mary Shaw,et al.
An Introduction to Software Architecture
,
1993,
Advances in Software Engineering and Knowledge Engineering.
[8]
Roger P. Beck,et al.
Architectures for large-scale reuse
,
1992,
AT&T Technical Journal.
[9]
Paul Clements,et al.
Predicting software quality by architecture-level evaluation
,
1995
.
[10]
David Garlan,et al.
Exploiting style in architectural design environments
,
1994,
SIGSOFT '94.
[11]
Marc H. Graham,et al.
The Domain-Specific Software Architecture Program
,
1992
.
[12]
David Garlan,et al.
Formalizing Architectural Connection
,
1994,
ICSE.