LieberLieber Embedded Engineer for Enterprise Architect has been successfully used in modelling for over ten years. It is continuously updated and is now available in version 3.5.4. In addition to improved code generation, Embedded Engineer also has functions that simplify the modelling of applications.
DThe tool consists of three modules:
- Code-Generator
- UML debugger
- Automation module
Open System
Embedded Engineer comes with a UML profile for your model, providing quick access to the most commonly used elements for code generation.
Embedded Engineer is target-independent and therefore does not restrict users to a specific hardware, framework or compiler. The generic language implementation allows the user to use any language feature and any compiler. All new and old language features can be added to the code/model using the Embedded Engineer UML profile.
Generate optimised low-code
Embedded Engineer was developed to generate resource-saving and efficient C/C++ code from behavioural models:
- Structural elements
o Packages
o Classes
- Behaviours
o Activities
o State machines
The following image shows the main structure that is required in the model in order to successfully generate code. The starting point is always a package with classes, interfaces, etc. These in turn contain the activities, state machines and operations that define the behaviour.

LieberLieber UML Debugger
With the UML debugger included in Embedded Engineer, LieberLieber has solved a problem that has characterised several generations of code generation tools. In the early days, debugging was only possible at assembler level, but in recent decades this central step in software development has taken place directly in the programming language. Today, we find ourselves in a similar situation in model-based development: development takes place at UML model level, with debugging then taking place in C or C++. With the UML debugger, debugging takes place directly at model level, which represents a major development step in model-based development.
The UML debugger consists of its own project browser, a diagram viewer and a source code viewer. Once the generated code has been transferred to the hardware, the UML debugger enables the code to be debugged directly in the model. The debugger automatically synchronises the model with the source code and allows the developer to follow the execution on both levels simultaneously.
Code synchronisation: synchronising existing and new code
LieberLieber is of the opinion that it is not sensible or efficient to create the entire application from scratch in order to realise a continuous model-based approach. Rather, existing code should continue to be used, while other parts of the software are developed using the advantages of UML (e.g. a state machine as an integral part of the model). Even though model-based development has many advantages, some parts can be developed more quickly in the source code editor. The ‘User Code Synchronisation’ included in Embedded Engineer offers a powerful option for synchronising the new, handwritten code with the model. The tool clearly marks the areas in the source code that can be safely edited by the developer at any time.
NeW Features in Embedded Engineer 3.5.4
- Changed ifndef class closing comment for better code analysis results
- Updated TrafficLight example model
- Decreased unnecessary logging to system eventlog
- Updated tool internal code certificate