Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
The Domain Generator - Generates C++-11 source code for domain driven development.
C++ CMake Other

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


Motto: First write the code generator; don’t worry about the code, it will write itself.

What is Dogen

Dogen is a code generator designed to target domain models. It is crucial for Kitanda because we use a intensively domain driven approach to software engineering, resulting in a very large number of domain specific languages. Dogen was created to make the modeling process simpler: the user creates a domain model using a UML tool and Dogen uses it to generate its source code representation. The generated code contains most of the services required from a typical C++ domain object such as serialisation, hashing, streaming and so on.

Why do we need Dogen

The main objective of creating a domain generator is to avoid having to maintain manually a significant amount of trivial code; this not only speeds up the development process but it also improves quality as programmers do not tend to perform repetitive tasks terribly well. We developed our own domain generator because we could not find one that fitted our requirements - open source or otherwise.

Note that Dogen is specifically tailored for our needs and as such it is not a general purpose domain generator. We are, however, wiling to accept any patches for functionality not directly required by us.

Something went wrong with that request. Please try again.