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

    Service Cutter Generators

    Introduction and Motivation

    The Service Cutter tool provides a structured way to service decomposition. Our Service Cutter Input Generators allow you to generate the input files for Service Cutter. The prototypical integration of Service Cutter demonstrates the opportunity to generate suggestions how to further decompose a context-modeled system.

    For more information about Service Cutter we refer to its projects wiki and two publications on it:

    • Service Cutter Wiki
    • Service Cutter: A Systematic Approach to Service Decomposition (Paper)
    • Service Cutter: A Systematic Approach to Service Decomposition (HSR Bachelor Thesis)

    User Guide

    The following sections describe how to use the Service Cutter generators and create the input files for Service Cutter.

    Generate Entity Relationship Model File

    Service Cutter uses an Entity-Relationship Model Diagram (ERD) file that contains entities and nanoentities to describe the applications structure as its first and mandatory input.

    We assume you have a CML file with your model in your IDE with Context Mapper installed. In the context menu of the editor you find the action Generate Service Cutter Input (ERD as JSON). By running this command, you generate the Service Cutter ERD file in the required JSON format:

    Generate ServiceCutter ERD File

    Generate SCL File

    The second input file for Service Cutter deals with additional user representations. Service Cutter takes them in JSON format, but we implemented another DSL which makes it easier to edit them (since Context Mapper v6.x.x not really necessary anymore, since we can generate the complete file out of your CML model). These files have the file extension *.scl* (for Service Cutter Language).

    An SCL file can be generated out of a CML file. Again, a right-click in the CML editor will allow you to call the action Generate Service Cutter User Representations (SCL):

    Generate ServiceCutter SCL File

    The SCL grammar allows you to describe all user representations supported by Service Cutter:

    • Entity Relationship Model (ERM)
    • Use Cases
    • Shared Owner Groups
    • Aggregates
    • Entities
    • Predefined Services
    • Separated Security Zones
    • Security Access Groups
    • Compatibilities

    Note: As explained here, you don’t have to edit the SCL file manually! Since Context Mapper v6.x.x all user representations are generated from the CML model. This page describes which CML features you have to use so that Context Mapper will generate them for you.

    Examplary SCL File

    In case you want to create an SCL file manually, you can generate an exemplary SCL file that illustrates the syntax for all possible representations. Just call the Generate Service Cutter User Representation Example File (SCL) action to generate an example:

    Generate Exemplary SCL File

    Note: This generated SCL file is only exemplary and only intended to help you understanding the grammar.

    Generate User Representations JSON File

    Once you have generated/prepared your SCL file, you can generate the corresponding JSON file with the action Generate Service Cutter User Representation JSON File in the context menu:

    Generate ServiceCutter JSON out of SCL File

    Using the JSON files in Service Cutter

    Now you have both JSON files that are required for the Service Cutter tool, generated into the src-gen folder:

    Generated JSON files for Service Cutter

    Have fun with cutting your services :)

    Note: Service Cutter has not been updated in a while, and only intended to demonstrate the possibilities of criteria-based graph clustering in the context of service decomposition (and establish a method and a first catalog of criteria). So do not expect mature, production-ready cuts to be suggested, but view them as a discussion and design workshop input. Further research is required to harden the approach; such research is ongoing (evidence: 40+ citations of the Service Cutter paper presented at ESOCC 2016).

    Service Cutter Insurance Example

    Further Links

    Note that you can also generate new service cuts in Context Mapper directly without using Service Cutter! We integrated the Service Cutter library into Context Mapper so that our users are able to generate new service decompositions out of CML models easily.

    • Have a look at our Systematic Service Decomposition with Context Mapper and Service Cutter tutorial.
    Improve this page on GitHub
    ← PreviousMDSL (Micro-)Service Contracts Generator Next →Generic Generator (Templating)
    © 2026 Context Mapper contributors
    • GitHub
    • Get Involved
    • Background & Publications
    • RSS