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 released in the future but is not ready yet.

Install Context Mapper Eclipse Plugin

To start with Context Mapper install our Eclipse plugin by using the following update site:

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

System Requirements

To use the ContextMapper DSL Eclipse plugin you need the following tools:

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.

Next steps …

After you 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 to create your first CML models.

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:

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
      }
    }
  }
}

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.