Model Driven SW Engineering

Abstraktion ist der mächtigste Mechanismus Komplexität zu begegnen. Abstraktion greift im Wesentlichen auf Muster und grafische Darstellung zurück. Auf Basis von Mustern kann unser Gehirn einmal gelernte komplizierte Konstrukte schnell assoziieren. Die grafische Darstellung abstrahiert deren Zusammenwirken auf Basis von verschiedenen Diagrammen hinsichtlich Zeit, Datenfluss, logischem Verhalten und statischem Design.
Die UML folgt diesem Ansatz. Sie fasst unter einem Notationselement (Objekt, Klasse, Port) ein in sich kompliziertes Muster zu einem Symbol zusammen. Das komplexe Zusammenwirken verschiedener Muster wird wiederum in verschiedenen Diagrammen dargestellt und liefert damit die Voraussetzung zum Verständnis komplexer Systeme.

Grph - Streichoelzer als Muster.png

Willert Embedded UML RXF

Der Funktionsumfang der Notation UML geht weit über den Funktionsumfang von so genanten 3GL Notationen (C, C++, Pascal, COBOL ...) hinaus. Zum Beispiel werden in der UML Muster, wie Instanziierung, parallele Tasks, Mailboxen, Timer etc. unterstützt.

Soll nun das UML Modell in Code für eine 3 GL Notation, wie z.B. ANSI C oder C++, transfomiert werden (Code Generierung), dann fehlen dem Code Generator, z.B. ANSI C, verschiedene entsprechende Notationselemente. Zum Beispiel für die Nutzung eines Timers kennen weder C noch C++ entsprechende Notationselemente.

Rein formal betrachtet ist es also nicht möglich die UML vollständig in C oder C++ zu transformieren, ohne den Umfang der 3GL Notationen durch Programm-Muster zu erweitern. Und genau das macht unser RXF (Realtime eXecution Framework).

Das RXF ist eine Bibliothek mit C bzw. C++ Funktionen, die dem Codegenerator für alle UML Notationselemente zur Verfügung gestellt werden, zu denen es in C bzw. C++ keine Entsprechungen gibt.

Aber das RXF macht noch mehr. Es kapselt alle proprietären Abhängigkeiten von CPU, Compiler, RTOS und IDE in Adaptern. Eigentlich bildet es gegenüber dem UML Modell eine Abstraktionsschicht. Das hat den Vorteil, dass sich Änderungen in der Hardware Plattform und den dazugehörigen Werkzeugen weitestgehend vom UML Modell entkoppelt bleiben.

In folgender Abbildung sind alle benötigten Komponenten schematisch abgebildet, die zu einer vollständigen Umgebung für MDSE benötigt werden.

 

Embedded UML Studio Components Overview

 

Ergänzende Infos

RXF Produktliste

Produktliste

 

Ansprechpartner

Herr Walter van der Heiden

+49 5722 9678 64

Managements Interest

Abstraktions Schichten sind einer der mächtigsten Hilfsmittel, um den Aufwand bei Wiederverwendung von Komponenten zu reduzieren. Im Grunde beinhaltet die UML eine Abstraktion. Z.B. gibt es Notationselemente mit denen bisher proprietäre Dienste von RT Betriebssystemen nun standadisiert adressiert werden können.

Natürlich werden unterhalb des UML Modells immer noch proprietäre Betriebssysteme (RTOS) eingesetzt. Eine Zwischenschicht, das RXF, sorgt dafür, dass die UML Notationselemente in die jeweiligen Betriebssystem-Dienste konvertiert werden. Dasselbe gilt für Compiler und CPU- Abhängigeiten.

Aus dieser Abstratkion ergibt sich eine wesentlich reduzierte Plattformunabhängigkeit. Im Idealfall, können unterhalb eines UML Modells sowohl CPU als auch Compiler und RTOS ausgetauscht werden ohne jegliche Änderung am Modell. Alle Unterschiede sind im RXF gekapselt. Natürlich müssen die jeweiligen Adapter im RXF angepasst werden. Aber davon stehen als Open Source schon Dutzende an Anpassungen zur freien Verfügung.