Domain Modelling

Domain model is a UML model that is drawn to understand the important objects and their business context.

A domain is a collection of related concepts, relationships, and workflows.
Eg : Science ,  Software engineering , Statistics  

Why Domain Model?

ü  Gives a conceptual framework of the things in the problem space
ü  Helps you think – focus on semantics
ü  Provides a glossary of terms – noun based
ü  It is a static view - meaning it allows us convey time invariant 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.

Figure 1 : Usage of a Domain Model

Parts of a Domain Model

The Figure 2 Shows the main parts of a Domain model.
Figure 2 : Parts of a Domain Model

Apart from these key features, a domain model can also have,
o        Additional rules – complex rules that cannot be shown with symbology can be shown with attached notes.
 
Figure 3 : Sample Domain Model
Wanna try out a domain model?? 
 Follow these steps (figure 4)…..

Figure 4 : Domain Modelling Steps



Concentrate more on just identifying domain classes in early steps !

Identify the domain classes?

An obvious way to identify domain classes is to identify nouns and phrases in textual descriptions of a domain.
Consider a use case description as follows:-
1.      Customer arrives at a checkout with goods and/or services to purchase.
2.      Cashier starts a new sale.
3.      Cashier enters item identifier.
      4.      System records the sale line item and presents the item  description, price and running total. 

Identifying Attributes??

A domain class sounds like an attribute if: -
1.       It relies on an associated class for it’s identity – e.g. ‘order number’ class associated to an ‘order’ class. The ‘order number’ sounds suspiciously like an attribute of ‘order’.
2.       It is a simple data type – e.g. ‘order number’ is a simple integer. Now it really sounds like an attribute!

Comments