L09 Domain Models
Domain Models - Summary
Overview of Domain Models
Domain models represent important concepts in a given domain, providing a visual dictionary of concepts and relationships.
These models serve as inspiration for software objects in a class diagram and are also referred to as conceptual or analysis models.
Key Characteristics of Domain Models
Depict objects, attributes, and associations, without detailing operations.
Serve as a simplified representation for user understanding, emphasizing main concepts over complex structures.
Creation Process
Model should align with current requirements and stay within scope.
Identify conceptual classes via guidelines, drawing them as classes with associations and attributes in UML diagrams.
Changes in requirements may lead to frequent updates of the model.
Conceptual Class Structure
Conceptual classes include a symbol, intension (definition), and extension (applicability examples).
Differentiation from Data Models
Domain models differ from data models; not all object attributes are persistent, and some objects may not have attributes.
Relationships in Domain Models
Associations indicate meaningful relationships between classes, described semantically.
Multiplicity defines the quantity relationship between instances of the classes involved, with possible values indicating constraints or requirements.
Importance of Associations
Associations preserve the semantic relationships among instances, ensuring that integrity is maintained in the model.
Complex concepts should be expressed as associations rather than attributes.
Partial Models
Examples of partial models illustrate how the various elements connect within a domain, such as an initial NextGen POS scenario or a Monopoly game scenario.
Model Accuracy and Limitations
No single correct domain model exists; all models are approximations meant for understanding and communication.
It is important to avoid extensive, overly complex models, focusing on clarity and key concepts instead.
Artifacts by Phase
Various modeling artifacts are produced throughout different phases of development, including Business Domain Models, Use Cases, and Design Models.