Codegenerierung auf Anwendungsgebiet abgestimmt

13. Juli 2007, 10:44 Uhr | Cord Giese und Dr. Juha-Pekka Tolvanen
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 4

Ein Fallbeispiel: Scheibenwischersteuerung

Die Mächtigkeit des DSM-Ansatzes wird hier anhand einer Steuereinheit für Scheibenwischer gezeigt. Demonstriert werden nur die Definition der Sprache und die Erstellung des Generators – also die Aufgaben, mit denen ein erfahrener Entwickler konfrontiert ist (Bild 1).

Der eingesetzte Mikrocontroller ist ein AVR 128 8-bit-RISC-Prozessor mit 128 Kbyte Daten-Flash und 4 Kbyte SRAM. Die Software, die auf dieser Steuereinheit läuft, besteht aus dem Betriebssystem PURE, einem generischen Hardware-Abstraction-Layer, sowie mehreren zu generierenden C++-Klassen. Neben dem Mikrocontroller umfasst dieses System noch einen Multifunktionshebel, einen Zündschlüssel, einen Motor für jeden Scheibenwischer, einen optionalen Drehschalter und mehrere optionale Sensoren (Regen, Tür, Motorhaube, Außentemperatur, Geschwindigkeit). Das System soll ein oder zwei Frontscheibenwischer unterstützen, sowie einen optionalen Heckscheibenwischer. Für die Befestigung der Frontscheibenwischer stehen drei Einbaupositionen zur Auswahl (links, mittig und rechts). Die Verwendung einer domänenspezifischen Sprache und eines Frameworks führt zu einer schnellen und zuverlässigen Implementierung dieser Features, ohne jedes einzelne manuell codieren zu müssen.

Eine vollständige Codegenerierung aus Modellen setzt eine adäquate Beschreibung der Problem-Domäne durch die Modellierungssprache voraus. Deshalb muss erst die Modellierungssprache definiert werden. Zunächst sind die Konzepte der Domäne sowie die für die Spezifizierung der Scheibenwischersteuerung und ihrer unterschiedlichen Features relevanten Regeln zu identifizieren. Die Konzepte lassen sich aus der zugrunde liegenden Systemarchitektur sowie aus den verschiedenen Services ableiten, die sie bereitstellt. Diese Services sind mit den Anwendungsfällen („Use Cases“) aus der klassischen objektorientierten Analyse vergleichbar. So kann der Service „Zündung aus“ zu der Antwort „Stopp Wischvorgang“ führen. Es ist ein optionales Feature, ob in diesem Fall der sich bewegende Wischerarm in seine Startposition zurückkehrt. Genauer gesagt umfasst eine Event-Liste Vorbedingungen, Anforderungen, I/O-Angaben und Randbedingungen für die beschriebenen Ereignisse.

Diese zentralen Eigenschaften der Domäne werden auf Objekte der Modellierungssprache abgebildet. Andere Eigenschaften werden als Objekteigenschaften, als Verbindungen, als Sub-Modelle oder als Verweise zu Modellen in anderen Sprachen erfasst. Beispielsweise wird das Domänen-Konzept „Scheibenwischer“ in der Modellierungssprache als Modellierungsobjekt präsentiert. Um den Anforderungen der Spezifikation und der Codegenerierung zu entsprechen, können den Elementen der Modellierungssprache zusätzliche Attribute hinzugefügt werden. Für die Scheibenwischersteuerung lässt sich der Sensor z.B. als Geschwindigkeitssensor oder als Temperatursensor spezifizieren.


  1. Codegenerierung auf Anwendungsgebiet abgestimmt
  2. Codegenerierung auf Anwendungsgebiet abgestimmt
  3. Codegenerierung auf Anwendungsgebiet abgestimmt
  4. Eine Notation als Abschluss der Sprachdefinition
  5. Ein Fallbeispiel: Scheibenwischersteuerung

Jetzt kostenfreie Newsletter bestellen!