Category: 

What Is a Domain Model?

Article Details
  • Written By: T.S. Adams
  • Edited By: C. Wilborn
  • Last Modified Date: 31 August 2016
  • Copyright Protected:
    2003-2016
    Conjecture Corporation
  • Print this Article
Free Widgets for your Site/Blog
Due to synthetic materials and furnishings, new homes burn about five times faster than those built 30 years ago.  more...

September 25 ,  1789 :  The US Bill of Rights was adopted.  more...

A domain model is an outline-like overview of a specific problem used in software engineering fields and conceptual problem solving. The purpose of this model is to break a specific problem down into its component parts, creating a visual representation of how a specific process operates. Through the use of domain models, software engineers can ensure that they understand all elements of an issue before beginning to code a solution or implement it into a piece of software, hopefully saving time, expense, and effort in the completion of the overall project.

A flowchart is a good representation of a domain model, as it shows how the different entities involved in a particular problem interlock with one another. In a flowchart, all of the different pieces of a puzzle are connected together in a logical fashion. For example, in the context of an insurance arrangement, while both the original individual covered and his or her children would all fall into the category of "insured," the children would also fall into a subset of the "insured" class: "dependents." Visually constructing these relationships can improve communication on a project, helping everyone involved to remain on the same page.

Ad

Establishing the key concepts and unique vocabulary of a specific problem is one of the first steps towards generating a domain model. After listing the different classes and subclasses involved — such as "dependent," "insured," and "insurance plan" — creating a domain model requires the modeler to connect those classes in a logical order, showing how they interact with one another on a regular basis. For example, "dependents" will rarely interact directly with the insurance company; all of a dependent's interactions will proceed through a middleman, the original insured party. Due to this, the "dependents" class will be linked to "insured," and the "insured" class linked to "insurance plan," with no direct connection between "dependents" and "insurance plan."

The primary benefit of a domain model is that it clearly defines and encapsulates a problem, leaving nothing out. By performing this level of in-depth planning prior to actually beginning the coding of a project, the problem often becomes easier to resolve, leading to clearer, more concise code. Without a domain model, repetitive code and inefficient arrangement of classes and routines can occur. Much like attempting to write a complex paper without a clear outline beforehand, things are drastically simplified with a good working plan.

Ad

You might also Like

Recommended

Discuss this Article

Post your comments

Post Anonymously

Login

username
password
forgot password?

Register

username
password
confirm
email