HOME

TheInfoList



OR:

In
software engineering Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
, a domain model is a
conceptual model The term conceptual model refers to any model that is formed after a wikt:concept#Noun, conceptualization or generalization process. Conceptual models are often abstractions of things in the real world, whether physical or social. Semantics, Semant ...
of the domain that incorporates both behavior and data.Fowler, Martin.
"P of EAA - Domain Model"
/ref> In
ontology engineering In computer science, information science and systems engineering, ontology engineering is a field which studies the methods and methodologies for building Ontology (information science), ontologies, which encompasses a representation, formal nami ...
, a domain model is a formal representation of a knowledge domain with concepts, roles, datatypes, individuals, and rules, typically grounded in a
description logic Description logics (DL) are a family of formal knowledge representation languages. Many DLs are more expressive than propositional logic but less expressive than first-order logic. In contrast to the latter, the core reasoning problems for DLs are ...
.


Overview

In the field of
computer science Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
a conceptual model aims to express the meaning of terms and concepts used by domain experts to discuss the problem, and to find the correct relationships between different concepts. The conceptual model is explicitly chosen to be independent of design or
implementation Implementation is the realization of an application, execution of a plan, idea, scientific modelling, model, design, specification, Standardization, standard, algorithm, policy, or the Management, administration or management of a process or Goal ...
concerns, for example, concurrency or
data storage Data storage is the recording (storing) of information (data) in a storage medium. Handwriting, phonographic recording, magnetic tape, and optical discs are all examples of storage media. Biological molecules such as RNA and DNA are con ...
. Conceptual modeling in computer science should not be confused with other modeling disciplines within the broader field of
conceptual model The term conceptual model refers to any model that is formed after a wikt:concept#Noun, conceptualization or generalization process. Conceptual models are often abstractions of things in the real world, whether physical or social. Semantics, Semant ...
s such as data modelling, logical modelling and physical modelling. The conceptual model attempts to clarify the meaning of various, usually ambiguous terms, and ensure that confusion caused by different interpretations of the terms and concepts cannot occur. Such differing interpretations could easily cause confusion amongst stakeholders, especially those responsible for designing and implementing a solution, where the conceptual model provides a key artifact of business understanding and clarity. Once the domain concepts have been modeled, the model becomes a stable basis for subsequent development of applications in the domain. The concepts of the conceptual model can be mapped into physical design or implementation constructs using either manual or automated code generation approaches. The realization of conceptual models of many domains can be combined to a coherent platform. A conceptual model can be described using various notations, such as UML, ORM or OMT for object modelling,
ITE ITE or Ite may refer to: Places * Ite (village), Walloon name of the Belgian village of Ittre * Ite District in Tacna Region, Peru Brands and enterprises * Interactive Television Entertainment, a defunct Danish media company * ITE Group, an organi ...
, or IDEF1X for Entity Relationship Modelling. In UML notation, the conceptual model is often described with a class diagram in which
class Class, Classes, or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used d ...
es represent concepts, associations represent relationships between concepts and role types of an association represent role types taken by instances of the modelled concepts in various situations. In ER notation, the conceptual model is described with an ER Diagram in which entities represent concepts,
cardinality The thumb is the first digit of the hand, next to the index finger. When a person is standing in the medical anatomical position (where the palm is facing to the front), the thumb is the outermost digit. The Medical Latin English noun for thum ...
and optionality represent relationships between concepts. Regardless of the notation used, it is important not to compromise the richness and clarity of the business meaning depicted in the conceptual model by expressing it directly in a form influenced by design or implementation concerns. This is often used for defining different processes in a particular company or institute. A domain model is a system of abstractions that describes selected aspects of a sphere of knowledge, influence or activity (a domainEvans, Eric ''Domain-Driven Design: Definitions and Pattern Summaries''. Domain Language Inc., 2006, p. 3.). The model can then be used to solve problems related to that domain. The domain model is a representation of meaningful real-world concepts pertinent to the domain that need to be modeled in software. The concepts include the data involved in the business and rules the business uses in relation to that data. A domain model leverages natural language of the domain. A domain model generally uses the vocabulary of the domain, thus allowing a representation of the model to be communicated to non-technical stakeholders. It should not refer to any technical implementations such as databases or software components that are being designed.


Usage

A domain model is generally implemented as an
object model In computing, object model has two related but distinct meanings: # The properties of objects in general in a specific computer programming language, technology, notation or methodology that uses them. Examples are the object models of ''Java'', ...
within a layer that uses a lower-level layer for persistence and "publishes" an API to a higher-level layer to gain access to the data and behavior of the model. In the
Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system. UML provides a standard notation for many types of diagrams which can be roughly ...
(UML), a class diagram is used to represent the domain model.


See also

*
Domain-driven design Domain-driven design (DDD) is a major software design approach, focusing on modeling software to match a domain according to input from that domain's experts. DDD is against the idea of having a single unified model; instead it divides a large s ...
(DDD) * Domain layer *
Information model An information model in software engineering is a representation of concepts and the relationships, constraints, rules, and Operation (mathematics), operations to specify Semantic data model, data semantics for a chosen domain of discourse. Typica ...
* Feature-driven development *
Logical data model A logical data model or logical schema is a data model of a specific problem domain expressed independently of a particular database management product or storage technology (physical data model) but in terms of data structures such as relational ta ...
* Mental model * OntoUML


References


Further reading

* Halpin T, Morgan T: Information Modeling and Relational Databases, Morgan Kaufmann, 2008. . * Fowler, Martin: Analysis Patterns, Reusable object models, Addison-Wesley Longman, 1997. . * Stewart Robinson, Roger Brooks, Kathy Kotiadis, and Durk-Jouke Van Der Zee (Eds.): Conceptual Modeling for Discrete-Event Simulation, 2010. * David W. Embley, Bernhard Thalheim (Eds.): Handbook of Conceptual Modeling, 2011. {{ISBN, 978-3-642-15864-3. Software requirements Data modeling