How to generate state machine code from UML

Once the state machine has been modelled, you can generate state machine code from that model. The Code Generator can be fully controlled by a number of command line flags and parameters and a configuration file.

Example: Generate C code from Cadifra modelling tool

C:\>c:\jdk-11\bin\java.exe -cp "c:\sinelaboreRT5.0\bin\*" codegen.Main -p CADIFRA -l cx -o oven first_example_step3.cdd

Example: Generate CPP code from Enterprise Architect modelling tool

java "$(CODEGEN_PATH)/*" codegen.Main -l cppx -p EA -t "Model:implementation:oven" -o oven oven.xml

Here is a list of all supported command line flags and parameters:

java -cp "path_to_jar_file/*" codegen.Main Usage: java -cp "PATH-TO-JAR/*" codegen.Main [-xls] [-gencfg] [-doxygen] [-Trace] [-verbose] [-U configfile] [-t route:to:class] [-Lstates] [-Levents] [-l cppx|cx|SSC|java|swift|csharp|lua|python|rust|go] [-A] [-s|-S|-E] [-c|-c1] [-p EA|MD|CADIFRA|UMODEL|ARGOUML|SSC|ASTAH|VP|Modelio|MM|PlantUML|DrawIO] [-o outfilename] modelfilname
Flag	Description
-t	In case a XMI file shall be parsed the path to the class that contains the state machine definition must be specified. This option allows you to model more than one state-based class and then generate one after the other by calling the code-generator with the corresponding path.
-p	Defines the used input format e.g. EA for Enterprise Architect.
-o <file>	Output filename (excluding file extension.
-l	Target language -l cx or -l cppx for example.
-Trace	Activates the generation of trace code.
-gencfg	Prints out all configuration options for a specific lan- guage (use -l to define the language).
-verbose	Enables the output of information messages during parsing and code generation
-c or c1	Print transition coverage information and creates an Excel sheet with test routes. -c uses a depth-first tree search algorithm which produces fewer but longer test routes. -c1 uses a breadth first algorithm which creates more but shorter test routes.
-U <file>	Path and name of the codegen configuration file.
-L <file>	Path and name of the license file
-Lstates	List the states in the model on the console.
-Levents	List the events in the model on the console.
-xls	Creates a state table in Excel format
-doxygen	Creates a dot based description of the state diagram as part of the C/CPP file. This allows Doxygen to add a state machine diagram to the software documentation.
-s	Start in interactive simulation mode. Also consider to use the -v flag in addition which enables the printout of the executed C-code per simulation step.
-S	Start simulation in graphical interactive mode.
-E	Start the integrated state diagram editor.