Presenters:
Iqra Azam(10-arid-300)
Ayesha Saeed(10-arid-282)
BSIT(7-A)
Define Domain Model
 How to develop Domain Model
 Features of Domain Model
 Example of Domain Model
 Reference



Structural model of basic domain concepts and their
relationships



It may show:
 domain objects or conceptual classes
 associations between conceptual classes
 attributes
Also called conceptual models, domain object
models, and analysis object models.


Identify conceptual classes



Draw them as in a UML domain model



Add associations necessary to record relationship



Add the attributes necessary to fulfill the information
requirements
Domain classes
 Attributes
 Associations
 Multiplicity
 Aggregation
 Composition
 Generalization
 Roles

Each domain class denotes a type of object
 Consider a use case description



Attributes refer to properties that define the class.
For Example
A class Client will have attributes name, id and address.

Sale
date
startTim e : Tim e

attrib utes




public level
protected level
private level

+
#
-

Circle
- centreX:Int
+ centreY:Int=0

9
A link between two classes
 A Person works for a Company.


Association

Company

Person
works for
Association Name

10
Derived association
 Qualified Association
 Association classes

Derived association exist automatically once we have
implement the main association
 / in front of its name
 Black triangle indicate direction


Company

Person
/ works for


Contain index , array
1

9

Board

Board

Square

1
Row:{1,2,3}
Col:{1,2,3 }

1

Square


Describes how many instances of one concept can be
associated with one instance of the related concept.
A Student can take up to five Courses.
 Student has to be enrolled in at least one course.
 Up to 300 students can enroll in a course.
 A class should have at least 10 students.


Student
10..300

takes

Course
1..5

16
“Has a”
 A special form of association that models a whole-part
relationship
 Weak association


Part

Whole

Schedule

Student
Aggregation
“Own a”
 A strong form of aggregation where components cannot
exist without the aggregate.
 The parts cannot survive the whole/aggregate


Part

Whole

Schedule

Student
Composition
Button

CancelButton

Zone Button

The children classes inherit the attributes of the parent
class.
 Eliminating redundancy.
 Generalize/specialize



Each end of an association is called a role.



Roles may have:
Name
multiplicity expression
Navigability




Show who is dominant
 Put an arrow on one end of association


Is taking

Student
1..*

Module
6
We first analyze the stated domain model requirements and then
present the domain model.
 The system must be able to keep track of which movie videos have
been bought/rented and by whom.
classes & associations: customer Buys movie video;
customer Rents movie video
 For videos bought, the system must record the quantity bought; for
videos rented, the system must record which copy of the video has
been rented and when it is due back.
classes & associations: customer Rents movie video;
–> movie video Has rental copy;
customer Rents rental copy;
Attributes : Buys –> quantity;
Rentalcopy -> copyNumber, dateDue
 The system must keep track of overdue rental videos and allow notices
to be sent to customers who have videos overdue.
functional requirement: no new domain model requirements in this
statement
 The video shop will have a customer membership option for an annual
fee, which will entitle the member to discounts (10%) on video sales
and rentals.
generalization: Member is a kind of Customer
Member Specializes Customer


Members should be able to make reservations for movie video
rentals either in person at the store, by telephone or via the Web.
◦ classes & associations: Member Reserves Rentalcopy



A member can reserve at most five movie videos at any one time, but
there is no limit on how many movie videos a member or nonmember
can rent at any one time.
◦ constraint: max-card(rental copy, Reserves) = 5
◦ max-card(rental copy, Rents) = *
 As an added feature, the video shop would like to allow customers
(either members or nonmembers) to input, via the Web, mini-reviews
(up to 100 words) and a rating (from 1, lowest, to 5, highest) of
movies they have rented.
classes & associations: Customer Provides review IsFor Movie Video
–> Customer Provides Review;
MovieVideo Has Review
attributes: Review –> review text, rating


These reviews should be anonymous if the customer so wishes (i.e.,
the customer can specify whether or not he wants his name to be
made known when other customers browse the reviews).
Attributes: Review –> anonymous



The video shop maintains the following information about all
customers (members or nonmembers): name, address, phone
number, fax number, age, sex, and email address
◦ Attributes : Customer–> name, address,
◦ phoneNumber, faxNumber, age, gender, email;


In addition, members are assigned a membership number by the
video shop when they become members and a password, which
allows them to access the member's only area of the video
shop's web site, including accessing and changing their personal
information.
attributes:
Member –>memberNumber, password

 An employee must be able to enter the basic information about a
movie video (i.e., title, leading actor(s), director, producer, genre,
synopsis, release year, running time, selling price, and rental
price).
attributes: MovieVideo –> title, leadingActor[0..*], director,
producer, genre, synopsis, releaseYear, runningTime,
sellingPrice, rentalPrice
*

Has

1

MovieVideo

0..*

RentalCopy

1

*

HasReview

0..5

Rents
Reserves

*

Review

*

Provides

1
1

Customer
*

Buys
quantity

Member

0..1
MovieVideo

*

title
leadingActor [0..*]
director
producer
genre
synopsis
releaseYear
runningTime
sellingPrice
rentalPrice

RentalCopy
1

Has

0..*

copyNumber
dateDue

0..5

*

Rents

1
1

HasReview

Customer

*

name
address
phoneNumber
faxNumber
age
gender
email

Review
reviewText
rating
anonymous

*

Provides

1

Reserves

*

Buys
quantity

Member
memberNumber
password

0..1
 http://users.encs.concordia.ca/~gregb/home/PPT/0035-

domain-modeling1.ppt
 http://cse.spsu.edu/sduggins/classes/Spring
%202013/SWE%204743/Documents/Chapter%209.ppt
 http://teacher.buet.ac.bd/shahin/INFORMATION
%20SYSTEM%20ANALYSIS%20AND
%20DESIGN/Larman%20Chapter%2010.ppt
 http://www.comptechdoc.org/independent/uml/begin/um
ldomainmodel.html
Domain model
Domain model

Domain model

  • 1.
  • 2.
    Define Domain Model How to develop Domain Model  Features of Domain Model  Example of Domain Model  Reference 
  • 3.
     Structural model ofbasic domain concepts and their relationships  It may show:  domain objects or conceptual classes  associations between conceptual classes  attributes Also called conceptual models, domain object models, and analysis object models.
  • 5.
     Identify conceptual classes  Drawthem as in a UML domain model  Add associations necessary to record relationship  Add the attributes necessary to fulfill the information requirements
  • 6.
    Domain classes  Attributes Associations  Multiplicity  Aggregation  Composition  Generalization  Roles 
  • 7.
    Each domain classdenotes a type of object  Consider a use case description 
  • 8.
     Attributes refer toproperties that define the class. For Example A class Client will have attributes name, id and address. Sale date startTim e : Tim e attrib utes
  • 9.
       public level protected level privatelevel + # - Circle - centreX:Int + centreY:Int=0 9
  • 10.
    A link betweentwo classes  A Person works for a Company.  Association Company Person works for Association Name 10
  • 11.
    Derived association  QualifiedAssociation  Association classes 
  • 12.
    Derived association existautomatically once we have implement the main association  / in front of its name  Black triangle indicate direction  Company Person / works for
  • 13.
     Contain index ,array 1 9 Board Board Square 1 Row:{1,2,3} Col:{1,2,3 } 1 Square
  • 15.
     Describes how manyinstances of one concept can be associated with one instance of the related concept.
  • 16.
    A Student cantake up to five Courses.  Student has to be enrolled in at least one course.  Up to 300 students can enroll in a course.  A class should have at least 10 students.  Student 10..300 takes Course 1..5 16
  • 17.
    “Has a”  Aspecial form of association that models a whole-part relationship  Weak association  Part Whole Schedule Student Aggregation
  • 18.
    “Own a”  Astrong form of aggregation where components cannot exist without the aggregate.  The parts cannot survive the whole/aggregate  Part Whole Schedule Student Composition
  • 19.
    Button CancelButton Zone Button The childrenclasses inherit the attributes of the parent class.  Eliminating redundancy.  Generalize/specialize 
  • 20.
     Each end ofan association is called a role.  Roles may have: Name multiplicity expression Navigability   
  • 21.
    Show who isdominant  Put an arrow on one end of association  Is taking Student 1..* Module 6
  • 23.
    We first analyzethe stated domain model requirements and then present the domain model.  The system must be able to keep track of which movie videos have been bought/rented and by whom. classes & associations: customer Buys movie video; customer Rents movie video  For videos bought, the system must record the quantity bought; for videos rented, the system must record which copy of the video has been rented and when it is due back. classes & associations: customer Rents movie video; –> movie video Has rental copy; customer Rents rental copy; Attributes : Buys –> quantity; Rentalcopy -> copyNumber, dateDue
  • 24.
     The systemmust keep track of overdue rental videos and allow notices to be sent to customers who have videos overdue. functional requirement: no new domain model requirements in this statement  The video shop will have a customer membership option for an annual fee, which will entitle the member to discounts (10%) on video sales and rentals. generalization: Member is a kind of Customer Member Specializes Customer
  • 25.
     Members should beable to make reservations for movie video rentals either in person at the store, by telephone or via the Web. ◦ classes & associations: Member Reserves Rentalcopy  A member can reserve at most five movie videos at any one time, but there is no limit on how many movie videos a member or nonmember can rent at any one time. ◦ constraint: max-card(rental copy, Reserves) = 5 ◦ max-card(rental copy, Rents) = *
  • 26.
     As anadded feature, the video shop would like to allow customers (either members or nonmembers) to input, via the Web, mini-reviews (up to 100 words) and a rating (from 1, lowest, to 5, highest) of movies they have rented. classes & associations: Customer Provides review IsFor Movie Video –> Customer Provides Review; MovieVideo Has Review attributes: Review –> review text, rating
  • 27.
     These reviews shouldbe anonymous if the customer so wishes (i.e., the customer can specify whether or not he wants his name to be made known when other customers browse the reviews). Attributes: Review –> anonymous  The video shop maintains the following information about all customers (members or nonmembers): name, address, phone number, fax number, age, sex, and email address ◦ Attributes : Customer–> name, address, ◦ phoneNumber, faxNumber, age, gender, email;
  • 28.
     In addition, membersare assigned a membership number by the video shop when they become members and a password, which allows them to access the member's only area of the video shop's web site, including accessing and changing their personal information. attributes: Member –>memberNumber, password  An employee must be able to enter the basic information about a movie video (i.e., title, leading actor(s), director, producer, genre, synopsis, release year, running time, selling price, and rental price). attributes: MovieVideo –> title, leadingActor[0..*], director, producer, genre, synopsis, releaseYear, runningTime, sellingPrice, rentalPrice
  • 30.
  • 31.
  • 32.
     http://users.encs.concordia.ca/~gregb/home/PPT/0035- domain-modeling1.ppt  http://cse.spsu.edu/sduggins/classes/Spring %202013/SWE%204743/Documents/Chapter%209.ppt http://teacher.buet.ac.bd/shahin/INFORMATION %20SYSTEM%20ANALYSIS%20AND %20DESIGN/Larman%20Chapter%2010.ppt  http://www.comptechdoc.org/independent/uml/begin/um ldomainmodel.html

Editor's Notes

  • #17 1.
  • #18 An aggregation is a stronger form of relationship where the relationship is between a whole and its parts. The aggregate has an aggregation association to the its constituent parts. A hollow diamond is attached to the end of an association path on the side of the aggregate (the whole) to indicate aggregation. Since aggregation is a special form of association, the use of multiplicity, roles, navigation, etc. is the same as for association. Sometimes, a class may be aggregated with itself. This does not mean that an instance of that class is composed of itself (this would be silly), it means that one instance if the class is an aggregate composed of other instances of the same class. Some situations where aggregation may be appropriate: An object is physically composed of other objects (e.g. car being physically composed of an engine and four wheels). An object is a logical collection of other objects (e.g., a family is a collection of parents and children). An object physically contains other objects (e.g., an airplane physically contains a pilot). In the above example, the relationship from Student to Schedule is modeled as an aggregation because a Schedule is inherently tied to a particular Student. A Schedule outside of the context of a Student makes no sense in a Course Registration System.
  • #19 Composition is a form of aggregation with strong ownership and coincident lifetimes of the part with the aggregate. The whole “owns” the part and is responsible for the creation and destruction of the part. The part is removed when the whole is removed. The part may be removed (by the whole) before the whole is removed. A solid filled diamond is attached to the end of an association path (on the “whole side”) to indicate composition. In some cases, composition can be identified as early as analysis, but more often it is not until design that such decisions can be made confidently. That is why composition is introduced here rather than in Use-Case Analysis.