Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Software architecture in practice (3rd ed.)
Bass L., Clements P., Kazman R., Addison-Wesley Professional, Upper Saddle River, NJ, 2013. 640 pp. Type: Book (978-0-321815-73-6)
Date Reviewed: Mar 26 2013

Written by the lead software engineering scientists at the Software Engineering Institute at Carnegie Mellon University (SEI-CMU), this third-edition book is, for the most part, based on various technical reports, papers, and works conducted at SEI-CMU. It also includes discussions of emerging technologies and revisions of old approaches in the development of software-intensive systems.

The book consists of five parts elaborating various contexts in which software architecture can play an important role. The discussions in Part 1 try to set the tone for the remainder of the book by describing the contexts of software architecture. These contexts include technical, life cycle, business, and professional. Part 1 begins by introducing software architecture, its applicability, and its importance in terms of system-level qualities. It ends with a discussion of the different architectural contexts.

Next, the authors highlight the correlation between system-wide qualities, commonly known as quality attributes, and software architecture. To this end, Part 2 begins with a discussion of system requirements, and concludes with specifications, implementations via a set of principle design decisions known as design tactics, and the evaluation of quality attributes (QAs). In between, the authors present an extensive discussion about the specification and implementation of a subset of QAs. QAs that are extensively covered by individual chapters include availability, interoperability, modifiability, performance, security, testability, and usability. More specifically, each chapter begins with one QA, and then provides a generic template known as a quality-attribute scenario to specify all possible elements of the template, together with specific scenarios. Part 2 concludes with characterizations of the topic QA using tactics and a set of guidelines.

The role of the software life cycle and its impact on software architecture from a practical point of view are discussed next. The discussions include, among other topics, the role of light and flexible software processes such as agile; architecturally significant requirements (ASRs) and their characterizations and documentation; the relationship between ASRs and QAs; the quality attribute workshop (QAW) method used to create and refine QA scenarios; design strategies that require the decomposition and design of ASR; and the attribute-driven design (ADD) method. Part 3 also includes a discussion of how to document, compose, and select architectural views that represent different but important aspects of a system. Subsequent chapters explain the implementation and testing of software architecture (white-box and black-box testing), analyzing software architecture using architectural tradeoff analysis, and recovery and reconstruction methods for recovering software architectures. Part 3 ends with a discussion on the leadership and management of large and complex projects.

The authors then explore the role that software architecture plays in the business setting, starting with a discussion of the cost-benefit analysis method (CBAM) to determine the business consequences of software architecture. The authors use the NASA ECS project to show the practicality of CBAM. Other topics in this part include the importance of competency of architecture and its role in the success or failure of an organization, and software product line architecture and its significance for productivity and improvement in an organization.

Part 5 shifts the focus to emerging trends in the software architecture area. Topics include cloud computing and virtualization technologies. This part ends with a discussion on edge-dominant systems that depend on user inputs to work properly.

From start to finish, this well-written and well-organized book provides practical approaches to the specification of QAs, their implementation, and their validations. The book would be very helpful for software engineering students and practitioners who are eager to understand the system-wide qualities of a system and the corresponding specifications and verification. It could be used as a required or reference textbook for software architecture and design courses, as it complements other foundational books [1,2] in the field.

Reviewer:  Hassan Reza Review #: CR141070 (1307-0564)
1) Shaw, M.; Garlan, D. Software architecture: perspectives on an emerging discipline. Prentice Hall, Upper Saddle River, NJ, 1996.
2) Taylor, R. N.; Medvidovic, N.; Dashofy, E. Software architecture: foundations, theory, and practice. Wiley, Hoboken, NJ, 2010.
Bookmark and Share
 
Software Architectures (D.2.11 )
 
 
Reference (A.2 )
 
Would you recommend this review?
yes
no
Other reviews under "Software Architectures": Date
Software architecture in practice
Bass L., Clements P., Kazman R., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1998. Type: Book (9780201199307)
Sep 1 1999
CORBA design patterns
Mowbray T., Malveau R., John Wiley & Sons, Inc., New York, NY, 1997. Type: Book (9780471158820)
Sep 1 1998
Developing business systems with CORBA
Sadiq W., Cummins F., Cambridge University Press, New York, NY, 1998. Type: Book (9780521646505)
Feb 1 1999
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy