Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives
Software Systems Architecture, Second Edition is a highly regarded, practitioner-oriented guide to designing and implementing effective architectures for information systems. It is both a readily accessible introduction to software architecture and an invaluable handbook of well-established best practices.
With this book you will learn how to:
- Design and communicate an architecture that reflects and balances the different needs of its stakeholders
- Focus on architecturally significant aspects of design, including frequently overlooked areas such as performance, resilience, and location
- Use scenarios and patterns to drive the creation and validation of your architecture
- Document your architecture as a set of related views
Review By: TVG Prabhu
06/04/2012
What does an architect do, anyway? What is his role in the organization? Aren't there multiple—perhaps infinitely many—potential architectures for a system that is yet to be built? How do you know if one is better than another? In other words, can architecture be tested before the system is built? Is architecting software an art or science? Can it be made a science? If you have any of these questions or have more than a passing interest in software architecture, you should get this book.
In Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives, authors Nick Rozanski and Eoin Woods take a comprehensive look at the process and deliverables of software architecture. The treatment is so rigorous that they even have an UML model of the process, actors, and deliverables involved in the architecting endeavor. That’s what real architects do: abstract away all the messy details and produce a model of a system—even one as mysterious as the software architecture process–that guides our thinking.
The primary sections of the book cover: the process of software architecture; a catalog of "viewpoints" that provide a way to subdivide and address different aspects of architecture; and a catalog of "perspectives" that are horizontal, quality related aspects that can be applied to refine the architectural models. Every chapter dissects, tabulates, layers, and checklists its material and provides a collection of take-off points through the further reading section. The systematic and taxonomic approach to the subject matter will put the intended audience right at home.
The one nitpick I have about the book is the lack of a running example that could have strung together the catalog portions of the book more cohesively. The authors do cite numerous different examples throughout the book, however the viewpoint and perspective catalog sections would have benefited from a single example to which each viewpoint or perspective could be applied. This would have been especially useful in the perspective catalog section, as the reader would be able to see the after effects of applying a perspective to an existing model.
But, don't let that nitpick discourage you. This book will be an invaluable companion to you as an architect or one who closely works with an architect, regardless of your level of experience or the stage of software development you find yourself in.