View Excerpts
  View Full Text

Embedded Engineer modelling Activities for Code generation

We recently had a lot of discussion on topics around Acitivity Diagrams for code generation with LieberLieber Embedded Engineer 2.1 for Sparx Systems Enterprise Architect.

So we’ve documented a little more in our help page.

The short version:

  • Guards can only be used together with decision actions.
  • Each decision should have a merge and this should be “nested” properly

Keep in mind that we need to generate nested “if else” statements into the code to make it executable with a language like C.

Some Samples from our updated help page:

Some Examples How to Model If – Else – Paths

Invalid Approach

This example is another invalid approach for modelling an if – else if path, similar to the example shown above:

In the diagram, you can see the code that would result from this model, if code generation would be performed. Again, a goto statement would be needed, which is invalid.

Apart from that, a merge node is missing before final node.

Solution 1

One possible approach of modelling if – else paths could be:

Solution 2

Another possible approach of modelling if – else paths could be:

LieberLieber Embedded Engineer 2.1 for Sparx Systems Enterprise Architect

2 Weeks ago we released our latest version of Embedded Engineer for Sparx Systems Enterprise Architect 2.1 – you can get a Trial here.

This release focused on incorporating feedback from our global user base.

Main Areas:

  1. Improved documentation
  2. Code Structure
  3. Advanced Usage Relationships
  4. Qt Support

@1 Improved documentation

@2 Code Structure

  • Clang FormattingEmbedded Engineer now supports full set of Clang Format options (v.4.0.0). This can be used to heavily adjust the generated code in terms of style, i.e. you can specify the maximum number of characters per line by setting parameter “ColumnLimit” to avoid unintended linebreaks.

@3 Advanced Usage Relationships

  • Global includes – EE now offers additional stereotypes to support global include relationships (i.e. #include <stdio>) and standard library notation (include without .h – file extension).
  • Custom Extensions for header files -When applying TaggedValue „CustomExtension“ on usage connectors, you can specify the file extension of included header file, i.e. .hxx, .hpp.
  • Namespaces – When applying TaggedValue „UsingNamespace“ on usage connectors,you can specify a namespace which should be used in generated code of the class.
  • Configurable location for include statements – By applying model setting parameter “Generate includes in .c file“, you can choose if includes should be generated in header or c – file.
  • Specify order of includes / usings -By naming the relationships in the properties dialog general tab, include statements are ordered alphabetically by their name.

Embedded Engineer now supports generation of Qt Framework compliant code!

@4 Qt Support

  • QObject derived classes – Sterotype added in 2.1
  • Member functions as slots and signals -Sterotype added in 2.1

EA User Group Burssels October 2017 – Final Programme confirmed!

Final Programme confirmed!

Just one week to go.
Now there’s no excuse… book your place today!


THURSDAY 5th October

FRIDAY 6th October


  • €500 – For the training day on Thursday October 5th.
  • €75  -  For the presentations on Friday October 6th.
  • €525 – For the full 2 day event.

To include Refreshments, lunches, and more.

Join us to share your insights and to be inspired!

User Group in Brussels

The next Enterprise Architect User Group (EAUG) will be a two day event in Brussels, Thursday 5th and Friday 6th October 2017. The frist day will be an EA training day with a small number of in-depth sessions led by approved EA training partners. October 6th will be the „traditional“ EAUG event day with presentations,case studies and user stories. On this day our CEO Daniel Siegl will talk about „Deriving code from models for the sake of traceability“ (14.35 – 15.20).

Joint he EAUG community and book your ticket right now.



Flooding in Houston, Texas

LieberLieber Software Corp remains reachable via email throughout the current State of Emergency in Houston, Texas and surrounding areas. Our hearts go out to those persons and families trapped in their homes or experiencing personal tragedy brought upon them by the effects of Hurricane Harvey. Likewise, we express our deepest gratitude to public authorities and private individuals who are placing their own lives in danger to help thousands of Houstonians in distress.

Daniel Siegl

Webinar: Modeling Basics

If you’re just getting started with modeling for analysis and design, this session from Sparx Systems is for you! We’ll step you through how to create your first modeling project in Enterprise Architect. We’ll also explain some basic modeling concepts along the way, such as how elements in the model hierarchy relate to the diagrams you draw.

In this webinar you’ll learn:

  • How to create a new modeling project in Enterprise Architect
  • The role of elements in the model hierarchy and diagram views
  • Some easy ways to share your work with other stakeholders

To suit users in different time zones, we will hold 2 sessions – each 30 minutes in duration (August 29/August 30)

Register right here.

Enterprise Architect-logoTransparent


Modelle erleichtern agile Systementwicklung

In einem Blogeintrag beschreibt Michael Jastram, wie Modelle den Anwender dabei unterstützen, den vier Forderungen des Agilen Manifests gerecht zu werden:

- Individuen und Interaktionen mehr als Prozesse und Werkzeuge: Im Modell lassen sich die Diskussionen über durchgeführte Veränderungen jederzeit nachvollziehen

- Funktionierende Systeme mehr als umfassende Dokumentation: Bei der Modellierung wird die Dokumentation laufend mitgeführt und verursacht keinen zuästzlichen Aufwand

- Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung: Modelle erleichtern durch die einfachere Verstänndlichkeit die Kommunikation mit Kunden

- Reagieren auf Veränderung mehr als das Befolgen eines Plans: Durch die feinere Granularität bei der Modellierung sind Änderungen leichter nachzuvollziehen

Der ganze Text findet sich hier.