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

    Stakeholders

    The CML language supports the modelling of stakeholders of (digital) solutions and/or projects. This feature has been introduced to support the Value-Driven Analysis and Design (VDAD) process. One part of this process supporting ethical software engineering is the identification of all relevant stakeholders. For more information about the whole process we refer to the VDAD page. However, modelling stakeholders can support your requirements engineering process in different ways; no matter whether you apply VDAD practices or not.

    Note: With our PlantUML generator you can automatically generate Stakeholder Maps, once you modelled all your stakeholders and stakeholder groups. See example below.

    Stakeholders Container

    On the root level of a CML file, one first needs to create a Stakeholders container. This can be done as simply as follows:

    Stakeholders {
    
      // add stakeholders and stakeholder groups here
    
    }
    

    However, if you want to model the stakeholders for a specific Bounded Context, you can declare that as follows:

    BoundedContext ExampleContext
    
    Stakeholders of ExampleContext {
    
      // add stakeholders and stakeholder groups here
    
    }
    

    Stakeholders

    Inside a Stakeholders container, you can define your stakeholders. This can be done with the Stakeholder keyword an the name of the stakeholder:

    BoundedContext ExampleContext
    
    Stakeholders of ExampleContext {
    
      Stakeholder Shopper
    
      Stakeholder Software_Engineer
    
      Stakeholder Architect
    
      // etc.
    
    }
    

    In addition, you can provide additional information for a stakeholder using the description, influence and interest keywords:

    BoundedContext ExampleContext
    
    Stakeholders of ExampleContext {
    
      Stakeholder Shopper {
        description "Is using the shopping system to by everday goods."
    
        influence MEDIUM
        interest HIGH
      }
    
    }
    

    The description just describes why and/or how the stakeholder uses the system or is impacted by the system. As suggested by many stakeholder mapping tutorials (see Miro or Mural), you can define what the influence of the stakeholders is and how much they are interested (interest) in the new system or feature.

    Stakeholder Groups

    Stakeholder maps often group stakeholders of similar roles or with similar interest together. This is also possible in CML with the StakeholderGroup keyword, which can again contain stakeholders with the Stakeholder keyword:

    BoundedContext ExampleContext
    
    Stakeholders of ExampleContext {
    
      StakeholderGroup Online_Shopping_Company {
        Stakeholder Development_Team {
          influence MEDIUM
          interest HIGH
        }
        Stakeholder Product_Management {
          influence HIGH
          interest HIGH
        }
        Stakeholder Customer_Relationship_Manager {
          influence HIGH
          interest MEDIUM
        }
      }
    
      Stakeholder Shopper {
        description "Is using the shopping system to by everday goods."
    
        influence MEDIUM
        interest HIGH
      }
    
    }
    

    Visualization: Stakeholder Map

    Once your stakeholders are modelled in CML, you can generate a visual stakeholder map automatically. Here is an example:

    Sample Stakeholder Map (for a new 'same day delivery' feature for an online shop)

    Check out our PlantUML generator on how to generate such a diagram.

    Stakeholders Export to CSV

    In addition to the Stakeholder Map visualization, you can export your modelled stakeholder data as a CSV file. To do so, use the Freemarker temple here together with our Generic Generator (Freemarker Templating).

    Transformations

    Note that we offer several transformations that might help modelling stakeholders and their values according to VDAD (Value-Driven Analysis and Design) more efficiently. The transformations are documented on the following page: Stakeholder and Value Modelling Transformations

    Improve this page on GitHub
    ← PreviousUser Requirements Next →Value Registers
    © 2026 Context Mapper contributors
    • GitHub
    • Get Involved
    • Background & Publications
    • RSS