SynthML is a tool designed for formal modeling, analysis, and synthesis of UML activities. The aim of SynthML is integrating Synthesis-Based Engineering (SBE) into UML 2.5 for the synthesis of supervisory controllers as UML activities. Such an integration lowers the need for architects and engineers in industry to learn new formalisms and dedicated tooling for SBE. Moreover, the synthesized supervisory controllers are presented as UML activities, which helps to make synthesis results more recognizable. Overall, the integration of SBE into UML may help to lower the industry adoption threshold for SBE.
SynthML is an extension of UML Designer, adding formal annotations (like guards and effects for actions, and control flow guards), a formal execution semantics for activities, simulation capabilities (via the Cameo Simulation Toolkit), and activity synthesis capabilities. The activity synthesis algorithm uses the symbolic synthesis tool of CIF for synthesizing a supervisory controller, and uses the Petri net synthesis tool Petrify to translate the controlled system in CIF to a Petri net, as a stepping stone towards translating the controlled system to a UML activity.
For further information on the vision and approach for integrating SBE into UML-based development processes, we refer to the following article:
- Wytse Oortwijn, Yuri Blankenstein, Jos Hegge, Dennis Hendriks, Pierre van de Laar, Bram van der Sanden, Laura van Veen, and Nan Yang, "Towards Synthesis-Based Engineering for Cyber-Physical Production Systems", 13th International Conference on Model-Based Software and Systems Engineering (MODELSWARD), pages 158-168, 2025, doi: 10.5220/0013103300003896.
For end users:
- Instructions for using SynthML.
- An activity synthesis example, consisting of two robots that must together visit a number of locations exactly once.
For developers:
- Setting up a SynthML development environment.
- Development guidelines.
- The formal definition of the execution semantics of activities in SynthML.
- Detailed information on how the activity synthesis algorithm works.
Copyright (c) 2023-2025 TNO and Contributors to the GitHub community
This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0.
SPDX-License-Identifier: EPL-2.0