Professional Documents
Culture Documents
Domain Modeling
Copyright W. Howden
Elaboration Tasks
Explore concepts from requirements use
cases
Discovering the basic pieces of the design?
Functional design:
functions in the top down abstraction
Copyright W. Howden
Sample Potential
Functionality in DS
Finding a date or set of possible dates
Survey of characteristics of DS members
Average frequency of date requests per
member
Profiles of most frequently selected datees
Report of number of times a dater has
changed his/her dater properties
Copyright W. Howden
Domain Model
Graphical model of basic domain concepts
and their relationships
Nodes: Concepts
May have attributes - properties of concepts-classes
initiates
identifies
initiates
1*
LogOn
11
GetADate
SetMemberData
Preferences
partOf
1
describedBy
Member
captured on
*
1
1
DateDescription
captured On
DatingSystem
displays
*
NoDateMessage
displays
1
HasA
1
1
DataBase
MemberData
contained in
1
Copyright W. Howden
PersonalProps
partOf
1
DM Concept Attributes
Included in the DM node for the concept
If not enough room show them in separate
document.
SetMemberData
-Gender : bool
-Religion : string
-Occupation : string
Copyright W. Howden
Copyright W. Howden
Sample Nouns
and Noun Phrases for DS
User
Dating System
LogOn
Member
Member Option
Choice
Error Messag
MatchingDates
GetADate
DataBase
SetMemberData
Preferences
DateDescription
NoDateMessage
MemberData
PersonalProps
Copyright W. Howden
10
Concept Categories
and the DS Concepts
11
Descriptions as
Domain Model Concepts
Descriptions of other concepts that have a
lifetime of their own
E.g. dater properties in Dating System
May be stored in data base
May be changed
Copyright W. Howden
12
Events as DM Concepts
Things to which system will have to respond
E.g. logon, date-request
13
Associations
Edges between nodes in a DM
Describe semantically meaningful
relationships between concepts
May be annotated with roles and
multiplicity designators
Copyright W. Howden
14
initiates
identifies
initiates
1*
LogOn
11
GetADate
SetMemberData
Preferences
partOf
1
describedBy
Member
captured on
*
1
1
DateDescription
captured On
DatingSystem
displays
*
NoDateMessage
displays
1
HasA
1
1
DataBase
MemberData
contained in
1
Copyright W. Howden
PersonalProps
partOf
1
15
Association Annotations 1
Kind of relationship, sometimes referred to
as a role. In DS DM example
part of, contained in
described by, identifies (used with description
concept)
captured on, initiates (used with events)
Copyright W. Howden
16
Association Annotations 2
Multiplicity
e.g. A 1- 1 B means for every instance of an A
there is 1 instance of a B
e.g. A 1-* B means for every instance of an A
there is 0 or more B instances
Direction
various interpretations. Some relationships are
inherently directional e.g. part-of, initiates
Copyright W. Howden
17
Finding Associations
Look in use cases for relationships that are:
Needed for operation of system
Have a lifetime of importance
Good link: between DS Member and
MemberProperties
Bad link: between Administrator and GetaDate
request - not needed.
18
A is described by or identified by B
Special event-oriented relationships
Copyright W. Howden
19
Special Event-Oriented
Relationships
Actors perform actions/requests that are
modeled as events concepts in the DM
An event is associated with an actor
(concept) that initiates that event
E.g. Member initiates getDate
20
Description Associations vs
Attributes Why Associations?
Allows postponing of details
Leads to a design that facilitates change
Recognizes that some kinds of
properties/descriptions may have a life of
their own
E.g. may want to treat member descriptions
independently of members for the purposes of a
catalog of profiles
Copyright W. Howden
21
Attributes vs Associations?
Attributes
Should have primitive data type values
Associations
If property is a (complex) object, should be a separate concept
with a linking association
E.g. Dater has Dater Properties. This is a complex object and
should be its own concept. Linking association:
Dater
Describes
*
Copyright W. Howden
Dater Properties
22
Dont
Static Model
Do not be afraid to
overdo concept list
Software Entities
E.g.
GenderPrefTextString
Copyright W. Howden
23
initiates
identifies
initiates
1*
LogOn
11
GetADate
SetMemberData
Preferences
partOf
1
describedBy
Member
captured on
*
1
1
DateDescription
captured On
DatingSystem
displays
*
NoDateMessage
displays
1
HasA
1
1
DataBase
MemberData
contained in
1
Copyright W. Howden
PersonalProps
partOf
1
24
-UsedBy
MatchingDates
DatingSystem -Produces
1
-Used By 1
DateRequest
*
-Initiates 1
*
Member
Copyright W. Howden
26
27
Assignment 3
Construct a domain model for the first
increment (phase 1) of your project
Copyright W. Howden
28