Tuesday, January 15, 2008

Domain Models

What is a domain model?

Object-Oriented (OO) analysis artifact

Domain Models are an important object-oriented (OO) analysis artifact

Domain model is the most important –and classic – model in OO analysis.

Visual representation/Visual Dictionary

A domain model is a visual representation of conceptual classes or real situation objects in a domain.

Also Domain object models

Domain model have also been called conceptual model, domain object models, and analysis object model.

Influence operation

Domain model influence operation contracts, a glossary, and the design model, especially the software objects in the domain layer of the design model.

Conceptual classes

Domain model means a representation of real-situation conceptual classes, not of software object.

UML notation

Applying UML notation, a domain model is illustrated with a set of class diagram in which no operation (method signatures) are defined. It provides a conceptual perspective. It may show:

  • Domain objects or conceptual classes
  • Associations between conceptual classes
  • Attributes of conceptual classes

Domain model NOT describes

Data model

A domain model is not a data model

Software artifacts

Domain model does not show software artifacts or classes.

Software object.

Domain model describes real situation concepts, not software object.

Won’t ever be perfect

Domain model won’t ever be perfect.

Over-modeling efforts lead analysis paralysis.

Why Create a Domain Model?

Understand the key concept and vocabulary of business.

Lower representation gap with OO modeling.

The object-oriented developer has taken inspiration from the real world domain in creating software classes.

How to Create a Domain Model?

  1. Find the conceptual classes
  2. Draw them as classes in a UML class diagram.
  3. Add association

Conceptual Classes:

The domain model illustrates conceptual classes or vocabulary in the domain. Informally, a conceptual class is an idea, thing, or object. More formally, a conceptual class may be considered I terms of its symbol, intension, and extension.

  • Symbol – words or images representing a conceptual class.
  • Intension – the definition of a conceptual class.
  • Extension – the set of examples to which the conceptual class applies.