0% found this document useful (0 votes)
95 views

13 Domain Modeling: UML: Learning Objectives

The document discusses domain modeling using UML class diagrams. A domain model provides a static description of entities and relationships within a system using concepts derived from requirements such as use cases. It serves as a common basis for both design and implementation. UML class diagrams are traditionally used to represent domain models in object-oriented projects, showing classes, attributes, associations, and other relationships. Traceability between models, design, and code can be challenging without tool support.

Uploaded by

picala
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
95 views

13 Domain Modeling: UML: Learning Objectives

The document discusses domain modeling using UML class diagrams. A domain model provides a static description of entities and relationships within a system using concepts derived from requirements such as use cases. It serves as a common basis for both design and implementation. UML class diagrams are traditionally used to represent domain models in object-oriented projects, showing classes, attributes, associations, and other relationships. Traceability between models, design, and code can be challenging without tool support.

Uploaded by

picala
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

13 Domain Modeling: UML

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

Notes and Further Reading


Domain modeling as one approach for capturing the static aspects of a system-to-be is covered in [4,
Chapter 10]. This chapter also covers strategies for deriving the domain model note that, where it
abstractly speaks about goal models, you would consider the use cases and user stories we covered earlier.
For a more practical view on domain modeling and examples, read Larman [2, Chapters 9, 31]. If you are
not familiar with the Unified Modeling Language (UML), [1] is recommended as a concise reference book.
Pohl covers domain modeling as part of data modeling in requirements documentation [3, Chapter 14.1].
He also discusses the role of domain engineering in the context of product line engineering (software
families) in [3, Chapter 37].

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?

SOEN 6481 Lecture Notes, Winter 2015/16

You might also like