Chapter 9.
Domain Models
Objectives
Introduction
[1] Use cases are an important requirements analysis artifact, but are not object-oriented. They emphasize an activity view.
[View full size image]
[View full size image]
9.1. Example
[View full size image]
Guideline
9.2. What is a Domain Model?
[2] They
are also related to conceptual entity relationship models, which are capable of showing purely conceptual views of domains, but that have
been widely re-interpreted as data models for database design. Domain models are not data models.
Definition
[3] Capitalization
of "Domain Model" or terms is used to emphasize it as an official model name defined in the UP, versus the general well-known
concept of "domain models."
Definition: Why Call a Domain Model a "Visual Dictionary"?
Definition: Is a Domain Model a Picture of Software Business Objects?
[4] In object modeling, we usually speak of responsibilities related to software objects. And methods are purely a software concept. But, the
domain model describes real-situation concepts, not software objects. Considering object responsibilities during design work is very
important; it is just not part of this model.
Definition: What are Two Traditional Meanings of "Domain Model"?
Definition: What are Conceptual Classes?
[View full size image]
Definition: Are Domain and Data Models the Same Thing?
9.3. Motivation: Why Create a Domain Model?
Motivation: Lower Representational Gap with OO Modeling
[View full size image]
9.4. Guideline: How to Create a Domain Model?
9.5. Guideline: How to Find Conceptual Classes?
What are Three Strategies to Find Conceptual Classes?
Method 2: Use a Category List
Method 3: Finding Conceptual Classes with Noun Phrase Identification
[5] Linguistic analysis has become more sophisticated; it also goes by the name natural language modeling. See [Moreno97] for example.
Guideline
9.6. Example: Find and Draw Conceptual Classes
Case Study: POS Domain
Case Study: Monopoly Domain
9.7. Guideline: Agile ModelingSketching a Class Diagram
9.8. Guideline: Agile ModelingMaintain the Model in a Tool?
9.9. Guideline: Report ObjectsInclude 'Receipt' in the Model?
9.10. Guideline: Think Like a Mapmaker; Use Domain Terms
Guideline
9.11. Guideline: How to Model the Unreal World?
9.12. Guideline: A Common Mistake with Attributes vs. Classes
Guideline
9.13. Guideline: When to Model with 'Description' Classes?
Motivation: Why Use 'Description' Classes?
Guideline: When Are Description Classes Useful?
Guideline
Example: Descriptions in the Airline Domain
9.14. Associations
Guideline: When to Show an Association?
Guideline
Guideline: Why Should We Avoid Adding Many Associations?
Perspectives: Will the Associations Be Implemented In Software?
Applying UML: Association Notation
Caution
Guideline: How to Name an Association in UML?
Guideline
Applying UML: Roles
Applying UML: Multiplicity
[View full size image]
Applying UML: Multiple Associations Between Two Classes
Guideline: How to Find Associations with a Common Associations List
9.15. Example: Associations in the Domain Models
Case Study: NextGen POS
[View full size image]
Case Study: Monopoly
9.16. Attributes
Guideline: When to Show Attributes?
Applying UML: Attribute Notation
More Notation
[View full size image]
Guideline: Where to Record Attribute Requirements?
Derived Attributes
[View full size image]
Guideline: What are Suitable Attribute Types?
Focus on Data Type Attributes in the Domain Model
Guideline
Guideline
Data Types
[6] In Java, for example, a value test is done with the equals method, and an identity test with the == operator.
Perspectives: What About Attributes in Code?
Guideline: When to Define New Data Type Classes?
Applying UML: Where to Illustrate These Data Type Classes?
[View full size image]
Guideline: No Attributes Representing Foreign Keys
[View full size image]
Guideline: Modeling Quantities and Units
[View full size image]
9.17. Example: Attributes in the Domain Models
Case Study: NextGen POS
[View full size image]
Case Study: Monopoly
9.18. Conclusion: Is the Domain Model Correct?
9.19. Process: Iterative and Evolutionary Domain Modeling
Guideline
Domain Models Within the UP
Inception
Elaboration
The UP Business Object Model vs. Domain Model
9.20. Recommended Resources