Download - 4081.Domain Model13 17
-
8/8/2019 4081.Domain Model13 17
1/31
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
2/31
-
8/8/2019 4081.Domain Model13 17
3/31
Gives a conceptual framework of the things in theproblem space
Helps you think focus on semantics Provides a glossary of terms noun based
It is a static view - meaning it allows us convey timeinvariant business rules
Foundation for use case/workflow modelling Based on the defined structure, we can describe
the state of the problem domain at any time.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
4/31
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
5/31
The following features enable us to express timeinvariant static business rules for a domain:-
o Domain classes each domain class denotes a type ofobject.
o Attributes an attribute is the description of a named slot of aspecified type in a domain class; each instance of the classseparately holds a value.
o Associations an association is a relationship between two(or more) domain classes that describes links between theirobject instances. Associations can have roles, describing themultiplicity and participation of a class in the relationship.
o Additional rules complex rules that cannot be shown withsymbology can be shown with attached notes.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
6/31
Perform the following in very short iterations:o Make a list of candidate domain classes.o Draw these classes in a UML class diagram.o If possible, add brief descriptions for the classes.o Identify any associations that are necessary.o Decide if some domain classes are really just
attributes.o Where helpful, identify role names and multiplicity
for associations.o Add any additional static rules as UML notes that
cannot be conveyed with UML symbols.o Group diagrams/domain classes by category into
packages.Concentrate more on just identifying domain classes
in early iterations !
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
7/31
Three Strategies to Find Conceptual Classes?
1. Reuse or modify existing models.
2. Use a category list.3. Identify noun phrases.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
8/31
We can create a domain model by making a list ofcandidate conceptual classes which containsmany common categories with an emphasis on
business information system needs.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
9/31
Case Study: Airline Reservation Domain
Conceptual Class Category Examples
product or service related to a
transaction or transaction line item
Item, Flight, Seat, Meal
where is the transaction recorded? Register, Ledger, Flight Manifest
roles of people or organizations related
to the transaction; actors in the use
case
Cashier, Customer, Passenger, Airline
place of transaction; place of service Store, Airport, Plane, Seat
physical objects Item, Register Board, Piece, Die
Airplane
descriptions of things Product Description, Flight Description
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
10/31
Another useful technique (because of its
simplicity) suggested is linguistic analysis:Identify the nouns and noun phrases intextual descriptions of a domain, and
consider them as candidate conceptualclasses or attributes.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
11/31
Case Study: POS Domain
1. Customer arrives at a POS checkout with goods
and/orservices to purchase.
2. Cashier starts a new sale.
3. Cashier enters item identifier.
4. System records sale line item and presents itemdescription, price, and running total. Pricecalculated from a set of price rules.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
12/31
The domain model illustrates conceptual classes or
vocabulary in the domain. Informally, a
conceptual class is an idea, thing, or object. Moreformally, a conceptual class may be considered interms of its symbol, intension, and extension
1. Symbol words or images representing a
conceptual class.
2. Intension the definition of a conceptual class.
3. Extension the set of examples to which the
conceptual class applies.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
13/31
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
14/31
Case Study: POS Domain
From the category list and noun phrase analysis, alist is generated of candidate conceptual classesfor the domain. On the basis of category list
guidelines that emphasize business transactionsand their relationship with other things. The list isconstrained to the requirements which is under
consideration for scenario of Process of Sale.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
15/31
Sale
Cashier
CashPayment
Customer
SalesLineItem
Store
Item
ProductDescription
Register
ProductCatalog
Ledger
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
16/31
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
17/31
Some software systems are for domains that findvery little analogy in natural or business domains;
software for telecommunications is an example.
It is still possible to create a domain model in these
domains, but it requires a high degree ofabstraction and stepping back from familiardesigns.
For example, here are some candidateconceptual classes related to atelecommunication switch:
Message, Connection, Port, Dialog, Route, Protocol.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
18/31
The most common mistake when creating a domainmodel is to represent something as an attributewhen it should have been a conceptual class.
Guideline
If we do not think of some conceptual class X as anumber or text in the real world, X is probably aconceptual class, not an attribute.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
19/31
In the real world, a store is not considered a number or text the term suggests alegal entity, an organization, and something that occupies space. Therefore,
Store should be a conceptual class.
As another example, consider the domain of airline reservations. Should
destination be an attribute of Flight, or a separate conceptual class Airport?
In the real world, a destination airport is not considered a number or text itis a massive thing that occupies space. Therefore, Airport should be a
concept.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
20/31
A description class contains information thatdescribes something else. For example, aProductDescription that records the price, picture,
and text description of an Item.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
21/31
1. An Item instance represents a physical item in astore; as such, it may even have a serial number.
2. An Item has a description, price, and itemID, whichare not recorded anywhere else.
3. Everyone working in the store has amnesia.
4. Every time a real physical item is sold, acorresponding software instance of Item is deleted
from "software land."
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
22/31
The * means a multiplicity of "many." It indicatesthat one Product Description may describe many(*) Items.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
23/31
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
24/31
Bounded by the current iteration requirements underdesign:
1. Find the conceptual classes (see a followingguideline).
2. Draw them as classes in a UML class diagram.
3. Add associations and attributes.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
25/31
-
8/8/2019 4081.Domain Model13 17
26/31
A domain class sounds like an attribute if: -
o It relies on an associated class for its identity e.g.order number class associated to an order class.The order number sounds suspiciously like an
attribute of order.
o It is a simple data type e.g. order number is asimple integer. Now it really sounds like an attribute!
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
27/31
An association is a relationship between classes (more
precisely, instances of those classes) that indicatessome meaningful and interesting connection.
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
28/31
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
29/31
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
30/31
Multiplicity defines how many instances of a classA can be associated with one instance of a class B.
Multiplicity on association
lecture 13-17, chitkara university
-
8/8/2019 4081.Domain Model13 17
31/31
lecture 13-17, chitkara university