Software Engineering Book Recommendations

Mary Shaw

People often ask me for recommendations about software engineering books. These don't cover all the topics that people ask about, but each is outstanding in its area. You'll notice that the emphasis here is on the engineering aspects of design, and the scope is not limited strictly to software.

The Books:

Software architecture and system organization


Universal Modeling Language

Engineering in General

Ordering On-line:

To make it easy for you to obtain these books, each recommendation includes a link that allows you to order the book from To order more than one of these, you may put each book in your shopping cart and use the "back" button to return here for the next book. .

The Recommendations:

Mary Shaw & David Garlan: Software Architecture: Perspectives on an Emerging Discipline

  Naturally we'll start close to home. This is the definitive introduction to software architecture, or the study of the structural patterns people find useful for organizing software systems. Using extensive examples, it presents the software system organizations -- such as pipes-and-filters, communicating processes, blackboards, and event systems -- that software designers know and love. It goes on to discuss ways to choose from among the alternatives and to write precise specifications. Order it from

Frank Buschmann et al: Pattern-Oriented Software Architecture

  One of the two best books from the very successful pattern movement, this one focuses on patterns that apply to overall system organization, or architecture. Order it from

Michael Jackson: Software Requirements and Specifications

  Jackson recognizes that problems fall into recognizable classes, and that the classes have different properties. He captures these as problem frames such as "workpieces," "simple information system," and "control." The book is organized as a collection of short essays. Order it from

Terry Winograd (ed): Bringing Design to Software

  "Design" here means design of the software-centered product as seen and used by its ultimate clients. This collection of case studies, guidelines, and reflections presents a view of software design that includes issues that are too often neglected. Order it from

Martin Fowler with Kendall Scott: UML Distilled

  As reported by my colleagues, a high-level overview of UML. Quick read but not much technical detail. Read it to get the overview. Order it from

Hans-Erik Eriksson & Magnus Penker: UML Toolkit

  According to my colleagues, a single volume with a chapter on each of the myriad aspects of UML. Lots of detail, CD-ROM with demo environment. Order it from

Eberhardt Rechtin & Mark W. Maier: The Art of Systems Architecting

  Software is often embedded in a larger system. Here "architecting" is taken to be "the planning and building of structures." Based on Rechtin's long experience in aerospace systems, this volume articulates design principles that apply not only to software but to larger systems. Order it from

Henry Petroski: Design Paradigms: Case Histories of Error and Judgment in Engineering

  Petroski is a civil engineer. He believes that one of the best ways to learn about good engineering design is to examine failure cases to find the source of failure. I liked To Engineer is Human; I like Design Paradigms even better, because it includes not only case studies but also generalizations and some design guidance. Although the subject matter of these cases is large engineering structures, the design lessons apply to software as well. Order it from

Arthur Squires: The Tender Ship : Governmental Management of Technological Change

  Although the book is over 12 years old, the message is still fresh: Success of an engineered artifact depends critically on faithfulness to the integrity of the engineered artifact. Squires analyzes a number of successful and unsuccessful government technology procurements. He finds that the failures were usually associated with bureaucratic or political interference in the acquisition. Order it from, but realize that because of its age, it may take several weeks to get a copy. On the other hand, I was unsuccessful in locating it in even the best physical bookstores in several cities.

The fine print: This is the Software Engineering department of Roy Weil's on-line bookstore, an affiliate of This department is edited by Mary Shaw. is an on-line bookstore with secure procedures for credit card purchases. To search for other books in Amazon's huge collection, you may go directly to Amazon's front page. We'll donate any proceeds from sales via this page to Carnegie Mellon.

This page is part of Mary Shaw's site in the School of Computer Science at Carnegie Mellon University. It was last modified on 01/22/98. Use of any portion of this site to generate spam or other mass communications is forbidden. Comments to maintainer.