Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Software architecture in practice
Bass L., Clements P., Kazman R., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1998. Type: Book (9780201199307)
Date Reviewed: Sep 1 1999

The authors are senior members of the Software Engineering Institute (SEI) with strong backgrounds in the development of human-computer interaction (HCI) and real-time software. They promise that their book will introduce the concepts and practices of software architecture from a practical point of view.

In chapter 1 they present the basic concepts of the architecture business cycle. This cycle reflects the interaction between an organization’s technical, business, and social environment and the architectures of its software products. The background and experience of its staff determine to a large extent what their software architectures look like, whereas a developed architecture has a great impact on the organization of related implementation, testing, and maintenance activities.

Chapter 2 offers definitions for some basic terms in this area, such as “architectural style” and “reference model.” It emphasizes the importance of a software system’s architecture as a documentation and means of communication between different stakeholders (including developers, end-users, and customers). The detailed case study in chapter 3, the redesign of the onboard computer of a US Navy aircraft by David Parnas, underlines this point of view.

Chapters 4 and 5 discuss the most important quality attributes of a software architecture (including efficiency and portability) and compare a number of architectural styles (such as pipes and filters, and layered). In chapter 6, the authors sketch their concept of “unit operations” as a kind of basic architecture (re)design methodology. The decomposition of a component into subcomponents based on part-of or is-a relationships is one example of a unit operation. As a proof of concept, some widespread user interface design patterns are developed from the same starting point using different sequences of unit operations.

Chapters 7 and 8 use the World Wide Web and CORBA as case studies that highlight the mutual dependencies between successful software system architectures and their technical, organizational, and social environments. Chapters 9, 10, and 11 offer a brief survey of architecture review techniques, including the authors’ own software architecture analysis method, SAAM. SAAM is a rather generic scenario-based evaluation technique that is independent of any architectural styles or description languages and that may be used without any tool support.

Chapters 12 through 14, the third part of the book, contain a short summary of the properties of software architecture description languages (ADLs), followed by a more detailed description of the real-time object-oriented modeling language ROOM. Furthermore, they briefly discuss software design patterns and present another case study.

Chapters 15 through 18, Part 4 of the book, deal with topics related to software reuse, such as the development of software product lines (families) and component-based software development. Again, real-life case studies are used to show the impact of these techniques on a company’s organization and economic success. The last chapter of the book is, as usual, a kind of summary and prediction of future work in this area.

The book fulfills its promise to be a lightweight introduction to the field of software architectures for practicing software engineers and technical managers. Straightforward explanations of basic concepts, architecture development, and evaluation techniques are accompanied by an abundance of real-life case studies. Furthermore, the book contains many useful references to related publications. I have some doubts, however, that it is useful supplemental reading for first or second software engineering courses for computer science students, as the authors claim. In this case, a detailed presentation of at least some popular ADLs (most comparisons of ADLs do not present ROOM, the only ADL discussed here), a discussion of their relationships to the module interconnection languages, and a discussion of currently used formal and semiformal techniques such as “design by contract” based on pre- and postconditions would be mandatory. Finally, the book should have mentioned the OMG standard modeling language, UML, which will probably become the most popular architecture description language.

Reviewer:  A. Schürr Review #: CR121730 (9909-0680)
Bookmark and Share
 
Software Architectures (D.2.11 )
 
 
Reusable Software (D.2.13 )
 
Would you recommend this review?
yes
no
Other reviews under "Software Architectures": Date
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
Integrating CORBA and COM applications
Rosen M., Curtis D., John Wiley & Sons, Inc., New York, NY, 1998. Type: Book (9780471198277)
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