The core book in SEI's influential architecture curriculum, this book introduces software architecture both for practicing software engineers and for students pursuing careers in software design or management. It combines the authority of SEI's pioneering curriculum with the proven pedagogical effectiveness of a book that's been used for many years in countless training and college courses. The authors provide a comprehensive overview of the field of software architecture in a single, easy-to-digest package. This book will help readers understand: * Why software architecture is critical to development projects and the organization as a whole * Which technical and organizational factors influence architecture, and are in turn influenced by it * How architecture drives quality attributes such as performance and reliability * How to master and choose among today's best architectural tactics
The award-winning and highly influential Software Architecture in Practice, Third Edition, has been substantially revised to reflect the latest developments in the field. In a real-world setting, the book once again introduces the concepts and best practices of software architecture—how a software system is structured and how that system’s elements are meant to interact. 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.
The authors have structured this edition around the concept of architecture influence cycles. Each cycle shows how architecture influences, and is influenced by, a particular context in which architecture plays a critical role. Contexts include technical environment, the life cycle of a project, an organization’s business profile, and the architect’s professional practices. The authors also have greatly expanded their treatment of quality attributes, which remain central to their architecture philosophy—with an entire chapter devoted to each attribute—and broadened their treatment of architectural patterns.
If you design, develop, or manage large software systems (or plan to do so), you will find this book to be a valuable resource for getting up to speed on the state of the art.
Totally new material covers
Contexts of software architecture: technical, project, business, and professional
Architecture competence: what this means both for individuals and organizations
The origins of business goals and how this affects architecture
Architecturally significant requirements, and how to determine them
Architecture in the life cycle, including generate-and-test as a design philosophy; architecture conformance during implementation; architecture and testing; and architecture and agile development
Architecture and current technologies, such as the cloud, social networks, and end-user devices