

The book covers a lot of theory and delves deeply into methods. It covers a lot of the related topics of software architecture and investigates the mutual interactions between them. This book, as far as I can tell, is an acknowledged reference on the subject. One of the longest-standing questions was the relationship between agile development and software architecture. This distinction, although it started to clear early on, remained a bit vague for me. One of the earliest questions I pondered was the difference between software architecture as it’s practiced by the community and described in the canon and just developing some proper OOP. For a big part of it, software architecture has been a major concern for me. If you design, develop, or manage the building of large software systems (or plan to do so), or if you are interested in acquiring such systems for your corporation or government agency, use Software Architecture in Practice, Second Edition, to get up to speed on the current state of software architecture.īy the time I’m writing this, I have about eight years of experience in software engineering. The financial aspects of architectures, including use of the Cost Benefit Analysis Method (CBAM) to make decisions New case studies, including Web-based examples and a wireless Enterprise JavaBeans (EJB) system designed to support wearable computers Using architecture reconstruction to recover undocumented architecturesĭocumenting architectures using the Unified Modeling Language (UML) To that end, case studies that describe successful architectures illustrate key points of both technical and organizational discussions.Īrchitecture design and analysis, including the Architecture Tradeoff Analysis Method (ATAM)Ĭapturing quality requirements and achieving them through quality scenarios and tactics Their aim is to present software architecture in a real-world setting, reflecting both the opportunities and constraints that companies encounter. They also emphasize the importance of the business context in which large systems are designed. Distinct from the details of implementation, algorithm, and data representation, an architecture holds the key to achieving system quality, is a reusable asset that can be applied to subsequent systems, and is crucial to a software organization's business strategy.ĭrawing on their own extensive experience, the authors cover the essential technical topics for designing, specifying, and validating a system.

This award-winning book, substantially updated to reflect the latest developments in the field, introduces the concepts and best practices of software architecturehow a software system is structured and how that system's elements are meant to interact.
