Week8 Unit4 Notes KFL
Week8 Unit4 Notes KFL
DOMAIN MODELING
Week 8
Learning outcome
Explain how the concept of “things” in the problem domain also defines requirements
Identify and analyse data entities and domain classes needed in the system
Read, interpret, and create an entity-relationship diagram
Read, interpret, and create a domain model class diagram
Understand the domain model class diagram for the RMO Consolidated Sales and Marketing
System
Introduction
The focus of this study guide is to identify and define the entities or problem domain classes. Traditional
system development methodologies called these “things” data entities and used Entity-Relationship
Diagrams to model the data structure. Object-oriented techniques call these “things” problem domain
classes, or just classes for short. A UML class diagram is used to model the data structure. Students should be
familiar with both Entity-Relationship diagrams and Class diagrams.
The first part of the chapter is a discussion to help students find, identify, and classify these “things.”
The second part of the study unit instructs how to build an entity-relationship diagram, and the final topic in
the chapter is how to build a class diagram domain model.
Important notes
attributes – descriptive pieces of information about things or objects
identifier or key – an attribute the value of which uniquely identifies an individual thing or object
compound attribute – an attribute that consists of multiple pieces of information but is best treated in the
aggregate association – a term, in UML, that describes a naturally occurring relationship between specific
things, sometimes called a relationship
relationship – a term that describes a naturally occurring association between specific things, sometimes
called an association
cardinality – a measure of the number of links between one object and another object in a relationship
multiplicity – a measure, in UML, of the number of links between one object and another object in an
association
multiplicity constraints – the actual numeric count of the constraints on objects allowed in an association
unary association – an association between two instances of the same type of thing
2. Brainstorm with the user to identify things involved when carrying out the use case—that is, things about
which information should be captured by the system.
3. Use the types of things (categories) to systematically ask questions about potential things, such as the
following: Are there any tangible things you store information about? Are there any locations involved? Are
there roles played by people that you need to remember?
4. Continue to work with all types of users and stakeholders to expand the brainstorming list.
5. Merge the results, eliminate any duplicates, and compile an initial list.
1. Using the use cases, actors, and other information about the system—including inputs and outputs—
identify all nouns.
2. Using other information from existing systems, current procedures, and current reports or forms, add
items or categories of information needed.
3. As this list of nouns builds, you will need to refine it. Ask these questions about each noun to help you
decide whether you should include it: ◦ Ask questions, such as is it important and inside the scope, to see if it
should be included. ◦ Ask questions to see if it really should be excluded, such as is it only a report or an input
or is it an attribute. ◦ Ask questions to see if it needs further research. In other words that you cannot answer
whether it needs to be included or excluded.
4. Create a master list of all nouns identified and then note whether each one should be included, excluded,
or researched further.
5. Review the list with users, stakeholders, and team members and then refine the list of things in the
problem domain.