🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
Domain modeling
This page was created by Wikiadmin on 2026-07-29. Last edited by Wikiadmin on 2026-07-29.

You can use this page to learn how to describe your business domain as a model in MDriven Designer; it is for new and experienced modelers who need a direct starting point for domain modeling.

What domain modeling means

A domain model describes the important concepts in the system you are building and the relationships between them. In MDriven, you create the model first and use it as the basis for the application.

For example, a car-rental domain can contain the classes Person, House, Apartment, and LeaseContract. A Person can rent multiple Apartments, and each rental can be represented by a LeaseContract. The exact classes and relationships depend on the requirements for the domain.

Use the language that people in the domain use. In a car example, name the classes Car and Brand rather than abstract names such as A and B. This creates a shared language between modelers, developers, domain experts, and stakeholders. This approach is known as Domain-Driven Design (DDD).

Model the concepts and their relationships

Start by identifying the things that matter in the domain, then describe their properties and relationships in a UML-like class diagram.

For example, a Brand can be modeled as a separate class rather than repeated text on every Car. Each Car then relates to at most one Brand, while the Brand name is stored once. This is an example of treating a concept as its own class when it has meaning in the domain.

A model is a simplified representation of real concepts. Its correctness depends on whether it fulfills its intended purpose. For the same domain, one model may use a Brand class while another may use a brand attribute on Car; choose the representation that serves your requirements.

Continue learning

  1. Read Short introduction to UML – class diagram for an introduction to classes, attributes, associations, and the purpose of a model.
  2. Use MDriven Designer Documentation to find modeling topics including associations, embedding techniques, unique constraints, enumerations, derivation, constraints, state machines, and ViewModels.
  3. Read MDriven Developer's Guide: Model-Driven Development Simplified for the model-driven development workflow: model the domain, define business rules and UI logic with OCL, then generate the database and application.

See also