Home » Software Engineering

Domain modeling | Software Engineering

This article is an introduction to a very important concept of software engineering: Domain modeling. In this article, we are going to learn what is meant by domain modeling, why it is important and what are its applications and usefulness in the field of software development.
Submitted by Monika Sharma, on November 06, 2019

Domain modeling is also known as conceptual modeling. It is a very important concept in software engineering. This phase is usually followed after the feasibility testing and requirement analysis phase. In the domain modeling, we represent the concepts, objects and various other entities that appear in the domain of the problem statement that our software is intended to resolve.

For example, consider a library management system. In the software which handles all the work for the library book issue and submission and also handles the total book count and the fine amount along with the issuer’s details, we need to draw the main concepts that are visible from the problem domain. Here, the concepts or the entities that we can draw are: BookName, BookAuthor, BookNumber, MemberDetails, LibrarianDetails, FineAmount, RegisterdCustomersList, etc.

Thus, domain modeling in terms of software engineering can be defined as creating a rough conceptual model from the problem statement which our software needs to solve. Here, the focus is just to draw attention to the major parts and functionalities of the software. Later, this rough conceptual model is refined and extended incrementally in the designing phase and final software design is created.

Domain Analysis

During the domain analysis, which is the initial step of domain modeling, the objects are to be identified. These objects are classified into three categories,

  1. Boundary objects
  2. Controller objects
  3. Entity objects

The boundary and the controller objects can be easily identified from the use case diagram but the entity objects require observation and whole detail of the software requirements. Hence, it can be said that the main aim of domain modeling is to identify the entity models and define the entity objects.

What is the purpose of different kinds of objects in the domain analysis?

  1. Boundary objects
    These are the objects which are mainly responsible for the user interaction with the software, i.e. these objects are those with which the user directly interacts. These include everything through which you operate the software, i.e. the menus, buttons, toggle bars, dialogues, screens, etc. These objects only explain how the software would appear to the user and do not include any logic of the interior processing. The boundary objects are also called the interface objects and are responsible for validating the inputs and formatting the outputs from the user.
  2. Entity objects
    These objects are usually responsible for storing the data. These include the data tables, registers, logs and everything that can be related to and stored in the database. The operations that are usually performed on these kinds of objects are: storing data, fetching data, modifying data, altering storage format, etc.
  3. Controller objects
    These objects are responsible for controlling the data flow and dialogue flow between the boundary objects and the entity objects. This can be explained as follows: suppose the user gives some commands through the boundary objects, which needs to display some data to be displayed on to the screen. Now, the displaying of the stored data is a function of the boundary object, but the data is stored in the entity object, and someone has to bring that data from the database to the output unit. This work is performed by the controller object. This object involves all the processing logic that takes place behind the software.





Comments and Discussions

Ad: Are you a blogger? Join our Blogging forum.




Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates


© https://www.includehelp.com some rights reserved.