Skip to content
CONTEXT MAPPER
  • Docs
  • Language Reference
  • Generators
  • News
  • Background
  • Get Involved
    Introduction
    • Welcome
    • Getting started
    • Create CML Project
    • Examples
    • Usage as Library
    • Frequently Asked Questions
    Language Reference (Core)
    • CML Reference - Introduction
    • Language Semantics
    • Context Map
    • Bounded Context
    • Domain and Subdomain
    • Domain Vision Statement
    • Partnership
    • Shared Kernel
    • Customer/Supplier
    • Conformist
    • Open Host Service
    • Anticorruption Layer
    • Published Language
    • Responsibility Layers
    • Knowledge Level
    • Aggregate
    • Tactic DDD Syntax
    • Application and Process Layer
    • User Requirements
    • Stakeholders
    • Value Registers
    • Imports
    Analysis and Design Transformations
    • Rapid Object-oriented Analysis and Design
    • Story Splitting (PoC)
    • Stakeholder and Value Modelling Transformations
    Architectural Refactorings (ARs)
    • Architectural Refactorings
    • AR-1: Split Aggregate by Entities
    • AR-2: Split Bounded Context by Features
    • AR-3: Split Bounded Context by Owner
    • AR-4: Extract Aggregates by Volatility
    • AR-5: Extract Aggregates by Cohesion
    • AR-6: Merge Aggregates
    • AR-7: Merge Bounded Contexts
    • AR-8: Extract Shared Kernel
    • AR-9: Suspend Partnership
    • AR-10: Change Shared Kernel to Partnership
    • AR-11: Change Partnership to Shared Kernel
    Value-Driven Analysis and Design
    • Value-Driven Analysis and Design (VDAD) Support
    Service Cutter
    • Context Map Suggestions with Service Cutter
    • Service Cutter Configuration File (.servicecutter.yml)
    Reverse Engineering
    • Context Map Discovery
    Generators
    • Generators Overview
    • Context Map Generator
    • PlantUML Generator
    • BPMN Sketch Miner Generator
    • MDSL (Micro-)Service Contracts Generator
    • Service Cutter Generators
    • Generic Generator (Templating)
    Tutorials
    • Model Event Storming Results in Context Mapper
    • Event Sourcing and CQRS Modeling in Context Mapper
    • Generate Microservices From Context Map Using JHipster
    • Systematic Service Decomposition with Context Mapper and Service Cutter
    • Validating the Implementation against the Model (with ArchUnit)
    IDE Plugins and Extensions
    • Visual Studio Code Extension
    • Online IDE (no longer supported)
    • Eclipse Plugin
    • Feature Support

    PlantUML Generator

    Introduction and Motivation

    The PlantUML tool lets you create UML diagrams quickly. You can generate UML component diagrams representing entire Context Maps, UML class diagrams for each Bounded Context in your model, and UML state diagrams to visualize an Aggregates lifecycle. If the implemented Subdomains contain Entities, the generator produces class diagrams for these Subdomains as well. We offer a transformation from our DSL into a graphical representation of the system this way. The component diagram illustrates all Bounded Contexts and their relationships, while the class diagrams show the domain models of the Bounded Contexts and Subdomains (if you used the Tactic DDD Syntax to specify them). In addition to that, it generates state diagrams to visualize your Aggregate’s lifecycles (in case you modelled the state transitions).

    UML Component Diagram

    The generator creates a component diagram for your Context Map, showing the Bounded Contexts and its relationships. For example, the component diagram for our insurance scenario (example model) looks like this:

    PlantUML Component Diagram

    UML Class Diagram

    The generator also creates class diagrams for every bounded context and subdomain. An example from the insurance scenario is:

    PlantUML Class Diagram

    UML State Diagram

    Your CML models can define the lifecycle of Aggregates either in the Aggregate itself or inside application flow definitions. If your model contains such state transitions, the generator will also create state diagrams for your aggregates or flows. An example from one of our models (Lakeside Mutual)

    PlantUML State Diagram

    Note: If you you use the end state markers (*) as documented here, we also generate the corresponding end state transitions in PlantUML:

    PlantUML State Diagram

    UML Use Case Diagrams

    CML also allows you to write Use Cases and User Stories. You can find the documentation about how to write such user requirements here. In case your CML model contains such user requirements, the PlantUML generator will also automatically generate a use case diagram for you. Here is an example:

    PlantUML Use Case Diagram

    Stakeholder Maps

    As documented here, CML allows you to model the stakeholders for a specific project, system or feature. In case your CML file contains such a Stakeholders section with stakeholders and stakeholder groups, the PlantUML generator will automatically generate a stakeholder map for you. An example:

    PlantUML Stakeholder Map

    For more information about stakeholder maps and the idea behind them, we refer to the Value-Driven Analysis and Design (VDAD) process.

    Value Impact Maps

    In case you modelled a value register in CML, which you can do as documented here, the PlantUML generator will automatically create a so-called “Value Impact Map”, a Value-Driven Analysis and Design (VDAD) practice. An exemplary output is:

    PlantUML Value Impact Map

    Generating the PlantUML Diagrams

    The generators can be called from the context menus of the CML editors in VS Code or Eclipse. A documentation how to call the generators can also be found here.

    Once you generated the .puml files, you can of course not only view them in Eclipse or VS Code but also process them further. For instance, they can be integrated into Markdown and pandoc nicely.

    Note: All generator outputs will be generated into the src-gen folder.

    Improve this page on GitHub
    ← PreviousContext Map Generator Next →BPMN Sketch Miner Generator
    © 2026 Context Mapper contributors
    • GitHub
    • Get Involved
    • Background & Publications
    • RSS