Angelika Langer - Training & Consulting

 
HOME | SEMINARS | TALKS | ARTICLES | BOOKS | LINKS | IOSTREAMS | GENERICS | ABOUT | NEWSLETTER | CONTACT | SITEMAP
Book Review - Multi-Paradigm Design for C++

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 - Multi-Paradigm Design for C++
   
  Book Review of the week
 
 
  Multi-Paradigm Design for C++ 
  By James O. Coplien 
  Reading,MA:Addison-Wesley Longman 
  ISBN 0-201-82467-1 
  256 pages 
 
  Price: $34.95 
  (Reviewed 2/16/99) 
 
Reading This Will Change Your Perception of Software Development 
A great book crammed with elaborate and compelling ideas
 
J im Coplien is a recognized authority in several areas of software development: C++ programming, the object paradigm, patterns, and the organizational aspects of software development projects. His latest book combines his knowledge of all these topics. It is about multi-paradigm design in C++?that is, how C++ language features such as inheritance, templates, and functions overloading can be used to meet different types of application domain requirements. His immense knowledge results in a book that is not focused on the technical aspect alone, but includes the impact of this approach on related subjects such as the development process and design patterns.

 The book begins by describing the need for multi-paradigm design. This chapter is followed by a closer look at how we do analysis nowadays: finding the abstractions of the application domain and then structuring them according to their variation and commonality. This part of the book presents a broad range of information about the analysis and design process from various points of view, and it ends with a discussion of the technical aspects of variation.

One of these technical aspects, for example, is the point at which the variation gets bound: during implementation, at compile time, link time, or run time. Subsequent chapters explore the C++ features that allow developers to express variation and commonality: inheritance from the object paradigm, templates from the paradigm of generic types, function overloading, preprocessor directives, and so on. These discussions are followed by tables that show the mapping of the aspect of variation determined during analysis to C++ language features. For example, one table shows when the variation expressed by a certain language feature is bound: inheritance (with polymorphic types) at run time, templates at compile and link time, and so on.

The next part of the book takes a closer look at the elements of multi-paradigm design and the forces behind them. These discussions are combined with examples that show how to apply multi-paradigm design to real design problems. The book closes with a chapter that examines how multi-paradigm design and patterns are related.

Coplien writes in a pleasantly sober style. He does not extol multi-paradigm design as the latest hot topic. Instead he shows precisely and convincingly that multiple paradigms already exist in contemporary software development and that including multi-paradigm design as an explicit part of the development process can help eliminate common problems and shortcomings in the process. The book excels because of the author's broad knowledge: all discussions consider two different yet related aspects of software development: technical issues and organizational issues. And both are equally important for the success of a software development project.

Multi-Paradigm Design in C++ is a great book crammed with elaborate and compelling ideas. Reading it will change your perception of software development.

Angelika Langer develops and teaches classes on advanced C++, STL, multithreading, internationalization, and Java. She has served on the ANSI/ISO C++ Committee since 1993. Klaus Kreft is a software architect and consultant with more than a decade of experience in industrial software development. He works for Siemens Business Services in Germany. Langer and Kreft are working on a book about standard C++ iostreams and locales and are columnists for C++ Report

 
 

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