This book introduces the concepts and practices of software architecture-what a software system is designed to do and how that system's components are meant to interact with each other. An architecture is an abstract view distinct from the details of implementation, algorithm, and data representation. Architecture is, increasingly, a crucial part of a software organization's business strategy because it is a reusable asset that can be reapplied to subsequent systems. Reuse leads to the architecture business cycle, allowing an organization to leverage the effort invested in an architecture to enter whole new business areas.Drawing on their extensive experience building and evaluating architectures, the authors cover the essential technical topics for specifying and validating a system. For the first time in a book, they also emphasize the importance of the business context in which large systems are designed. Their aim is to present software architecture in a real-world setting, reflecting both the constraints and the opportunities that companies encounter. To that end, key points of both technical and organizational discussions are illuustrated by a selection of 'industrial-strength' case studies. These studies, undertaken by the authors and the Software Engineering Institute, describe how successful architectures have led to the fulfillment of demanding requirements and enhanced an organization's position in its business community. If you design, develop, or manage the building of large software systems, or if you have an interest in acquiring such systems for your corporation or government agency, use this book to quickly get you up to speed on software architecture.