Domain
Model
A domain model, or Domain Object Model (DOM) in problem solving and software
engineering can be thought of as a conceptual model of a domain of interest
(often referred to as a problem domain) which describes the various entities,
their attributes and relationships, plus the constraints that govern the
integrity of the model elements comprising that problem domain.
Overview
ü The
domain model is created in order to represent the vocabulary and key concepts
of the problem domain. The domain model also identifies the relationships among
all the entities within the scope of the problem domain, and commonly
identifies their attributes. A domain model that encapsulates methods within
the entities is more properly associated with object oriented models. The
domain model provides a structural view of the domain that can be complemented
by other dynamic views, such as Use Case models.
ü An
important benefit of a domain model is that it describes and constrains the
scope of the problem domain. The domain model can be effectively used to verify
and validate the understanding of the problem domain among various
stakeholders. It is especially helpful as a communication tool and a focusing
point both amongst the different members of the business team as well as
between the technical and business teams.
Usage
ü A
well-thought domain model serves as a clear depiction of the conceptual fabric
of the problem domain and therefore is invaluable to ensure all stakeholders
are aligned in the scope and meaning of the concepts indigenous to the problem
domain. A high fidelity domain model can also serve as an essential input to
solution implementation within a software development cycle since the model
elements comprising the problem domain can serve as key inputs to code
construction, whether that construction is achieved manually or through
automated code generation approaches. It is important, however, not to compromise
the richness and clarity of the business meaning depicted in the domain model
by expressing it directly in a form influenced by design or implementation
concerns.
ü The
domain model is one of the central artifacts in the project development
approach called Feature Driven Development (FDD).
ü In UML, a
class diagram is used to represent the domain model. In Domain-driven design,
the domain model (Entities and Value objects) is a part of the Domain layer
which often also includes other concepts such as Services.
Sample
domain model for a health insurance plan
ü In this
simplified example, the Auction Manager object represents a Business Worker
role that will likely be performed by the online auction management system
itself. The Auction and Auction Item objects are Business Entities that are
used or produced by the Auction Manager worker acting as an agent for the
Seller and Buyer Business Actors. From a database design perspective, the
Auction and Auction Item Business Entities are candidate entities for the
Conceptual Data Model.
Requirements and Analysis Models
ü For
projects that do not perform business modeling, the Requirements (System Use
Case) and Analysis Models contain model elements that can be used to develop an
initial Conceptual Data Model. For projects that use business modeling, the
business entities and relationships identified in the Business Analysis Models
are refined and detailed in the Analysis Model as Entity Classes.
System Use-Case Model
The
System Use-Case Model contains System Actors and System Use Cases that define
the primary interactions of the users with the system. The System Use Cases
define the functional requirements for the system.
ü From a
conceptual data modeling perspective, the System Actors represent entities
external to the system for which the system might need to store persistent
information. This is important in cases where the System Actor is an external
system that provides data to and/or receives data from the system under development.
System Actors can be derived from the Business Actors in the Business Use-Case
Model and the Business Workers in the Business Analysis Model.
ü The
figure below depicts the Business Use-Case Model for the online auction system.
In this model, the Buyer and Seller Business Actors are now derived from a
generic User Business Actor. A new System Actor named Credit Service Bureau has
been added to reflect the need to process payments through an external entity.
This new System Actor is another candidate entity for the Conceptual Data
Model.
Analysis Model
The
Analysis Model contains the Analysis Classes identified in the Use-Case
Realizations for the System Use Cases. The types of Analysis Classes that are
of primary interest from a conceptual data modeling perspective are the Entity
Analysis Classes. As defined in Guidelines: Analysis Class,
Entity
Analysis Classes represent information managed by the system that must be
stored in a persistent manner. The Entity Analysis Classes and their
relationships form the basis of the initial Data Model for the application.
ü The
conceptual Entity Analysis Classes in the Analysis Model might be refined and
detailed into logical Persistent Design Classes in the Design Model. These
design classes represent candidate tables in the Data Model. The attributes of
the classes are candidate columns for the tables and also represent candidate
keys for them. See Guidelines: Forward-Engineering Relational Databases for a
description of how elements in the Design Model can be mapped to Data Model
elements.
Conceptual Class Category List
A conceptual class is a real-world concept
or thing; a conceptual or essential perspective. At the noun filtering stage we
are looking for conceptual classes. As we move through the design process we
will start to design software classes
that represent an implementation perspective of a software component but we
will not get into language specific classes in 466. A conceptual class is not an implementation class, such as a class that can be implemented in an
OO language such as Java or C++
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.