lecture 2: elaboration tasks and domain modelingcseweb.ucsd.edu/classes/fa10/cse111/lec… · ppt...
TRANSCRIPT
Copyright W. Howden 2
Elaboration Tasks
• Explore concepts from requirements use cases
• Discovering the basic pieces of the design?• Functional design:
– functions in the top down abstraction
• Object oriented design– choice of system architecture– class concepts in “domain model”
Copyright W. Howden 3
Stable System Design and Domain Concepts
• Systems change due to:– Incremental development, changing
requirements, post deployment enhancement• Domain modeling and design for change
– Use basic classes that are a kind of simulation of the problem domain
– Functionality is added to simulation so it can be removed and changed
Sample Basic Domain Concepts in DS
• dating system member• date preferences• dater characteristics• matching dates• administrator• date request• ...
Copyright W. Howden 4
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 5
Copyright W. Howden 6
Domain Model
• Graphical model of basic domain concepts and their relationships
• Nodes: Concepts• May have attributes - properties of concepts-classes
• Edges: Relationships between concepts called “associations”
• Drawn using the UML Class Diagrams
Copyright W. Howden 7
Sample Partial Domain Modelfor Member Actor w/o Attributes
LogOn SetMemberData GetADate Preferences
DatingSystem NoDateMessageDateDescription
DataBase MemberData PersonalProps
Member*
1
initiates 1
* *
* initiates
*1
captured on*
1 captured On
*
1
* 1
displays
1 *
displays
11HasA
1 1
partOf
1
*
identifies
1
1
describedBy
1 1
partOf
1 *
contained in
Copyright W. Howden 8
DM Concept Attributes
• Included in the DM node for the concept– If not enough room show them in separate
document.• Sample attributes for DS DM
-Name: : string-UserType : char
Logon -Gender : bool-Religion : string-Occupation : string
SetMemberData
Copyright W. Howden 9
Finding Concepts for a Domain Model
• Look for noun and noun phrase identification from prose descriptions and use cases
• Use generic concept category checklists– includes DM-oriented special kinds
• description and event concepts
Copyright W. Howden 10
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 11
Concept Categories and the DS Concepts
• Physical Objects: user, member• Descriptions: personal props, prefs., dates• Roles: member, dater, administrator• Containers: DS Data Base• Organizations: DS Accounting Dept.• Events: logon, getADate, SetMemberData• Abstract nouns: session
Copyright W. Howden 12
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 13
Events as DM Concepts
• Things to which system will have to respond– E.g. logon, date-request
• Event objects created and passed to class/object having responsibility for handling them
• Or, event objects contain knowledge of how to perform the responsibility (in one of their methods)
Copyright W. Howden 14
Associations
• Edges between nodes in a DM• Describe “semantically meaningful”
relationships between concepts• May be annotated with roles and
multiplicity designators
Copyright W. Howden 15
Domain Model Example
LogOn SetMemberData GetADate Preferences
DatingSystem NoDateMessageDateDescription
DataBase MemberData PersonalProps
Member*
1
initiates 1
* *
* initiates
*1
captured on*
1 captured On
*
1
* 1
displays
1 *
displays
11HasA
1 1
partOf
1
*
identifies
1
1
describedBy
1 1
partOf
1 *
contained in
Copyright W. Howden 16
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)
Association Annotations 2
• Multiplicitye.g. A 1- 1 B means for every instance of an A
there is 1 instance of a Be.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
Copyright W. Howden 18
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.
• Use generic association category checklists
Copyright W. Howden 19
Association Category Checklists
• A is a physical or logical part of B– E.g. Personal Characteristics are part-of Dater
Properties• A is physically or logically contained in B
– E.g. MembershipData contained-in MemberDB• A is described by or identified by B• Special event-oriented relationships
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
• Each event is handled by or captured on some entity concept
Copyright W. Howden 20
Copyright W. Howden 21
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 22
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 Dater Properties
* 1 Describes
Copyright W. Howden 23
Some Domain Model Do’s and Dont’s
• Do– Static Model
• E.g. Parts explosion diagram
– Real World Concepts• E.g. Gender Preference
in Dating System Application
– Do not be afraid to overdo concept list
• Don’t– Dynamic Flow Chart
• One entity sends a message to another
– Software Entities• E.g.
GenderPrefTextString
– Leave out concepts
Copyright W. Howden 24
Domain Model Example
LogOn SetMemberData GetADate Preferences
DatingSystem NoDateMessageDateDescription
DataBase MemberData PersonalProps
Member*
1
initiates 1
* *
* initiates
*1
captured on*
1 captured On
*
1
* 1
displays
1 *
displays
11HasA
1 1
partOf
1
*
identifies
1
1
describedBy
1 1
partOf
1 *
contained in
Data Flow Diagram – Not a Domain Model
Data Base
DateRequest
DatingSystem
Member
MatchingDates
1 -UsedBy1
*
-Used By 1
1-Initiates *
-Produces
1*
Copyright W. Howden 26
UML and Domain Models
• UML does not include Domain Models• UML class diagrams
– can be used for several purposes– Conceptual classes as in Domain Model
• Attributes but no methods– Design classes from design activities
• Graphical representation of PL classes
Copyright W. Howden 27
Use Cases, Domain Models and System Increments
• Use cases are constructed for the whole system
• Original domain model is for first phase/iteration only
• At the beginning of each new iteration, the previous domain model is augmented to include concepts in the next iteration