Synopses & Reviews
Good software developers often adopt one or several architectural patterns as strategies for system organization. But, although they use these patterns purposefully, they often use them informally and nearly unconsciously. This book organizes this substantial emerging "folklore" of system design -- with its rich language of system description -- and closes the gap between the useful abstractions (constructs and patterns) of system design and the current models, notations and tools. It identifies useful patterns clearly, gives examples, compares them, and evaluates their utility in various settings -- allowing readers to develop a repertoire of useful techniques that goes beyond the single-minded current fads. Examines the ways in which architectural issues can impact software design; shows how to design new systems in principled ways using well-understood architectural paradigms; emphasizes informal descriptions, touching lightly on formal notations and specifications, and the tools that support them; explains how to understand and evaluate the design of existing software systems from an architectural perspective; and presents concrete examples of actual system architectures that can serve as models for new designs. For professional software developers looking for new ideas about system organization.
Software developers have often adopted specific architectural patterns for system organization - but, for the most part, informally. In this book, authors Mary Shaw and David Garlan discuss the formalization of what, until now, has been "a substantial folklore of system design, with little consistency or precision". With their unique perspective on the current state of software architecture and its impact on design, the authors provide useful information for several types of readers: Professional software developers will find new ideas in the discussion and evaluation of familiar patterns. Students will find useful techniques for approaching system organization from an architectural point of view, rather than following current fads or outmoded methodology. Educators will find the book helpful as a text for a software architecture course or as a supplemental text for courses in software engineering or software design. This book also includes hints for choosing a suitable architecture, the use of well-understood paradigms for designing new systems, how formal notation and models can characterize system design, and the study of actual system architectures as models for new designs.
Includes bibliographical references (p. 227-237) and index.
Table of Contents
2. Architectural Styles.
3. Case Studies.
4. Shared Information Systems.
5. Architectural Design Guidance.
6. Formal Models and Specifications.
7. Linguistic Issues.
8. Tools for Architectural Design.
9. Education of Software Architects.