Foundations for the study of software architecture
Open accessAbstract
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.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
Divergence of implemented architecture from intended architecture could lead to software architecture erosion.
“The diverges of implemented architecture from the corresponding intended architecture could lead to software architecture erosion [78].”
From Software Architecture in Practice: Challenges and Opportunities (2023) · cites this paper as [78]
Cited by
Sorted by citations
A classification and comparison framework for software architecture description languages
Medvidovic, N., & Taylor, R. N. (2000) · IEEE Transactions on Software Engineering · doi:10.1109/32.825767 · Cited by 1,987 · see citing works
10 years of software architecture knowledge management: Practice and future
Capilla, R., Jansen, A., Tang, A., Avgeriou, P., & Babar, M. A. (2016) · Journal of Systems and Software · doi:10.1016/j.jss.2015.08.054 · Cited by 160 · see citing works
On the Relevance of Code Anomalies for Identifying Architecture Degradation Symptoms
Macia, I., Arcoverde, R., Garcia, A., Chavez, C., & von Staa, A. (2012) · 2012 16th European Conference on Software Maintenance and Reengineering · doi:10.1109/csmr.2012.35 · Cited by 121 · see citing works
Detecting, Tracing, and Monitoring Architectural Tactics in Code
Mirakhorli, M., & Cleland-Huang, J. (2016) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2015.2479217 · Cited by 85 · see citing works
Applications of clustering techniques to software partitioning, recovery and restructuring
Lung, C.-H., Zaman, M., & Nandi, A. (2004) · Journal of Systems and Software · doi:10.1016/s0164-1212(03)00234-6 · Cited by 81 · see citing works
Terra, R., Valente, M. T., Czarnecki, K., & Bigonha, R. S. (2015) · Software: Practice and Experience · doi:10.1002/spe.2228 · Cited by 37 · see citing works
Software Architecture in Practice: Challenges and Opportunities
Wan, Z., Zhang, Y., Xia, X., Jiang, Y., & Lo, D. (2023) · Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3611643.3616367 · Cited by 30 · see citing works
Mastering Erosion of Software Architecture in Automotive Software Product Lines
Strasser, A., Cool, B., Gernert, C., Knieke, C., Körner, M., Niebuhr, D., Peters, H., Rausch, A., Brox, O., Jauns-Seyfried, S., et al. (2014) · Lecture Notes in Computer Science · doi:10.1007/978-3-319-04298-5_43 · Cited by 9 · see citing works
Architectural Consistency Checking in Plugin-Based Software Systems
Greifenberg, T., Müller, K., & Rumpe, B. (2015) · Proceedings of the 2015 European Conference on Software Architecture Workshops · doi:10.1145/2797433.2797493 · Cited by 7 · see citing works
- Authors
- Perry, D. E., & Wolf, A. L.
- Affiliations
- AT&T (United States) (US)
- University of Colorado Boulder (US)
- ORCID
- Wolf, Alexander L.
- Venue
- ACM SIGSOFT Software Engineering Notes
- Published
- 1992-10
- Volume
- 17
- Issue
- 4
- Pages
- 40-52
- ISSN
- 0163-5948 (ISSN-L)
- OpenAlex
- W2118023438
- Cited by
- 2,023
- References
- 0
- Citations by year
- 2026: 24 · 2025: 16 · 2024: 20 · 2023: 34 · 2022: 24 · 2021: 31 · 2020: 35 · 2019: 30 · 2018: 61 · 2017: 40 · 2016: 52 · 2015: 72 · 2014: 64 · 2013: 95 · 2012: 74
- FWCI
- 20.96
- Type
- journal article
- Language
- en
- Open access
- bronze
- doi.org
- Locations
- ACM SIGSOFT Software Engineering Notes (publishedVersion)
- Topics
- Physical Sciences › Computer Science › Artificial Intelligence › Advanced Software Engineering Methodologies
- Physical Sciences › Computer Science › Software › Model-Driven Software Engineering Techniques
- Physical Sciences › Computer Science › Information Systems › Software Engineering Techniques and Practices
- Keywords
- software architecture, architectural models, architectural style, system constraints, system requirements, processing elements, data elements, connection elements, architectural form
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review