13 Domain Modeling: UML: Learning Objectives
13 Domain Modeling: UML: Learning Objectives
A domain model is a (semi-)formal description of the entities and their relationships within an application
domain. While the use cases and user stories emphasize the dynamic part of the system-to-be, the domain
model offers a complementary, static view. Captured with a suitable representation formalism (e.g., UML
class diagrams), it provides for a high-level description of the domain that is both richer and more precise
than a simple glossary. In object-oriented analysis and design, the domain model has been a mainstay of
system development, since it is well suited for communication with the domain experts, yet at the same time
can be directly used as a basis for creating the design class diagram (DCD), which during implementation
is further transformed into the class definitions. Hence, domain models facilitate development due to
their low representational gap between requirements and design. While optional in a UP project, they
are a prerequisite for other artifacts, like operation contracts. Generally, domain models are created and
refined in an iterative fashion, together with use cases and other requirements artifacts. Especially in the
early phases, text mining techniques can facilitate the discovery of concepts and their relations from (large
amounts of) unstructured text. UML class diagrams are traditionally used within object-oriented projects;
however, without sophisticated tooling, traceability links between the domain model, design class diagram,
and implementation classes are easily lost. 13.1
Learning Objectives
Learning Objective 1:
Understand the role of the domain model in requirements engineering
Understand the connections between the domain model, the design class diagram, and the implemen-
tation classes
Learn strategies for obtaining domain models from use case descriptions, including noun phrase
identification and conceptual class category lists
Learn about tool support based on NLP for finding domain concepts and associations
Understand the differences between a domain model and business object model (BOM)
Learning Objective 2:
Learn how to represent domain models with UML class diagrams
Learn the use of classes and attributes
Understand how to model associations between entities
Understand when and how to use description classes
Understand how to find associations, name them, and specify their multiplicity
Learn the difference between aggregation and composition
Learn how to do quality assurance on a domain model
Reading Material
Required
[4, Chapter 10] (Modeling Conceptual Objects with Class Diagrams)
13-1
13-2 Bibliography
Supplemental
[1] (UML Overview)
[2, Chapters 9, 31] (Domain Modeling, Examples)
[3, Chapters 14.1, 37] (Data Modeling, Domain Engineering)
13.71
Bibliography
[1] Martin Fowler. UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-
Wesley, 3rd edition, 2004.
[2] Craig Larman. Applying UML and Patterns. Prentice Hall, third edition, 2005.
[3] Klaus Pohl. Requirements Engineering: Fundamentals, Principles, and Techniques. Springer-Verlag
Berlin Heidelberg, 2010.
[4] Axel van Lamsweerde. Requirements Engineering: From System Goals to UML Models to Software
Specifications. John Wiley & Sons, 2009.
Study Questions
1. What is captured in a domain model, and why?
2. What are possible input sources for the domain model?
3. Explain how to systematically build a domain model.
4. What is meant by the statement that domain models exhibit a low representational gap property
within object-oriented system development?
5. Explain the noun phrase identification method for building domain models.
6. Name examples for finding concepts using a conceptual class category list.
7. Are all noun phrases domain concepts? Are all domain concepts noun phrases?
8. As with most artifacts in the UP, the domain model is optional. Under what circumstances would
you recommend creating one within a project?
9. Explain the differences between a domain model and a design class diagram.
10. What are the connections between the domain model and the glossary? Do you need both?
11. Explain the connections between the domain model and postconditions in use cases.
12. What are the differences between a plain association, an aggregation, and a composition?
13. What do you check for when doing quality assurance on a domain model?
14. What are the traceability challenges when working with domain models?