
Multi-Paradigm Design for C++
James O. Coplien(Author)
Addison Wesley (Publisher)
Published on 4. January 1999
Book
Paperback/Softback
304 pages
978-0-201-82467-4 (ISBN)
Description
Coplien offers insight into an analysis and design process that takes advantage of C++'s multiple paradigm capability, including classes, overloaded functions, templates, modules, procedural programming, and more. The book uses understandable notation and readable explanations to help all C++ programmers-not just system architects and designers-combine multiple paradigms in their application development for more effective, efficient, portable, robust, and reusable software. Multi-paradigm design digs deeper than any single technology or technique to address fundamental questions of software abstraction and design.
More details
Language
English
Place of publication
Boston
United States
Publishing group
Pearson Education (US)
Target group
College/higher education
Dimensions
Height: 231 mm
Width: 189 mm
Thickness: 16 mm
Weight
506 gr
ISBN-13
978-0-201-82467-4 (9780201824674)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Person
James O. Coplien is a premier expert and writer 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 C. Schmidt), Pattern Languages of Program Design, Volume 2 (with John M. Vlissides and Norman L. Kerth), and Advanced C++ Programming Styles and Idioms.
0201824671AB04062001
0201824671AB04062001
Content
Preface.
1. Introduction: The Need for Multiple Paradigms.
Domain Engineering and Multiple Paradigms.
Design, Analysis, Domains, and Families: Term Definitions.
Beyond Objects.
Commonality and Variability Analysis.
Software Families.
Multi-Paradigm Design.
Multi-Paradigm Development and Programming Language.
Commonality Analysis: Other Perspectives.
Summary.
2. Commonality Analysis.
Commonality: The Essence of Abstraction.
Priming Analysis: The Domain Vocabulary.
Dimensions of Commonality and Commonality Categories.
Examples of Commonality.
Reviewing the Commonality Analysis.
Commonality and Evolution.
Summary.
3. Variability Analysis.
Variability: The Spice of Life.
The Commonality Base.
Positive and Negative Variability.
The Domain and Range of Variability.
Binding Time.
Defaults.
Variability Tables.
Some Variability Traps.
Reviewing the Variability Analysis.
Variability Dependency Graphs.
Summary.
4. Application Domain Analysis.
Analysis, Domain Analysis, and Beyond.
Subdomains within a Domain Analysis.
The Structure of a Subdomain.
Analysis: The Big Picture.
Summary.
5. Object-Oriented Analysis.
About Paradigms and Objects.
Object-Oriented Commonality Analysis.
Summary.
6. Solution Domain Analysis.
The "Other" Domain.
The C++ Solution Domain: An Overview.
Data.
Overloading.
Class Templates.
Function Templates.
Inheritance.
Virtual Functions.
Commonality Analysis and Polymorphism.
Preprocessor Directives.
Negative Variability.
A Summary of the C++ Solution Domain: A Family Table.
7. Simple Mixing of Paradigms.
Putting It All Together: An Overview of Multi-Paradigm Design.
Activities of Multi-Paradigm Design.
Example: A Simple Language Translator.
Design, Not Analysis.
Another Example: Automatic Differentiation.
Outboard Paradigms.
Management Issues.
Summary.
8. Weaving Paradigms Together.
Method and Design.
Commonality Analysis: What Dimension of Commonality?
Multiple Paradigms: Multiple Dimensions of Variability in One Set of Commonalities
Codependent Domains.
Design and Structure.
Another Example: A Finite-State Machine.
Pattern-Based Solution Strategies.
Summary.
9. Augmenting the Solution Domain with Patterns.
The Value of Idioms and Patterns.
Commonality and Variability in Common Patterns.
Patterns of Negative Variability.
Multi-Paradigm Tools as a Patterns Adjunct.
Summary.
References.
Index. 0201824671T04062001
1. Introduction: The Need for Multiple Paradigms.
Domain Engineering and Multiple Paradigms.
Design, Analysis, Domains, and Families: Term Definitions.
Beyond Objects.
Commonality and Variability Analysis.
Software Families.
Multi-Paradigm Design.
Multi-Paradigm Development and Programming Language.
Commonality Analysis: Other Perspectives.
Summary.
2. Commonality Analysis.
Commonality: The Essence of Abstraction.
Priming Analysis: The Domain Vocabulary.
Dimensions of Commonality and Commonality Categories.
Examples of Commonality.
Reviewing the Commonality Analysis.
Commonality and Evolution.
Summary.
3. Variability Analysis.
Variability: The Spice of Life.
The Commonality Base.
Positive and Negative Variability.
The Domain and Range of Variability.
Binding Time.
Defaults.
Variability Tables.
Some Variability Traps.
Reviewing the Variability Analysis.
Variability Dependency Graphs.
Summary.
4. Application Domain Analysis.
Analysis, Domain Analysis, and Beyond.
Subdomains within a Domain Analysis.
The Structure of a Subdomain.
Analysis: The Big Picture.
Summary.
5. Object-Oriented Analysis.
About Paradigms and Objects.
Object-Oriented Commonality Analysis.
Summary.
6. Solution Domain Analysis.
The "Other" Domain.
The C++ Solution Domain: An Overview.
Data.
Overloading.
Class Templates.
Function Templates.
Inheritance.
Virtual Functions.
Commonality Analysis and Polymorphism.
Preprocessor Directives.
Negative Variability.
A Summary of the C++ Solution Domain: A Family Table.
7. Simple Mixing of Paradigms.
Putting It All Together: An Overview of Multi-Paradigm Design.
Activities of Multi-Paradigm Design.
Example: A Simple Language Translator.
Design, Not Analysis.
Another Example: Automatic Differentiation.
Outboard Paradigms.
Management Issues.
Summary.
8. Weaving Paradigms Together.
Method and Design.
Commonality Analysis: What Dimension of Commonality?
Multiple Paradigms: Multiple Dimensions of Variability in One Set of Commonalities
Codependent Domains.
Design and Structure.
Another Example: A Finite-State Machine.
Pattern-Based Solution Strategies.
Summary.
9. Augmenting the Solution Domain with Patterns.
The Value of Idioms and Patterns.
Commonality and Variability in Common Patterns.
Patterns of Negative Variability.
Multi-Paradigm Tools as a Patterns Adjunct.
Summary.
References.
Index. 0201824671T04062001