Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

11/11/2020 Guideline: How to Create a Domain Model?

in Model? in UML Tutorial 11 November 2020 - Learn Guideline: How to Create a Domain Model? in U…

☰ (https://www.wisdomjobs.com/)

Search for Jobs... 

GUIDELINE: HOW TO CREATE A DOMAIN


 MODEL? -
UML
Uml Interview
« Previous Topics Next Topics »
Questions
 Motivation: Why Create A Domain  Guideline: How To Model The Unreal
(https://www.wisdomjobs.com/e-
Model? (https://www.wisdomjobs.com/e- World? (https://www.wisdomjobs.com/e-
university/uml-
university/uml-tutorial-175/motivation- university/uml-tutorial-175/guideline-how-
interview-
why-create-a-domain-model-13287.html) to-model-the-unreal-world-13289.html)
questions.html)
 What Is A Domain Model?  Associations
(https://www.wisdomjobs.com/e- Uml Practice Tests
(https://www.wisdomjobs.com/e-
university/uml-tutorial-175/what-is-a- (https://www.wisdomjobs.com/e-
university/uml-tutorial-175/associations-
domain-model-13285.html) 13290.html) university/uml-practice-
tests-175-327207)
 Process: Planning The Next Iteration  Attributes
(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
university/uml-tutorial-175/process- university/uml-tutorial-175/attributes-
planning-the-next-iteration-13281.html) 13298.html)

Bounded by the current iteration requirements under design:

1. Find the conceptual classes (see a following guideline).


2. Draw them as classes in a UML class diagram.
3. Add associations and attributes.

Guideline: How to Find Conceptual Classes?

Since a domain model shows conceptual classes, a central question is: How do I nd
them?

What are Three Strategies to Find Conceptual Classes?

1. Reuse or modify existing models. This is the rst, best, and usually
easiest approach, and where I will start if I can. There are published, well
- crafted domain models and data models (which can be modi ed into
domain models) for many common domains, such as inventory, nance,
health, and so forth. Example books that I'll turn to include Analysis
Patterns by Martin Fowler, Data Model Patterns by David Hay, and the
Data Model Resource Booh (volumes 1 and 2) by Len Silverston.
2. Use a category list.
3. Identify noun phrases.

Reusing existing models is excellent, but outside our scope. The second method, using

a category list, is also useful.

Method 2: Use a Category List

We can kick - start the creation of a domain model by making a list of candidate

conceptual classes. Table contains many common categories that are usually worth
considering, with an emphasis on business information system needs. The guidelines

also suggest some priorities in the analysis. Examples are drawn from the

1. POS,
2. Monopoly,
3. airline reservation domains.

Table Conceptual Class Category List

https://www.wisdomjobs.com/e-university/uml-tutorial-175/guideline-how-to-create-a-domain-model-13288.html 1/9
11/11/2020 Guideline: How to Create a Domain Model? in UML Tutorial 11 November 2020 - Learn Guideline: How to Create a Domain Model? in U…

☰ (https://www.wisdomjobs.com/)

Search for Jobs... 

Method 3: Finding Conceptual Classes with Noun Phrase Identi cation

https://www.wisdomjobs.com/e-university/uml-tutorial-175/guideline-how-to-create-a-domain-model-13288.html 2/9
11/11/2020 Guideline: How to Create a Domain Model? in UML Tutorial 11 November 2020 - Learn Guideline: How to Create a Domain Model? in U…

Another useful technique (because of its simplicity) suggested in [Abbot83] is


☰ (https://www.wisdomjobs.com/)
linguistic analysis: Identify the nouns and noun phrases in textual descriptions of a
domain, and consider them as candidate conceptual classes or attributes.
Search for Jobs... 
Nevertheless, linguistic analysis is another source of inspiration. The fully dressed use

cases are an excellent description to draw from for this analysis. For example, the
current scenario of the Process Sale use case can be used.

Main Success Scenario (or Basic Flow):

Customer arrives at a POS checkout with goods and / or services to


purchase.
Cashier starts a new sale.
Cashier entersitem identi er.
System records sale line item and presents item description, price, and
running total. Price calculated from a set of price rules.

Cashier repeats steps 2 - 3 until indicates done.

System presents total with taxes calculated.


Cashier tells Customer the total, and asks for payment.
Customer pays and System handles payment.
System logs the completed sale and sends sale and payment information to
the external Accounting (for accounting and commissions) and Inventory
systems (to update inventory).
System presents receipt.
Customer leaves with receipt and goods (if any).

Extensions (or Alternative Flows):

Paying by cash:

Cashier enters the cash amount tendered.


System presents thebalance due, and releases the cash drawer.
Cashier deposits cash tendered and returns balance in cash to Customer.
System records the cash payment.

The domain model is a visualization of noteworthy domain concepts and vocabulary.

Where are those terms found? Some are in the use cases. Others are in other

documents, or the minds of experts. In any event, use cases are one rich source to

mine for noun phrase identi cation.

Some of these noun phrases are candidate conceptual classes, some may refer to

conceptual classes that are ignored in this iteration (for example, "Accounting" and

"commissions"), and some may be simply attributes of conceptual classes. See for

advice on distinguishing between the two.

A weakness of this approach is the imprecision of natural language; different noun

phrases may represent the same conceptual class or attribute, among other
ambiguities. Nevertheless, it is recommended in combination with the Conceptual

Class Category List technique.

Example: Find and Draw Conceptual Classes

Case Study: POS Domain

From the category list and noun phrase analysis, a list is generated of candidate

conceptual classes for the domain. Since this is a business information system, I'll

focus rst on the category list guidelines that emphasize business transactions and

https://www.wisdomjobs.com/e-university/uml-tutorial-175/guideline-how-to-create-a-domain-model-13288.html 3/9
11/11/2020 Guideline: How to Create a Domain Model? in UML Tutorial 11 November 2020 - Learn Guideline: How to Create a Domain Model? in U…

their relationship with other things. The list is constrained to the requirements and
☰ (https://www.wisdomjobs.com/)
simpli cations currently under consideration for iteration - 1, the basic cash - only

scenario of Process Sale.


Search for Jobs... 

There is no such thing as a "correct" list. It is a somewhat arbitrary collection of

abstractions and domain vocabulary that the modelers consider noteworthy.

Nevertheless, by following the identi cation strategies, different modelers will produce
similar lists.

In practice, I don't create a text list rst, but immediately draw a UML class diagram of

the conceptual classes as we uncover them. See Figure.

Initial POS domain model

Adding the associations and attributes is covered in later sections.

Case Study: Monopoly Domain

From the Category List and noun phrase analysis, I generate a list of candidate

conceptual classes for the iteration - 1 simpli ed scenario of Play a MonopolyGame .

Since this is a simulation, I emphasize the noteworthy tangible, physical objects in the

domain.

Initial Monopoly domain model

Guideline: Agile Modeling - Sketching a Class Diagram

https://www.wisdomjobs.com/e-university/uml-tutorial-175/guideline-how-to-create-a-domain-model-13288.html 4/9
11/11/2020 Guideline: How to Create a Domain Model? in UML Tutorial 11 November 2020 - Learn Guideline: How to Create a Domain Model? in U…

Notice the sketching style in the UML class diagram of Figure - keeping the bottom and
☰ (https://www.wisdomjobs.com/)
right sides of the class boxes open. This makes it easier to grow the classes as we

discover new elements. And although I've grouped the class boxes for compactness in
Search for Jobs... 
this book diagram, on a whiteboard I'll spread them out.

Guideline: Agile Modeling - Maintain the Model in a Tool?

It's normal to miss signi cant conceptual classes during early domain modeling, and to

discover them later during design sketching or programming. If you are taking an agile

modeling approach, the purpose of creating a domain model is to quickly understand

and communicate a rough approximation of the key concepts. Perfection is not the

goal, and agile models are usually discarded shortly after creation (although if you've

used a whiteboard, I recommend taking a digital snapshot).

From this viewpoint, there is no motivation to maintain or update the model. But that

doesn't mean it's wrong to update the model. If someone wants the model maintained

and updated with new discoveries, that's a good reason to redraw the whiteboard

sketch within a UML CASE tool, or to originally do the drawing with a tool and a

computer projector (for others to see the diagram easily). But, ask yourself: Who is

going to use the updated model, and why? If there isn't a practical reason, don't bother.

Often, the evolving domain layer of the software hints at most of the noteworthy terms,

and a long - life 00 analysis domain model doesn't add value.

Guideline: Report Objects Include 'Receipt' in the Model?

Receipt is a noteworthy term in the POS domain. But perhaps it's only a report of a sale
and payment, and thus duplicate information. Should it be in the domain model?

Here are some factors to consider:

In general, showing a report of other information in a domain model is not


useful since all its information is derived or duplicated from other sources.
This is a reason to exclude it.
On the other hand, it has a special role in terms of the business rules: It
usually confers the right to the bearer of the (paper) receipt to return bought
items. This is a reason to show it in the model.

Since item returns are not being considered in this iteration, Receipt will be excluded.

During the iteration that tackles the Handle Returns use case, we would be justi ed to

include it.

« Previous Topics Next Topics »

 Motivation: Why Create A Domain  Guideline: How To Model The Unreal


Model? (https://www.wisdomjobs.com/e- World? (https://www.wisdomjobs.com/e-
university/uml-tutorial-175/motivation- university/uml-tutorial-175/guideline-how-
why-create-a-domain-model-13287.html) to-model-the-unreal-world-13289.html)

 What Is A Domain Model?  Associations


(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
university/uml-tutorial-175/what-is-a- university/uml-tutorial-175/associations-
domain-model-13285.html) 13290.html)

 Process: Planning The Next Iteration  Attributes


(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
university/uml-tutorial-175/process- university/uml-tutorial-175/attributes-
planning-the-next-iteration-13281.html) 13298.html)

UML Related Tutorials

https://www.wisdomjobs.com/e-university/uml-tutorial-175/guideline-how-to-create-a-domain-model-13288.html 5/9
11/11/2020 Guideline: How to Create a Domain Model? in UML Tutorial 11 November 2020 - Learn Guideline: How to Create a Domain Model? in U…

Adv Java Tutorial Design Patterns Tutorial


☰ (https://www.wisdomjobs.com/)
(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
UML Related Tutorials
university/adv-java-tutorial-227.html) university/design-patterns-tutorial-
1307.html)
Search for Jobs... 
Spring MVC Framework Tutorial JAVA Persistence API (JPA) Tutorial
(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
university/spring-mvc-framework-tutorial- university/java-persistence-api-jpa-
1806.html) tutorial-1898.html)

XML DOM Tutorial GDB Debugger Tutorial


(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
university/xml-dom-tutorial-1946.html) university/gdb-debugger-tutorial-
2017.html)

Object Oriented Analysis and Design Tutorial


(https://www.wisdomjobs.com/e-
university/object-oriented-analysis-and-design-
tutorial-2107.html)

UML Related Interview Questions

Adv Java Interview Questions Java collections framework Interview Questions


(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-university/java-
university/adv-java-interview- collections-framework-interview-questions.html)
questions.html)

Design Patterns Interview Questions Rational robot Interview Questions


(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
university/design-patterns-interview- university/rational-robot-interview-
questions.html) questions.html)

Web semantic Interview Questions Spring MVC Framework Interview Questions


(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
university/web-semantic-interview- university/spring-mvc-framework-interview-
questions.html) questions.html)

Advanced C++ Interview Questions Advanced jQuery Interview Questions


(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
university/advanced-c-plus-plus- university/advanced-jquery-interview-
interview-questions.html) questions.html)

XML DOM Interview Questions Object Oriented Analysis and Design Interview
(https://www.wisdomjobs.com/e- Questions (https://www.wisdomjobs.com/e-
university/xml-dom-interview- university/object-oriented-analysis-and-design-
questions.html) interview-questions.html)

UML Related Practice Tests

Adv Java Practice Tests Web semantic Practice Tests


(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
university/adv-java-practice-tests-227- university/web-semantic-practice-tests-
327247) 1411-327986)

Spring MVC Framework Practice Tests Advanced jQuery Practice Tests


(https://www.wisdomjobs.com/e- (https://www.wisdomjobs.com/e-
university/spring-mvc-framework-practice- university/advanced-jquery-practice-
tests-1806-328007) tests-1838-328017)

https://www.wisdomjobs.com/e-university/uml-tutorial-175/guideline-how-to-create-a-domain-model-13288.html 6/9
11/11/2020 Guideline: How to Create a Domain Model? in UML Tutorial 11 November 2020 - Learn Guideline: How to Create a Domain Model? in U…

☰ (https://www.wisdomjobs.com/)

Search for Jobs... 

List of Tutorials

Developers Best Practices Tutorial (https://www.wisdomjobs.com/e-university/developers-best-practices-tutorial-3129.html)


YAML Tutorial (https://www.wisdomjobs.com/e-university/yaml-tutorial-3120.html)

Salesforce Tutorial (https://www.wisdomjobs.com/e-university/salesforce-tutorial-3117.html)

Adobe Robohelp Tutorial (https://www.wisdomjobs.com/e-university/adobe-robohelp-tutorial-3114.html)


Sublime Text Tutorial (https://www.wisdomjobs.com/e-university/sublime-text-tutorial-3104.html)

GItlab Tutorial (https://www.wisdomjobs.com/e-university/gitlab-tutorial-3096.html)


Adobe InDesign CC Tutorial (https://www.wisdomjobs.com/e-university/adobe-indesign-cc-tutorial-3092.html)

SaltStack Tutorial (https://www.wisdomjobs.com/e-university/saltstack-tutorial-3063.html)


Read More (https://www.wisdomjobs.com/e-university/all-skillsets.html)

List of Topics

Summary (https://www.wisdomjobs.com/e-university/developers-best-practices-tutorial-3129/summary-28360.html)
Career Planning in best practice (https://www.wisdomjobs.com/e-university/developers-best-practices-tutorial-3129/career-planning-in-best-practice-
28359.html)
Managing Managers (https://www.wisdomjobs.com/e-university/developers-best-practices-tutorial-3129/managing-managers-28358.html)

Stress Management (https://www.wisdomjobs.com/e-university/developers-best-practices-tutorial-3129/stress-management-28357.html)

Eager to Learn (https://www.wisdomjobs.com/e-university/developers-best-practices-tutorial-3129/eager-to-learn-28356.html)


Handy Tools & Techniques (https://www.wisdomjobs.com/e-university/developers-best-practices-tutorial-3129/handy-tools-techniques-28355.html)

Keep the Assets Safely (https://www.wisdomjobs.com/e-university/developers-best-practices-tutorial-3129/keep-the-assets-safely-28354.html)


Testing is the Religion (https://www.wisdomjobs.com/e-university/developers-best-practices-tutorial-3129/testing-is-the-religion-28353.html)
Read More (https://www.wisdomjobs.com/e-university)

Interview Questions

Ravendb Interview Questions (https://www.wisdomjobs.com/e-university/ravendb-interview-questions.html)

Cobertura Interview Questions (https://www.wisdomjobs.com/e-university/cobertura-interview-questions.html)


Java Quartz Interview Questions (https://www.wisdomjobs.com/e-university/java-quartz-interview-questions.html)

Cheque Truncation System Interview Questions (https://www.wisdomjobs.com/e-university/cheque-truncation-system-interview-questions.html)

ECS Interview Questions (https://www.wisdomjobs.com/e-university/ecs-interview-questions.html)


RTGS Interview Questions (https://www.wisdomjobs.com/e-university/rtgs-interview-questions.html)

Private Equity Interview Questions (https://www.wisdomjobs.com/e-university/private-equity-interview-questions.html)

Excel Formulas Interview Questions (https://www.wisdomjobs.com/e-university/excel-formulas-interview-questions.html)


Read More (https://www.wisdomjobs.com/e-university/all-skillsets-interview-questions.html)

https://www.wisdomjobs.com/e-university/uml-tutorial-175/guideline-how-to-create-a-domain-model-13288.html 7/9
11/11/2020 Guideline: How to Create a Domain Model? in UML Tutorial 11 November 2020 - Learn Guideline: How to Create a Domain Model? in U…

☰ (https://www.wisdomjobs.com/)

Search for Jobs... 

ABOUT US TOP COMPANY JOBS

About Wisdom Jobs HDFC Careers (https://www.wisdomjobs.com/hdfc-jobs)


Contact US (https://www.wisdomjobs.com/contact-us.html) Infosys Careers (https://www.wisdomjobs.com/infosys-jobs)
Privacy Policy (https://www.wisdomjobs.com/privacy-and-policy.php) Mphasis Careers (https://www.wisdomjobs.com/mphasis-jobs)
Terms of Use (https://www.wisdomjobs.com/terms-and-conditions.php) Axis Bank Careers (https://www.wisdomjobs.com/axis-bank-jobs)
Disclaimer (https://www.wisdomjobs.com/disclaimer) Ashok Leyland Careers (https://www.wisdomjobs.com/ashok-leyland-jobs)
Report a problem (https://www.wisdomjobs.com/reportproblem.html) AEGIS Careers (https://www.wisdomjobs.com/aegis-jobs)
Help (https://www.wisdomjobs.com/help) Convergys Careers (https://www.wisdomjobs.com/convergys-jobs)
Press Corner Adobe Careers (https://www.wisdomjobs.com/adobe-jobs)
Html site Map (https://www.wisdomjobs.com/sitemap.html) ICICI Bank Careers (https://www.wisdomjobs.com/icici-bank-jobs)
Indigo Careers (https://www.wisdomjobs.com/indigo-jobs)
Spicejet Careers (https://www.wisdomjobs.com/spicejet-jobs)
HSBC Careers (https://www.wisdomjobs.com/hsbc-jobs)

TOP CATEGORY JOBS JOBS IN TOP LOCATIONS

Govt Jobs (https://www.wisdomjobs.com/govtjobs/) Jobs in Delhi (https://www.wisdomjobs.com/jobs-in-delhi)


Freshers world (https://www.wisdomjobs.com/freshers-world) Jobs in Bangalore (https://www.wisdomjobs.com/jobs-in-bangalore)
Today walkins (https://www.wisdomjobs.com/today-walkins) Jobs in Mumbai (https://www.wisdomjobs.com/jobs-in-mumbai)
Sarkari Result (https://www.wisdomjobs.com/sarkari-result) Jobs in Pune (https://www.wisdomjobs.com/jobs-in-pune)
Agriculture Jobs (https://www.wisdomjobs.com/agriculture-jobs) Jobs in Chennai (https://www.wisdomjobs.com/jobs-in-chennai)
Defence Jobs (https://www.wisdomjobs.com/defence-jobs) Jobs in Hyderabad (https://www.wisdomjobs.com/jobs-in-hyderabad-
NGO Jobs (https://www.wisdomjobs.com/ngo-jobs) secunderabad)
Real Estate Jobs (https://www.wisdomjobs.com/real-estate-jobs) Jobs in Kolkata (https://www.wisdomjobs.com/jobs-in-kolkata)
Shipping Jobs (https://www.wisdomjobs.com/shipping-jobs) Jobs in Chandigarh (https://www.wisdomjobs.com/jobs-in-chandigarh)
Java Jobs (https://www.wisdomjobs.com/java-jobs) Jobs in Gurgaon (https://www.wisdomjobs.com/jobs-in-gurgaon)
Education Jobs (https://www.wisdomjobs.com/education-jobs) Jobs in Noida (https://www.wisdomjobs.com/jobs-in-noida)
Journalism Jobs (https://www.wisdomjobs.com/journalism-jobs) Jobs in Ahmedabad (https://www.wisdomjobs.com/jobs-in-ahmedabad)
SAP Jobs (https://www.wisdomjobs.com/sap-jobs) Browse All Jobs (https://www.wisdomjobs.com/browse-alljobs)
IT Software Jobs (https://www.wisdomjobs.com/it-software-jobs) ASSESSMENTS

Pragnya Meter (https://www.wisdomjobs.com/pragnyameter/)

TUTORIALS

E-University (https://www.wisdomjobs.com/e-university/aboutus.html)
Skill Sets (https://www.wisdomjobs.com/e-university/all-skillsets.html)
Practice Tests (https://www.wisdomjobs.com/e-university/onlineexam.html)

https://www.wisdomjobs.com/e-university/uml-tutorial-175/guideline-how-to-create-a-domain-model-13288.html 8/9
11/11/2020 Guideline: How to Create a Domain Model? in UML Tutorial 11 November 2020 - Learn Guideline: How to Create a Domain Model? in U…


SERVICES
(https://www.wisdomjobs.com/)
Resume Writing (https://www.wisdomjobs.com/resumewriting/resume-
writing-for-freshers)
Search for Jobs... 
Pro le Enhancement (https://www.wisdomjobs.com/resumewriting/preferred-
applicant)
Recruiter Reach (https://www.wisdomjobs.com/resumewriting/enhanced-
reach)

JOB SEEKER

Register Now (https://www.wisdomjobs.com/registerform.html)

RECRUITERS

Post an alert
Resume Search

RESOURCES

Career Edge (https://www.wisdomjobs.com/careeredge/)


Job Posting Guide (https://www.wisdomjobs.com/sample-jobpostings.php)
Free Job Alerts (https://www.wisdomjobs.com/free-job-alert)

Our Portals : Gulf Jobs (https://www.wisdomjobsgulf.com) Canada Jobs USA Jobs Italy Jobs UK Jobs South Africa Jobs

Malaysia Jobs Singapore Jobs Australia Jobs New Zealand Jobs

All rights reserved © 2020 Wisdom IT Services India Pvt. Ltd

UML Topics

https://www.wisdomjobs.com/e-university/uml-tutorial-175/guideline-how-to-create-a-domain-model-13288.html 9/9

You might also like