en / de
Expertisen
Methoden
Dienstleistungen
Referenzen
Jobs & Karriere
Firma
Technologie-Trends TechCast WebCast TechBlog News Events Academy

Automatische Code-Generierung – ein Erfahrungsbericht

Die automische Code-Generierung klingt für mich erstmals sehr vielversprechend. Der Begriff suggeriert, dass ich als Entwickler viel weniger Arbeit habe! Im Folgenden berichte ich über meine Erfahrungen mit automatischer Code-Generierung im medizintechnischen Umfeld.

Worum geht es?

Mittels CASE-Tools (Computer Aided Software Engineering) wird aus einem Modell Code generiert. Weit verbreitet – gerade im Embedded-Umfeld – ist hierzu die grafische Notation UML (Unified Modeling Language). Ein Beispiel für ein CASE-Tool ist Rational Rhapsody von IBM. Mit diesem oder ähnlichen Tools, wird die Architektur bzw. das Design der Software grafisch dargestellt. Dabei können verschiedene Abstraktionsstufen dargestellt und verfeinert werden. Das CASE-Tool kann auch lediglich den Rumpf der Software erstellen. Dies erspart einem das oft fehleranfällige Erstellen von «boilerplate code». Die Logik wird dann in einem herkömmlichen Editor (kann im CASE-Tool integriert sein) implementiert. Rhapsody beispielsweise lässt es auch zu, dass man die Logik grafisch entwirft. Hierzu werden weitere UML-Diagrammtypen, wie etwa Sequenzdiagramme, genutzt.

Die Vorteile eines ganzheitlichen Modells liegen auf der Hand:

Im regulatorischen Umfeld

Die IEC 61508-3:2010 nennt in Anhang A, Tabelle A.2 die «Automatische Softwaregenerierung» als für alle SILs empfehlenswertes Verfahren. Die Norm hält fest:
Der Systementwurf wird mit einem Modell […] auf einer höheren Abstraktionsebene beschrieben als der herkömmlich ausführbare Code. […] Das Ziel ist, die Softwarequalität durch Beseitigung der fehleranfälligen manuellen Aufgaben beim Codieren zu verbessern.
Die ISO 26262 geht detailliert auf die Nutzung von automatischer Code-Generierung ein und fasst zusammen:
Die nahtlose Nutzung von Modellen erleichtert eine sehr konsistente und effiziente Entwicklung.

Erfahrungen

Im aktuellen Projekt wurde mittels Rhapsody ausführbarer Code erzeugt. Dabei wurde die Architektur und das Design der Software in Rhapsody mittels UML grafisch erfasst und verfeinert. Die Logik der Klassen wurde dann auf herkömmliche Weise im Rhapsody-Editor in C++ codiert.

Vorteile

Herausforderungen

Fazit

Die modellgetriebene Software-Entwicklung bietet viele Vorteile:

Doch die Einarbeitung in UML und das Tool zur automatischen Code-Generierung ist nicht zu unterschätzen. Die hohen Lizenzkosten können ebenfalls abschreckend wirken. Der Code-Editor von Rhapsody ist nicht mehr auf dem neusten Stand. Gängige kostenlose Editoren bieten hier viel mehr – bspw. der Qt Creator wie in diesem Projekt.

Zusammenfassend werden viele Vorteile der automatischen Code-Generierung durch das herkömmliche Codieren der Logik zunichte gemacht. Auf diese Weise erscheint mir der Aufwand grösser als der Ertrag. Es empfiehlt sich hier zumindest die Möglichkeit des Code Roundtrip zu nutzen. Dabei erstellt Rhapsody den Rumpf der Software und das manuelle Codieren erfolgt in einem Editor nach Wahl. Rhapsody importiert diesen Code dann zurück, um das Modell konsistent zu halten. Auf diese Weise kann zumindest von den Vorzügen eines modernen Editors profitiert werden.

Titelbild: Foto von Brett Jordan von Pexels

Kommentare

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Newsletter - aktuelle Angebote, exklusive Tipps und spannende Neuigkeiten

 Jetzt anmelden
NACH OBEN
Zur Webcast Übersicht