CML Reference - Introduction

This section of the online documentation covers all supported DDD patterns and the corresponding CML language features.

Semantic Model

The Language Semantics page contains a diagram illustrating the domain model on which the CML language is based. It helps to understand the structure of the language and semantics (for instance, the difference between bidirectional, symmetric context relationships and directed upstream-downstream relationships).

The Language Model page further describes all implemented semantic rules in textual form.

Strategic DDD Patterns

The following strategic DDD patterns are supported by CML. For detailed descriptions of the patterns itself we refer to Evan’s original DDD book (“the blue book”) and his free DDD reference.

The syntax and semantic rules of all the patterns are documented on their individual pages:

Tactic DDD Patterns

The tactic DDD part of the CML language(all grammar rules inside Aggregatess that is), are based on the Sculptor DSL. Thus, we refer to the Sculptor documentation for details regarding the tactic DDD patterns.

The most important tactic DDD patterns that we use in our transformations (for instance, plantUML generation) are the following:

  • Module
  • Aggregate (and Aggregate Root)
  • Entity
  • Service
  • Value Object
  • Domain Event
  • Command

The following patterns can be used in CML models as well (but currently are not processed by in any transformation):

  • Repository

Note: Our Aggregate pattern implementation is different from the one in Sculptor; it does not correspond to Sculptor’s implementation. Therefore it is documented here.

Additional Language Features

The following (not DDD specific) language features are supported by CML as well: