13 Great Software Architecture Papers
In the paper “The Past, Present and Future of Software Architecture”, the authors (Philippe Kruchten, Henk Obbink, and Judith Stafford) have a sidebar in which they list their selection of “Great Papers of Software Architecture”. I’ve tried to collect these papers and links thereto for future reading. Here is a bibtex file for full citations. I’ve also included the parenthetical comments of Kruchten et al. in italics, and my comments in bold. Unless otherwise noted I’ve linked directly to the PDFs (please let me know if a link breaks).
Foundations
- Garlan and Shaw, “An Introduction to Software Architecture”—Shortly preceding their book, this paper brought together what we knew about software architecture in the beginning of the 1990s.
- D.E. Perry and A.L. Wolf, “Foundations for the Study of Software Architecture,”—This seminal paper will be always remembered for giving us this simple but insightful formula: {elements, form, rationale} = software architecture.
Precursors
- D.L. Parnas, “On the Criteria to Be Used in Decomposing Systems into Modules,”—Software architecture didn’t pop up out of the blue in the early 1990s. Although David Parnas didn’t use the term “architecture,” many of the underlying concepts and ideas owe much to his work. This article and the next two are the most relevant in this regard._
- D.L. Parnas, “On the Design and Development of Program Families”
- D.L. Parnas, P. Clements, and D.M. Weiss, “The Modular Structure of Complex Systems”
- F. DeRemer and H. Kron, “Programming-in-the-Large versus Programming-in-the-Small,” —Their Module Interconnection Language (MIL 75) is in effect the ancestor of all ADLs, and its design objectives are still valid today. The authors had a clear view of architecture as distinct from design and programming at the module level but also at the fuzzy, abstract, “high-level design” level.
Architectural views
- D. Soni, R. Nord, and C. Hofmeister, “Software Architecture in Industrial Applications,” —This article introduced Siemens’ five-view model, which the authors detailed in their 1999 book Applied Software Architecture
- __P. Kruchten, “The 4+1 View Model of Architecture,” —Part of the Rational Approach—now known as the Rational Unified Process—this set of views was used by many Rational consultants on large industrial projects. Its roots are in the work done at Alcatel and Philips in the late 1980s.
Process and pragmatics
- B.W. Lampson, “Hints for Computer System Design,”—This article and the next gave one of us (Kruchten), a budding software architect in the 1980s, great inspiration. They haven’t aged and are still relevant.
- J.A. Mills, “A Pragmatic View of the System Architect,” paywall
- ****W.E. Royce and W. Royce, “Software Architecture: Integrating Process and Technology,” —This article articulates the connection between architecture and process very well—in particular, the need for an iterative process in which early iterations build and validate an architecture. Not online, sadly.