Altova UModel 2025 Enterprise Edition

Generating code from State Machine diagrams

Home Prev Top Next

UModel can generate executable code from State Machine diagrams (C++, C#, Java, VB.NET). Almost all of the State Machine diagram elements and features are supported:

 

State

CompositeState, with any hierarchical level

OrthogonalState, with any number of regions

Region

InitialState

FinalState

Transition

Guard

Trigger

Call-Event

Fork

Join

Choice

Junction

DeepHistory

ShallowHistory

Entry/exit/do actions

Effects

 

State Machine code generation is integrated into the "normal" round-trip engineering process. This means that State Machine code can be automatically updated on every forward-engineering process.

codeStm1

 

The screenshot above shows the AirCondition State Machine diagram which is available in the ..\StateMachineCodeGeneration directory under ...\UModelExamples. A separate directory exists for each of the code generation languages supported by UModel.

 

Each directory contains an AirCondition and Complex folder, which contains the respective UModel project, programming language project files, as well as the generated source files. The Complex.ump project file contains almost all of the modeling elements and functionality that UModel supports when generating code from State Machine diagrams.

 

Each directory also contains a test application, e.g. TestSTMAirCondition.sln for C#, allowing you to work with the generated source files immediately.

state-mach-app

To generate code from a State Machine diagram:

Right-click in the State Machine diagram and select "Generate State Machine code", or

Select the menu option Project | Generate State Machine Code

codeStm12

The default settings are shown above. Click OK to generate the code.

 

State Machine code is automatically updated when you start the forward engineering process. You can however change this setting by clicking on the State Machine diagram background and clicking the "Automatic Update Code" check box.

 

Changes should not be made manually in the generated code, as these changes are not reflected in the State Machine diagram during the reverse-engineering process.

codeStm13

Clicking the ic-more icon of the Automatic Update field, opens the Generate State Machine Code dialog box, allowing you to change the code generation settings.

To perform a syntax check on a State Machine diagram:

Right-click the diagram and selecting Check State Machine Syntax from the context menu.

© 2018-2024 Altova GmbH