ISBN: 0-201-89542-0
In software engineering and object-oriented analysis, Reusable Object Models refer to conceptual, domain-specific designs or class structures that address repeating problems across various applications. Rather than starting from scratch or focusing solely on coding tools, modeling patterns capture proven ways to structure data and behavior.
- Focus: It shifts attention away from methodology or syntax and concentrates directly on the resulting domain models.
- Domains Covered: Catalogues repeating problems in areas like trading, measurement, accounting, and organizational structures.
- Key Core Concepts:
- Party Pattern: A flexible abstraction representing a person or an organization to prevent "one class per role" explosions in domain models.
- Organization Hierarchies: Tree-shaped or type-based structures (using structure types) that handle matrix organizations, departments, and legal entities without requiring code changes.
- Support Patterns: Guidelines on how to translate conceptual models into physical software architectures.
Key Characteristics & Goals
- Problem Reusability: Identifies common business or structural invariants (e.g., how contracts, accountability, or observations work) so architects can reuse proven blueprints.
- Separation of Concerns: Cleanly separates conceptual domain objects from technical database or UI implementations.
- Extensibility: Allows domain models to adapt to new rules or subtypes through metadata, type objects, or recursive composition rather than rigid class hierarchies.
Condition: Like new, no signs of wear, creases, discoloration, or markings