Getting started

To model with Context Mapper you need our Eclipse Plugin providing the CML language and its surrounding tools. The integration of CML into other IDEs will be considered for future releases, but is not ready yet (help wanted!).

Install Context Mapper Eclipse Plugin

To start using Context Mapper, please install the Eclipse plugin via the Eclipse Marketplace or our update site:

Eclipse Marketplace: https://marketplace.eclipse.org/content/context-mapper/

Update Site: https://dl.bintray.com/contextmapper/context-mapping-dsl/updates/

System Requirements

To use the ContextMapper DSL Eclipse plugin, the following tools are required:

Note: If you want to integrate the DSL and its tools as library within your application, find more information here.

Latest Releases

Release notes for all our latest releases can be found here.

Example

The following example gives you a first impression how CML context maps look like: (DDD Sample Application)

/** 
 * The DDD Cargo sample application modeled in CML. Note that we split the application into 
 * multiple bounded contexts.
 *
 */
ContextMap {
  contains CargoBookingContext
  contains VoyagePlanningContext
  contains LocationContext
  
  CargoBookingContext [SK]<->[SK] VoyagePlanningContext
  
  CargoBookingContext [D]<-[U,OHS,PL] LocationContext

  VoyagePlanningContext [D]<-[U,OHS,PL] LocationContext
}

The bounded contexts have to be specified before you can use them within a context map. A simple example of a bounded context definition is:

BoundedContext LocationContext {
  Module location {
    Aggregate Location {
      Entity Location {
        aggregateRoot

        PortCode portcode
        - UnLocode unLocode
          String name
      }

      ValueObject UnLocode {
        String unLocode
      }

      ValueObject LocationShared {
        PortCode portCode
        - Location location
      }
    }
  }
}

Next steps…

A First Model

Once you have installed the Context Mapper Eclipse plugin, you can create a CML (Xtext) project and start modeling. Find more information how to create such a project here:

Check out our example models and the language reference if you do not want to start with an empty CML model.

Refactorings and Generators

Once you created your first Context Map in CML you can use the following tools to evolve your model and generate other representations of your architecture:

Reverse Engineer Context Map and Bounded Contexts

In case you work on a project with existing monolithic or (micro-)service-oriented architectures you may want to reverse engineer an initial Context Map or the domain models within your Bounded Contexts to simplify the start with our tool. In this case have a look at our reverse engineering library which is able to generate CML models from existing source code.