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.
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:
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 nahtlose Nutzung von Modellen erleichtert eine sehr konsistente und effiziente Entwicklung.
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.
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
Schreiben Sie einen Kommentar