Context Map Suggestions with Service Cutter
The Service Cutter tool offers a structured way to service decomposition. It creates suggestions how a system could be decomposed into services on the basis of coupling criteria and graph clustering algorithms.
Context Mapper Integration
With our Service Cutter library which is a fork of the original Service Cutter we integrated the structured decomposition approach into Context Mapper. It allows you to generate new decomposition suggestions in the form of CML Context Maps. The decompositions are derived on the basis of the original coupling criteria catalog.
Input and Preconditions
Service Cutter needs the system to be described in entities and so-called nanoentities. This structure is automatically derived from your CML model. In addition, you can provide user representations (use cases etc.) to improve the quality of the cuts. Thus, you can generate new Context Maps describing service decompositions with the following input:
- CML file describing your system
- Optionally: User descriptions in form of a SCL (Service Cutter language) file.
- You can find out here how to create such file.
The following preconditions have to be fulfilled so that we are able to derive the structure (ERD) required by Service Cutter:
- Your CML model must describe the Bounded Contexts including entities and attributes.
- Without attributes we cannot derive nanoentities and Service Cutter cannot calculate decompositions.
Note that if the Leung algorithm is used, the decompositions can be different every time the generator is called (non-deterministic algorithm).
A dialog will allow you to configure the following inputs needed by Service Cutter:
- The algorithm: Currently we only provide one algorithm, but others will be added in future releases (the Girvan-Newman algorithm supported by Service Cutter cannot be integrated into Context Mapper due to licence issues).
- Coupling criteria priorities: You can customize the priority of each coupling criterion, as you can do it in Service Cutter.
- User representations (optional): The user representations can be provided with our SCL (Service Cutter Language) DSL. Here you can find out how to create/generate such a file.
By finishing the wizard illustrated above Context Mapper will create a new CML file with a new decomposition suggestion. Note that the Leung algorithm is non-deterministic and will derive new decompositions every time you execute it. This is an example decomposition generated for the DDD cargo sample application:
Please note that the resulting model does not contain the original data types. We currently loose this information through the cutting process. However, the results still show how the entities are mapped to Bounded Contexts and how the single attributes are mapped to the entities.
Service Cutter Input File Generators