Angelika Langer - Training & Consulting

 
HOME | SEMINARS | TALKS | ARTICLES | BOOKS | LINKS | IOSTREAMS | GENERICS | ABOUT | NEWSLETTER | CONTACT | SITEMAP
Book Review - Applied Software Architecture - Review

Books  
HOME 
SEMINARS 
TALKS 
ARTICLES 

BOOKS

  OVERVIEW
  REVIEWS

  BIBLIOGRAPHY    
    J2SE
    J2EE
    CORE C++
    STL
    TEMPLATES
    IOSTREAMS
    CONCURRENCY
    I18N
    PATTERNS
    OOA/OOD
    TESTING
    MANAGEMENT
 

LINKS 
IOSTREAMS 
GENERICS 
ABOUT 
NEWSLETTER 
CONTACT 
SITEMAP 
Book Review - Applied Software Architecture - Review
   
  Book Review of the week
 
 
 
Applied Software Architecture 
By Christine Hofmeister et al.
Reading,MA:Addison-Wesley 
ISBN 0201325713
432 pages
Price: $44.95
(Reviewed 8/14/00) 
 
 
Detailed Discussion of the Software Architecture Design Phase 
Highly formal approach best suited to large-scale systems
 
  T oday's most widely accepted and discussed processes for software development are Rational's Unified Process (RUP) and Extreme Programming (XP). What both have in common is that they cover the whole process of software development from the early vision of a system to its maintenance cycles. 

The methods and ideas presented in Applied Software Architecture are different. Authors Christine Hofmeister, Robert Nord, and Dilip Soni concentrate exclusively on the development of the software architecture, which is a distinct design phase. They define it as "the bridge between the system requirements and implementation. This design phase comes after the domain analysis, requirement analysis, and risk analysis, and before detailed design, coding, integration, and testing." All of these development phases can overlap or reoccur cyclically in the above listed order when development is incremental. The result of the software architecture development phase, the authors contend, is "a structural plan that describes the elements of the system, how they fit together, and how they work together to fulfill the system's requirements." 

In describing this phase, the authors clash with the more established process models because they define their own independent, alternative methods and results. In one sense, this book completes the established process models because it discusses the software architecture development phase in greater detail than you'll find anywhere else. 

Applied Software Architecture is based on a study of system architectures by the authors at Siemens Corporate Research in Princeton, New Jersey. They examined the development of large, complex software systems. As the authors put it: "The purpose of the study was first to understand the architectural issues facing designers, then to understand current practices, including best practices. We were looking for commonalties across domains and for underlying principles that lead to good and useful software architectures." 

The result of this study is an approach to find the correct software architecture for a system by developing four loosely coupled views, in which each view concentrates on a certain aspect of the system: 

  • Code view describes the structure of the organization of the source code into object code, libraries, versions, and build times
  • Module view shows the decomposition of the system into modules and the partitioning of modules into layers (i.e., large-grain abstractions) and the interfaces between them
  • Execution view describes the dynamic elements of the system and how they interact in the flow of control and data
  • Conceptual view is the most high-level view; closely tied to the application domain, it shows how the overall architecture maps to the vision of the system 
Applied Software Architecture explains these views, the relationship between them, and how to develop them (in 170-page detail), together with four case studies (each about 40 to 50 pages): 
  • Digital I&C systems for nuclear power plants
  • Embedded real-time patient monitoring system
  • Central patient monitoring station
  • Product line of computer-controlled digital switching systems 
Although these four systems had not been designed with the authors' suggested approach, these case studies are used to demonstrate what would go into each view, which engineering concerns would be addressed by each view, and how the notations (based on UML) can be used to describe it. 

As you can probably see from this review, the model presented in Applied Software Architecture is a highly formal approach best suited to the development of large-scale systems. For this reason, the book might be an interesting inspiration for people interested in the process of software development for large systems, or how architecture of a large software system can be designed and described. 

Angelika Langer develops and teaches classes on Java, C++, multithreading, and internationalization. She is an internationally recognized speaker and served on the ANSI/ISO C++ Committee from 1993 to 1998. Klaus Kreft is a software architect and senior consultant with 15+ years of experience in industrial software development. He currently works for Siemens Business Services in Germany. Langer and Kreft are authors of "Standard C++ IOStreams and Locales" (Addison-Wesley, 2000) and are columnists for the C/C++ Users Journal. 

 

 
© Copyright 1995-2003 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Articles/Reviews/SoftwareArchitecture/review.htm  last update: 29 Oct 2003