BS (Software Engineering) 2023
LAB 4: Domain Model
Objective
In this lab, students will learn how to identify real-world objects, their attributes, associations and how
to model all this using Domain Model.
Theoretical Description
A Domain Model is used to represent entities and it illustrates meaningful concepts in a
problem domain. It may show concepts, associations between concepts and attributes of
concepts.
A UML domain model will relate objects in the system domain to each other. It will define concepts
and terms. Objects in the domain model can be:
* Physical objects
* Abstract concepts
List Objects (Concepts)
To help the development of a domain model, it is important to identify nouns and noun phrases.
Concepts that may not ultimately become objects may be listed for completeness and for discussion.
The following types of concepts should be listed:
* Actor roles
* Events
* Transactions
o Transaction line items
* Objects (physical)
o Containers
+ Items (in container)
o Other systems
o Organizations
Nouns can be taken from the requirements definitions and use case drawings. This means at this point
all your use case drawings should be done. Actors should not be emphasized in the domain model.
Domain Model Syntax
After the list of concepts is complete a domain model should be made. Consider which simple items
should be attributes of objects. The domain model is a static model. Time flow, with sequence of events
or information flow is not shown in the domain model. The objects in the domain model are candidates
for programming objects.
NOTE: Domain Models are created using Class Diagram notations.
1. Start MS Visio. Select Softwares and Databases category. Select UML Model
Diagrams.
2. Select Static Structure.
Class Structure:
11
BS (Software Engineering) 2023
Note: To modify this structure to suit needs of a domain model, right click it, select shape
display Options, Uncheck Operation Parameters from General group and Check Operations in
Suppress group.
Case Study: BATS System
The Bank Accounts and Transactions System (BATS) is to be built for the Prime Bank
Corporation. It must handle clients' bank accounts and the services on these accounts, i.e.,
deposit, withdraw, transfer, get balance, etc.
The transactions are recorded, because at the end of each month, the system sends out account
statements to all clients showing all transactions performed for their accounts during the last
period. The system sends the statements to the printer from where a junior clerk posts them.
The system is accessed by the bank's clients only indirectly, i.e., either via a teller, or an ATM,
or the Internet. All transactions and queries are possible via a teller; all transactions and queries
are possible except deposits via an ATM; and all except deposits and withdrawals via the
Internet. Opening an account can be performed only via a teller and the Internet; however, if a
client opens an account via the Internet they must identify themselves with a teller to have their
account activated (this is government policy to avoid money laundering, e.g.). Closing an
account can only be performed by a teller, and it requires a final statement to be sent out to the
client. The Bank offers various account types, which fall into two categories: savings and
checking. Savings accounts cannot be overdrawn. There can be a credit limit, subject to
agreement by the bank, on checking accounts; a checking account cannot be overdrawn beyond
this limit.
Lab Task
Develop a partial Domain model for the given BATS system. Identify the concepts, attributes,
and associations explicitly. This lab task submission must include:
1. List of possible conceptual classes
2. Attributes for each class
3. A partial domain model showing the conceptual classes and association between them.
12