Synopses & Reviews
This award-winning book, substantially updated to reflect the latest developments in the field, 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.
Drawing on their own extensive experience, the authors cover the essential technical topics for designing, specifying, and validating a system. 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 opportunities and constraints that companies encounter. To that end, case studies that describe successful architectures illustrate key points of both technical and organizational discussions.
Topics new to this edition include:
- Architecture design and analysis, including the Architecture Tradeoff Analysis Method (ATAM)
- Capturing quality requirements and achieving them through quality scenarios and tactics
- Using architecture reconstruction to recover undocumented architectures
- Documenting architectures using the Unified Modeling Language (UML)
- New case studies, including Web-based examples and a wireless Enterprise JavaBeans (EJB) system designed to support wearable computers
- The financial aspects of architectures, including use of the Cost Benefit Analysis Method (CBAM) to make decisions
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.
This is the eagerly-anticipated revision to one of the seminal books in the field of software architecture which clearly defines and explains the topic.
Distinct from details such as implementation, an architecture is a reusable asset that can be applied to subsequent systems. This text introduces concepts and best practices of software architecture - that is, what it is designed to do and how the systems elements should interact.
Includes bibliographical references (p. 489-494) and index.
About the Author
Len Bass is a senior member of the technical staff at the Software Engineering Institute (SEI). He has written or edited five books and numerous papers on software engineering and other topics. He has extensive experience in architecting real-world development projects.
Paul Clements is a senior member of the technical staff at the SEI, where he works on software architecture and product line engineering. He is the author of five books and more than three dozen papers on these and other topics.
Rick Kazman is a senior member of the technical staff at the SEI. He is also an Associate Professor at the University of Hawaii. He is the author of two books, editor of two more, and has written more than seventy papers on software engineering and related topics.
Table of Contents
I. ENVISIONING ARCHITECTURE. 1. The Architecture Business Cycle.
2. What Is Software Architecture?
3. A-7E Avionics System: A Case Study in Utilizing Architectural Structures.
II. CREATING AN ARCHITECTURE. 4. Understanding Quality Attributes.
5. Achieving Qualities.
6. Air Traffic Control: A Case Study in Designing for High Availability.
7. Creating the Architecture.
8. Flight Simulation: A Case Study in an Architecture for Integrability.
9. Documenting Software Architectures.
10. Reconstructing Software Architectures.
III. ANALYZING AN ARCHITECTURE. 11. The ATAM: A Comprehensive Method for Architecture Evaluation.
12. CBAM: A Quantitative Approach to Architecture Design Decision Making.
13. The World Wide Web: A Case Study in Interoperability.
IV. MOVING FROM ONE SYSTEM TO MANY. 14. Software Product Lines: Reusing Architectural Assets.
15. CelsiusTech: A Case Study in Product Line Development.
16. J2EE/EJB: A Case Study of an Industry Standard Computing Infrastructure.
17. The Luther Architecture: A Case Study in Mobile Applications Using J2EE.
18. Building Systems from Off-the-Shelf Components.
19. Software Architecture in the Future.