Pattern-Oriented Software Architecture: On Patterns and Pattern Languages
Software patterns have significantly changed the way we design, implement and think about computing systems. Patterns provide us with a vocabulary to express architectural visions, as well as examples of representative designs and detailed implementations that are clear and to the point.
Software patterns have revolutionized the way developers think about how software is designed, built, and documented, and this unique book offers an in-depth look of what patterns are, what they are not, and how to use them successfully
This is only book to attempt to develop a comprehensive language that integrates patterns from key literature, it also serves as a reference manual for all pattern-oriented software architecture (POSA) patterns.
Review By: Ross Collard
06/09/2008
From the back cover of this book: "Software patterns have changed the way we design, implement and think about computer systems. Patterns provide us with a vocabulary to express architectural visions ..." Why would a software tester or QA professional want to buy a book like this? Because it has a whole bunch of pay-offs.
Pattern-Oriented Software Architecture, Volume V (POSA5) is timely, should have a long shelf life, and is likely to become a classic. It begins with a realistic example of how a design evolves from an inspired, but somewhat messy mind-map on a white board, to a rich, re-usable pattern; and explains how a pattern can be adapted and applied in different contexts. I was immediately able to use the knowledge I gained to strengthen my checklist of questions for testers and auditors to use in design walkthroughs, despite having only browsed through the book and not reading its four predecessor volumes.
Questions which were addressed at least in part include:
- How are software architectures compared and evaluated?
- What are the lessons learned from assessing software architectures?
- What assessment frameworks are available for software architectures?
- What are the most appropriate mechanisms to assess software architecture design
technologies (artifacts, methods and tools), within various contexts?
- To what extend can testers, auditors, software architects and project managers rely on traditional quality indicators?
- How can we retain design visibility and control software entropy or "rot"?
Questions addressed, specific to design review checklists:
- What description language characteristics help or hinder the architectural description?
- Do the review questions reflect stakeholders' interests, relevant design principles and architectural concerns?
- How can we prepare for a design or architecture review?
- How can we incorporate lessons learned in prior reviews?
- What guidelines, best practices or mandated standards should we incorporate?
This is a great book for anyone who wants to understand software architectures, the promise of patterns, and how to effectively apply them. I gained insights into the characteristics of architectures and patterns, their implications, and their trade-offs.
The authors deliver information to their readers with a plain, clear and succinct--but not boring--writing style. The book has been well researched and presents sound evidence to support the author’s positions. It is a valuable addition to a tester's library, though not primarily intended for a test audience. As such, it is better suited for experienced testers, rather than novices, who want to round their understanding of software quality.
You may feel that the words "pattern" and "architecture" are over-used in book titles; hype to increase the sales of books which once acquired are unlikely to be read. You may feel intimidated because this is merely one of five volumes on pattern-oriented software architecture. Or that a discussion of patterns and languages may be too theoretical or ethereal. If this is your stance, then you can instead get by with “Architecture and Patterns for Dummies," length: 50 pages. But do not let misunderstandings like these keep you from the book.