Multi-Paradigm Design for C++: Back Cover Copy

C++ is a programming language that supports multiple paradigms: classes, overloaded functions, templates, modules, procedural programming, and more. Despite the language's flexibility and richness, however, there has been little effort to create a design method that supports the use of multiple paradigms within a single application.

Multi-Paradigm Design for C++ offers insight into an analysis and design process that accommodates and takes advantage of C++'s multiple paradigm capability. It uses understandable notation and readable explanations to help all C++ programmers-not just system architects and designers-combine multiple paradigms in their applications development for more effective, efficient, portable, robust, and reusable software.

Readers will gain an understanding into methods of domain engineering that support multi-paradigm design. This book reveals how to analyze the application domain, using principles of commonality and variation, to define sub-domains according to the most appropriate paradigm for each. Multi-paradigm design digs deeper than any single technology or technique to address fundamental questions of software abstraction and design.

All of the concepts and techniques that form the groundwork for domain engineering are presented. These concepts include an in-depth look at commonality and variability analysis, how domain engineering interacts with commonly used design patterns, how to find abstractions in the application domain, and how the principles of domain engineering can be used as a basis for the abstraction techniques of the object paradigm. Most importantly, the book discusses how to apply "analysis" techniques that are the most appropriate paradigm to be applied during the design phase.

This book presents a coherent framework for approaching multi-paradigm design, with a high-level set of design practices that form the foundation for a formal multi-paradigm design method.

James O. Coplien is one of the premier experts and writers on the object paradigm and C++, having worked with the language since its inception at AT&T. Currently a member of Bell Laboratories Research at Lucent Technologies, his work focuses on multi-paradigm development methods and organizational anthropology for software development processes. His previous books include Pattern Languages of Program Design (with Douglas Schmidt), and Advanced C++ Programming Styles and Idioms.