Publication | Open Access
Foundations for the study of software architecture
2K
Citations
13
References
1992
Year
Software MaintenanceArchitectural DesignSoftware Architecture ModelingEngineeringArchitecture AnalysisSystem RequirementsProgram AnalysisSoftware ArchitectureDesignComputer ArchitectureArchitectural StylesSoftware EngineeringSocial SciencesArchitecture SpecificationSoftware AnalysisSystem SoftwareSoftware DesignSystem Architecture
The paper aims to establish a foundational framework for software architecture by introducing a three‑component model—elements, form, and rationale—and discussing its application to architectures and styles. The authors develop an intuition for software architecture using established disciplines, then define a model comprising elements (processing, data, connecting), form (properties and relationships among elements), and rationale (basis from system constraints), and illustrate it with an extended example. The study concludes that the proposed model offers benefits, summarizes its contributions, and positions it relative to existing research.
The purpose of this paper is to build the foundation for software architecture. We first develop an intuition for software architecture by appealing to several well-established architectural disciplines. On the basis of this intuition, we present a model of software architecture that consists of three components: elements, form, and rationale. Elements are either processing, data, or connecting elements. Form is defined in terms of the properties of, and the relationships among, the elements --- that is, the constraints on the elements. The rationale provides the underlying basis for the architecture in terms of the system constraints, which most often derive from the system requirements. We discuss the components of the model in the context of both architectures and architectural styles and present an extended example to illustrate some important architecture and style considerations. We conclude by presenting some of the benefits of our approach to software architecture, summarizing our contributions, and relating our approach to other current work.
| Year | Citations | |
|---|---|---|
Page 1
Page 1