SinelaboreRT Header Logo

SinelaboreRT

Productivity for embedded software development

User Tools

Site Tools


wiki:landing_pages:modelio

Generate production quality code from state diagrams created with Modelio

SinelaboreRT generates readable and maintainable code from hierarchical UML state machines created with Modelio. With its unique features the tool covers well the requirements of embedded real-time and low power application developers. With its new C++ and Java backend it is also a perfect tool for developers of server or desktop applications.

Key Features:

  • Automated robustness checks before code generation
  • No run-time environment needed
  • Can be used with any CPU and with or without OS/RTOS
  • Code generation especially for embedded real-time and high availability systems.
  • Fits well in different system designs (foreground/background, RTOS-based …)
  • No gap between design and code
  • Support for automatic test-case generation
  • Simulation in interactive or batch mode.
  • Optionally generating trace code
  • Generated code creates no trouble when using static code checkers

Watch the code generator in action

The following example shows how the code generator works by means of a simple microwave oven.

Requirements:

  • Cooking time can be adjusted from 0s and 60s.
  • Cooking starts if the cooking time is > 0s and the door is closed.
  • If the door is opened during cooking the microwave generator is switched off. The cooking time stops.
  • Cooking continuous if the cooking time is not over and the door is closed again
  • Cooking stops if the cooking time is over or the time is adjusted to zero.
  • Cooking time and power can be changed at any time.

The sate machine below shows a possible solution.

To generate for example C code just export your model to XMI and call the code generator as follows:

java -jar codegen.jar -p Modelio -t "Model:Class Model:first_example_step3" -o oven first_example_step3.xml

After checking the model against a set of well-formedness rules (e.g. no double state names) the complete state machine code is generated.

Done!

Look into the generated files: oven.c oven.h oven_ext.h

It is also possible to generate code from activity diagrams. As an example the selftest() function was modeled as activity diagram. It shows the supported node types and has no other function.

More complex examples to generate code from

Model with parallel regions.

Model with a sub-machine in state S2.

Supported state diagram features

  • Hierarchical states
  • Regions (CX language backend only)
  • Sub-machines in a top level state
  • (Signal-)Events with event name, guard and action
  • Initial and final pseudo-states
  • History states
  • Choices

Find out more about the code generator

Download the demo version and try it right now. It includes many other examples.

Modelio HowTo

:?:What options should I use for exporting a XMI file in Modelio 3

:!: Select the following options:

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
wiki/landing_pages/modelio.txt · Last modified: 2024/05/03 20:40 by webmin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki