| |
| |
Preface | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
Application Domain Analysis | |
| |
| |
Analysis, Domain Analysis, and Beyond | |
| |
| |
Subdomains within a Domain Analysis | |
| |
| |
The Structure of a Subdomain | |
| |
| |
Analysis: The Big Picture | |
| |
| |
Summary | |
| |
| |
| |
Object-Oriented Analysis | |
| |
| |
About Paradigms and Objects | |
| |
| |
Object-Oriented Commonality Analysis | |
| |
| |
Summary | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |