Seit über zehn Jahren ist der LieberLieber Embedded Engineer für Enterprise Architect in der Modellierung erfolgreich im Einsatz. Er wird laufend aktualisiert und liegt nun in der Version 3.5.4 vor. Neben der verbesserten Codegenerierung verfügt Embedded Engineer auch über Funktionen, die die Modellierung von Anwendungen vereinfachen.

Das Werkzeug besteht aus drei Modulen:

  • Code-Generator
  • UML-Debugger
  • Automatisierung

Offenes System

Embedded Engineer wird mit einem UML-Profil für Ihr Modell geliefert, das einen schnellen Zugriff auf die am häufigsten verwendeten Elemente für die Codegenerierung ermöglicht.

Embedded Engineer ist zielunabhängig und schränkt Anwender daher nicht auf eine bestimmte Hardware, ein bestimmtes Framework oder einen bestimmten Compiler ein. Durch die generische Sprachimplementierung erhält der Nutzer die Möglichkeit, jedes Sprachfeature und jeden Compiler zu verwenden. Alle neuen und alten Sprachmerkmale lassen sich dem Code/Modell mit Hilfe des Embedded Engineer UML Profil hinzufügen.

Optimierten Low-Code erzeugen

Embedded Engineer wurde entwickelt, um ressourcenschonenden und effizienten C/C++-Code aus Verhaltensmodellen zu erzeugen:

  • Strukturelle Elemente

o Pakete
o Klassen

  • Verhaltensweisen

o Aktivitäten
o Zustandsautomaten

Das folgende Bild zeigt die Hauptstruktur, die im Modell benötigt wird, um erfolgreich Code zu generieren. Ausgangspunkt ist immer ein Paket mit Klassen, Schnittstellen etc. In diesen sind wiederum die Aktivitäten, Zustandsmaschinen und Operationen enthalten, die das Verhalten definieren.

LieberLieber UML Debugger

Mit dem in Embedded Engineer enthaltenen UML Debugger hat LieberLieber ein Problem gelöst, das mehrere Generationen von Code-Generierungs-Werkzeugen prägte. War nämlich Debugging in den Anfangszeiten nur auf Assembler-Ebene möglich, so erfolgte dieser zentrale Schritt der Softwareentwicklung in den letzten Jahrzehnten direkt in der Programmiersprache. Auch in der modellbasierten Entwicklung befinden wir uns heute in einer ähnlichen Situation: Die Entwicklung findet auf UML-Modell-Ebene statt, das Debugging dann in C oder C++. Mit dem UML Debugger erfolgt das Debugging direkt auf Modell-Ebene, was einen großen Entwicklungsschritt in der modellbasierten Entwicklung darstellt.

Der UML Debugger besteht aus einem eigenen Projektbrowser, einem Diagramm- sowie einem Source-Code Anzeiger. Gleich nach der Übertragung des erzeugten Codes auf die Hardware ermöglicht es also der UML Debugger, den Code direkt im Modell zu debuggen. Der Debugger sorgt automatisch für die Synchronisation des Modells mit dem Source-Code und erlaubt es dem Entwickler, der Ausführung auf beiden Ebenen gleichzeitig zu folgen.

Code Synchronisation: Bestehenden und neuen Code synchronisieren

LieberLieber ist der Auffassung, dass es nicht sinnvoll und effizient ist, die gesamte Applikation neu zu erstellen, um einen durchgehenden modellbasierten Ansatz zu verwirklichen. Vielmehr soll bereits bestehender Code weiterverwendet werden, während andere Teile der Software unter Nutzung der Vorteile der UML entwickelt werden (z.B. ein Zustandsautomat als integraler Bestandteil des Modells). Auch wenn die modellbasierte Entwicklung viele Vorteile mit sich bringt, lassen sich manche Teile doch schneller im Source Code Editor entwickeln. Die in Embedded Engineer enthaltene „User Code Synchronisation“ bietet eine leistungsfähige Möglichkeit zur Synchronisierung des neuen, handgeschriebenen Codes mit dem Modell. Dafür markiert das Tool deutlich die Bereiche im Source Code, die durch den Entwickler jederzeit sicher editiert werden können.

Neue Features in Embedded Engineer 3.5.4

  • Geänderter ifndef Kommentar (class closing) für bessere Code-Analyseergebnisse
  • Aktualisiertes TrafficLight-Beispielmodell
  • Unnötige Protokollierung in das System-Eventlog wurde reduziert
  • Tool internes Code-Zertifikat erneuert