Wherefore the mere practical architect is not able to assign sufficient reasons for the forms he adopts; and the theoretic architect also fails, grasping the shadow instead of the substance. He who is theoretic as well as practical, is therefore doubly armed; able not only to prove the propriety of his design, but equally so to carry it into execution.
-- Marcus Vitruvius Pollio: de Architectura, Book I (1st century BC)
Our Software Architecture Book
I have written a book on software architecture with a colleague, Eoin Woods.
The book is called Software Systems Architecture : Working With Stakeholders Using Viewpoints and Perspectives, and is published by Pearson. The first edition (ISBN 0321112296) was published on 29 April 2005, and the second edition (ISBN 032171833X) on 4 November 2011.
It is a practical handbook for anyone who is, or would like to become, a software architect. Specifically, the book explains:
- what software architecture is about and why your role is vitally important to successful project delivery;
- how to determine who is interested in your architecture (your stakeholders), understand what is important to them (their concerns), and design an architecture that reflects and balances their different needs;
- how to communicate your architecture to your stakeholders in an understandable way that demonstrates that you have met their concerns (the architectural description);
- how to focus on what is architecturally significant, safely leaving other aspects of the design to your designers, without neglecting issues like performance, resilience, and location;
- what important activities you most need to undertake as an architect, such as identifying and engaging stakeholders, using scenarios, creating models, and documenting and validating your architecture.
Edition 1 was translated into Japanese, and Edition 2 was also translated into Chinese and Korean.
What's New in Edition 2
The most important changes in this edition were as follows.
- We introduced a new viewpoint, which we called the Context viewpoint. This describes the relationships, dependencies, and interactions between the system and its environment (the people, systems, and external entities with which it interacts). It extends, formalizes, and standardizes the relatively brief discussion of scope and context that used to be in Chapter 8.
- We expanded the discussion of different aspects of the role of architecture in Part II.
- We refined most of the viewpoint and perspective definitions, particularly the Functional and Concurrency views and the Performance and Scalability perspective.
- We revised and extended the Bibliography and the Further Reading sections in most chapters.
- We updated the book to align with the concepts and terminology in the new international architecture standard ISO 42010 (which derives from IEEE Standard 1471).
- We updated our UML modeling advice and examples to reflect the changes introduced in version 2 of UML.
Our Software Architecture Website
You can find our website for the book here.
Whether you are interested in our book or not, there is a wealth of useful information on the site for new or experienced architects. For example:
- There is an introduction to stakeholders here. Stakeholders include all individuals, teams, organizations, and classes thereof, who have an interest in the architecture.
- There is an introduction to viewpoints and views here. Viewpoints provide a standardised and structured way for the architect to analyze, describe and explain the architecture.
- There is an introduction to perspectives here. Perspectives, a concept introduced in the book, provide a standardised and structured way for the architect to ensure that quality properties such as scalability, resilience or security are appropriately considered.
- There are links to articles and presentations that Eoin and I have produced related to software architecture here.
We have also drawn up a Quick Reference Card which contains reference information on all our viewpoints and perspectives in a single PDF.
You can browse the first chapter of the book here.