This book provides a concise, all-in-one, easily accessible overview of software architecture. Anyone requiring a comprehensive overview of the field of software architecture will benefit from this book. Software Architecture in Practice, 2nd edition, provides a comprehensive overview of the field of software architecture in a single, easy-to-digest package.
- How can you come to understand the many ways that software architecture is critical to a development project and to an organization as a whole?
- How can you learn what technical and organizational factors influence an architecture, and what factors it in turn influences?
- How can you learn how an architecture is almost completely responsible for delivering a software system's quality attributes such as performance or reliability?
- How can you get a concise primer on architectural tactics and their uses?
- Where can you learn about the Architecture Tradeoff Analysis Method (ATAM), a low-cost scenario-based method for evaluating an architecture?
- Where can you see case studies of actual software architectures for large systems, each of which was crafted to deliver particular quality attributes?
Software Architecture in Practice is the best-selling book about the principles, concepts, and uses of software architecture. It is a one-stop source for a comprehensive overview of the entire field. It covers origins of the concept, its importance in system-building as well as organizational strategy, and related concepts such as architectural styles.
One of the book's major contributions is its rich examples. It contains no fewer than six detailed case studies of real architectures built to solve real problems: air traffic control, avionics, the World Wide Web, simulation, mobile applications, and more. Each architecture was crafted with one or more quality attributes in mind: ease of change, reliability, growth and extensibility, use in a product line, performance, etc. These case studies serve to emphasize the book's major theme: architecture permits or precludes most of a system's quality attributes.
Documenting the architecture is the crowning step to crafting it. The most perfect architecture is useless if no one understands it. If you can go to the trouble of creating a strong architecture, you must go through the trouble of describing it in enough detail, without ambiguity, and organized so that others can quickly find needed information.
Another major contribution is the book's attention to evaluating a software architecture while it's still a paper design, before it's been solidified into code. Defects are spotted early, when they are still inexpensive enough to do something about. New methods have emerged that make architecture evaluation a cost-effective step that should be a part of every development process.
Finally, the book explores the role of architecture as the basis for a software product line, which is a set of systems that are built sharing a common set of core assets, of which architecture is the most important.
Software Architecture: Principles and Practices