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

    Stakeholder and Value Modelling Transformations

    The following transformations aim at making modelling stakeholders and value registers more efficient. These language features and transformations shall provide tool-support for applying the Value-Driven Analysis and Design (VDAD) process.

    Add Ethical Value Assessment to User Story

    As documented under User Requirements CML provides language features to write user stories and in addition, Story Valuation according to ESE.

    If you have an existing user story in CML that has not been valuated yet, a transformation allows you to generate the additional part:

    Add Ethical Value Assessment - Example (1)

    This will add the additional part for the story valuation:

    Add Ethical Value Assessment - Example (2)

    You can then adjust the story with the actual values that are promoted and/or harmed. For example:

    Add Ethical Value Assessment - Example (3)

    Create Stakeholder for User Story Role

    When applying Value-Driven Analysis and Design (VDAD) or similar approaches, one typically starts with modelling requirements (use cases, user stories, etc.) and then continues with a stakeholder analysis and, later on, elicits ethical values. This transformation allows you to create stakeholders directly from roles inside user stories.

    The following example shows such a user story and the transformation you can trigger:

    Create Stakeholder for User Story Role - Example (1)

    The transformation will create a Stakeholders block with the corresponding stakeholder for your user story role:

    Create Stakeholder for User Story Role - Example (2)

    Note that the values for influence, interest and description are just generated default values that you have to adjust manually.

    Create Value for Stakeholder

    Once you modelled a stakeholder, you may want to elicit the values that are important for this stakeholder(s). This transformation allows you to automatically generate a CML Value construct for a given stakeholder.

    The following example shows the transformation offered on stakeholders:

    Create Value for Stakeholder - Example (1)

    The transformation will create a value register containing a value and the reference to the stakeholder:

    Create Value for Stakeholder - Example (2)

    Note that this transformation generates lots of default values, such as register name, value name, etc., that you have to manually change/define after applying the transformation.

    Create Value Register for Bounded Context

    If you already created a domain model and defined a Bounded Context in CML, you might want to generate a Value Register for the specific Bounded Context. This transformation allows you to quickly add a register with the reference to your context.

    The following example illustrates the transformation offered on Bounded Contexts:

    Create Value Register for Bounded Context - Example (1)

    The transformation creates an empty value register for the context, which can then be filled with the values important to the stakeholders:

    Create Value Register for Bounded Context - Example (2)

    Wrap Value in Cluster

    If you have modelled a value inside a value register and now want to use value clusters according to the IEEE 7000 standard, this transformations allows you to wrap an existing value inside a value cluster.

    The following example shows the offered transformation on a value:

    Wrap Value in Cluster - Example (1)

    The transformation wraps the value accordingly:

    Wrap Value in Cluster - Example (2)

    Note that you have to adjust the name of the cluster manually after applying the transformation.

    Note: This transformation (“Wrap Value in Cluster”) has some known technical limitations in Visual Studio Code. We are sorry for that. For the time being, use the Eclipse Plugin if you want to test this transformation.

    Feedback

    Please feel free to provide feedback which other transformations would be useful for you. Get in touch with us.

    Improve this page on GitHub
    ← PreviousStory Splitting (PoC) Next →Architectural Refactorings
    © 2026 Context Mapper contributors
    • GitHub
    • Get Involved
    • Background & Publications
    • RSS