Software Engineering Institute Carnegie Mellon

Software Architecture: The 20th Century Collection

Software architecture began as a field of study with early observations by Parnas, Dijkstra, and others that how software is structured matters as much as its ability to compute the correct result. Structured programming was the small-scale expression of this realization in the 1970s and 1980s, when object-oriented design emerged as a larger-scale manifestation. In the 1990s, interest in software architecture blossomed as Perry and Wolf, Shaw and Garlan, Kruchten, and others wrote about large-scale structures, reusable styles and patterns, and multiple coordinated views.

Throughout this period, we have maintained a fairly comprehensive bibliography on software architecture, keeping track of the growth of the field by cataloguing the journal papers, conference papers, technical reports, and books on or related to the subject.

As the new century dawned, it became infeasible to continue growing this collection. Instead, our attention is now on the best of the best: What are the essential papers or books that should be on the software architect's bookshelf? We would like to submit your recommendation(s)? If so, please use our online form to nominate your recommendation(s) for the bookshelf. All nominations will appear as part of The Software Architect's Essential Bookshelf.