Vom Nutzen der Modelle
Die Entwicklung von Embedded Systems wird aufwendiger. Grafische Modellierungssprachen und dazu passende Werkzeuge können helfen, die Komplexität in den Griff zu bekommen. Allerdings müssen einige grundsätzliche Dinge beachtet werden, um den Nutzen von Modellen wirklich auszuschöpfen.
? In die Erstellung einer textuellen Spezifikation fließt im Grunde derselbe Aufwand wie in eine modellbasierte Spezifikation.
? Zum Einstieg in die Modellierung sind die Hürden der Modellierungssprache und des gewählten Werkzeugs zu überwinden.
? Der Vorteil von Modellen liegt in den Automatismen, die darauf anwendbar sind.
? Es ist wichtig, sich zu Beginn einer modellbasierten Entwicklung auf ein Referenzmodell zu einigen.
((Kastenende))
@Kasten Grundschrift:? Die verwendete Modellierungssprache
? Das ausgewählte Modellierungs-Werkzeug
? Die Vorgehensmethode: Um ein Modell effizient erstellen zu können, sollte man eine definierten Struktur (Referenzmodell) folgen und Anfang und Ende des Modellierungsvorgangs festlegen. Dafür existieren Best-Practice Lösungen, aus denen sich der eigene Modellierungsansatz ableiten lässt.
? Die erforderliche Erfahrung
? Firmeninterne Prozesse: Zur Etablierung eines Modellierungsansatzes im Unternehmen müssen bestimmte Richtlinien und Bedingungen definiert und eingehalten werden. So sind zum Beispiel oft Anforderungen in einem bereits vorhandenen System erfasst und können von dort übernommen werden. Um einen Bruch in der Informationskette zu vermeiden ist darüber hinaus die nahtlose Integration zwischen den Werkzeugen erforderlich.
In meinen Kursen stelle ich zu Beginn gerne die Frage: Warum modellieren wir eigentlich? Als Antworten höre ich z. B. "Weil wir es müssen", "Unsere Software muss auch dokumentiert werden" etc. Diese Antworten zeigen mir, dass die Vorteile eines Modellierungsansatzes (im Vergleich mit dem klassischen, textbasierten Ansatz) meist nicht umfassend gesehen werden. Daher habe ich nun ein Whitepaper erstellt, dass die einzelnen Aspekte näher beleuchtet. Nur mit einer möglichst umfassenden Sicht lässt sich nämlich abschätzen, welcher Modellierungsansatz für ein Unternehmen geeignet ist. Die Frage nach dem Vorteil von modellbasierten Ansätzen ist grundsätzlich einfach zu beantworten. Um über die Inhalte eines Dokuments diskutieren zu können, müssen wir bei einer textuellen Beschreibung viele Seite lesen. Haben wir darüber hinaus Bilder verwendet, die keinem Standard entsprechen, sind auch diese meist erklärungsbedürftig. Bei Modellen dagegen, die mit standardisierten Modellierungssprachen (z.B. UML/SysML) erstellt wurden, folgen die Symbole einer definierten Semantik. Der Begleittext ist kurz und knapp den betreffenden Modell-Elementen zu entnehmen und damit leicht lesbar. Ein (richtig erstelltes) Modell/Diagramm ist nicht überfrachtet, beantwortet genau die Fragen einer bestimmten Personengruppe und dient als Grundlage für die Diskussion. Ein Modell kann also zur zentralen Informationsquelle ausgebaut werden, aus der sich unterschiedlichste Artefakte (Dokumente, Code, Schemata, etc.) automatisch generieren lassen. Das Modell dient als zentrale Informationsquelle und lässt sich automatisiert weiterverarbeiten.
Ein umfassendes Bild
von Modellen
Wenn wir von Modellen und Modellierungssprachen sprechen, haben viele (je nach Erfahrung) gleich ein bestimmtes Bild im Kopf. Verfügt man über keine einschlägigen Vorkenntnisse, besteht dennoch oft eine Vermutung, wozu sich grafische Modelle verwenden lassen. Die Verwendungsmöglichkeiten und der Zweck von grafischen Modellen sind nach meiner Erfahrung aber oft sehr unterschiedlich. Die meisten der bestehenden Vorstellungen von grafischen Modellen sind zwar zutreffend, beschreiben aber oft nur einen bestimmten Aspekt und übersehen dabei viele weitere Nutzungsmöglichkeiten. Verallgemeinernd können wir sagen, Modelle sind strukturierte Daten, die einem Standard folgen und grafisch dargestellt werden können. Je nachdem, wer das Modell lesen soll, werden jeweils andere Informationen erwartet. Dieser Umstand führt uns direkt zu den zwei wichtigsten Fragen, die bei der Einführung von Modellierung zu stellen sind: Wer liest das Modell? Was soll aus dem Modell gelesen werden? Sie haben sicher gleich gemerkt, dass diese Fragen nicht nur für die Modellierung gelten, sondern auch bei einer textuellen Beschreibung gestellt werden sollten. Leider werden sie allerdings bei der Modellierung fast nie gestellt, da meist eine bestimmte Vorstellung vorhanden ist, was ein Modell können soll, bzw. wofür es eingesetzt wird. Eine detaillierte (oder gar vollständige) Beschreibung des Systems liegt allerdings in den wenigsten Fällen vor. Können wir diese zwei grundsätzlichen Fragen beantworten, wissen wir bereits, welche Information, auf welcher Abstraktionsebene und mit wie vielen Details im Modell vorhanden sein muss.
Ein Referenzmodell erstellen
Im ersten Schritt ist es also wichtig ein Beispielprojekt (Leuchtturm-Projekt) zu erstellen, mit dem alle gestellten Fragen beantwortet werden können. Dieses Beispielprojekt nennen wir 'Referenzmodell'. Damit Automatismen im Modell funktionieren, sind Modellierungsrichtlinien notwendig. Sie helfen dabei, den großen Spielraum, der durch die Modellierungssprache und das verwendete Werkzeugs gegeben ist, einzuschränken und das Arbeiten einfacher und überschaubarer zu machen. Das Referenzmodell ist also die Grundlage, aus der wir durch Anwendung einer bestimmten Methode unsere Richtlinien ableiten. Auf deren Grundlage wird das Modell automatisch überprüft, um anschließend alle anderen Artefakte ebenfalls automatisch und fehlerfrei aus dem Modell generieren zu können.
Das Modell als Basis
Im Unterschied zum textbasierten Ansatz beschreiben wir die Inhalte mit Modellen und generieren daraus elegant die textuelle Spezifikation. Natürlich werden wir die einzelnen Modellelemente auch mit Kommentaren - also Text - beschreiben, die anschließend automatisch in eine textuelle Spezifikation einfließen. So erhalten wir ein Dokument mit Diagrammen und der dazu passenden Beschreibung. Aus einem Modell lassen sich nicht nur mehrere Dokumente generieren, sondern auch mehrere Ziel-Modelle. Das Ausgangsmodell ist dabei in der Regel abstrakter als das Zielmodell. So entsteht z. B. aus einem logischen ein physisches Datenmodell und daraus die DDL Skripte, mit denen wir die Datenbank erstellen können. Neben Datenmodellen für Datenbanken lassen sich auch andere Modelle automatisch erstellen, aus denen anschließend Code oder andere Schemata (XSD, RDF, Jason, etc.) generiert werden können.
Code direkt aus dem Modell
Aus einem ausreichend vollständigen und richtigen Modell lässt sich automatisch Code generieren, wobei zwei grundlegende Ansätze zu unterscheiden sind:
1) Generische Code-Generatoren: Dafür benötigen wir ein Modell, das bereits sehr detailliert die Implementierung beschreibt und einen generischen Codegenerator, der aus jedem Modell dieser Abstraktionsebene Code generieren kann. Das Erstellen des detaillierten Modells ist meist aufwändig, der Code-Generator muss allerdings nicht angepasst werden.
2) Domänenspezifische Code-Generatoren: Hier wirken ein einfaches Modell einer höheren Abstraktionsebene sowie ein spezieller Code-Generator zusammen, der für ein Modell-Element des abstrakten Modells mit ein paar Zusatzinformationen, Code generiert. Das Modell ist meist einfacher zu erstellen und entspricht exakt unserer Domäne. In die Anpassung des Code-Generators muss einmalig mehr Aufwand investiert werden.
In Teil 2 des Beitrags, der in Ausgabe 6/2017 erscheint,
erfahren Sie mehr über die Verifikation und Simulation
von Modellen, sowie die wichtigsten Hürden bei der
Einführung modellbasierter Entwicklung.
Die Entwicklung von Embedded Systems wird aufwendiger. Grafische Modellierungssprachen und dazu passende Werkzeuge können helfen, die Komplexität in den Griff zu bekommen. Allerdings müssen einige grundsätzliche Dinge beachtet werden, um den Nutzen von Modellen wirklich auszuschöpfen.
? In die Erstellung einer textuellen Spezifikation fließt im Grunde derselbe Aufwand wie in eine modellbasierte Spezifikation.
? Zum Einstieg in die Modellierung sind die Hürden der Modellierungssprache und des gewählten Werkzeugs zu überwinden.
? Der Vorteil von Modellen liegt in den Automatismen, die darauf anwendbar sind.
? Es ist wichtig, sich zu Beginn einer modellbasierten Entwicklung auf ein Referenzmodell zu einigen.
((Kastenende))
@Kasten Grundschrift:? Die verwendete Modellierungssprache
? Das ausgewählte Modellierungs-Werkzeug
? Die Vorgehensmethode: Um ein Modell effizient erstellen zu können, sollte man eine definierten Struktur (Referenzmodell) folgen und Anfang und Ende des Modellierungsvorgangs festlegen. Dafür existieren Best-Practice Lösungen, aus denen sich der eigene Modellierungsansatz ableiten lässt.
? Die erforderliche Erfahrung
? Firmeninterne Prozesse: Zur Etablierung eines Modellierungsansatzes im Unternehmen müssen bestimmte Richtlinien und Bedingungen definiert und eingehalten werden. So sind zum Beispiel oft Anforderungen in einem bereits vorhandenen System erfasst und können von dort übernommen werden. Um einen Bruch in der Informationskette zu vermeiden ist darüber hinaus die nahtlose Integration zwischen den Werkzeugen erforderlich.
In meinen Kursen stelle ich zu Beginn gerne die Frage: Warum modellieren wir eigentlich? Als Antworten höre ich z. B. "Weil wir es müssen", "Unsere Software muss auch dokumentiert werden" etc. Diese Antworten zeigen mir, dass die Vorteile eines Modellierungsansatzes (im Vergleich mit dem klassischen, textbasierten Ansatz) meist nicht umfassend gesehen werden. Daher habe ich nun ein Whitepaper erstellt, dass die einzelnen Aspekte näher beleuchtet. Nur mit einer möglichst umfassenden Sicht lässt sich nämlich abschätzen, welcher Modellierungsansatz für ein Unternehmen geeignet ist. Die Frage nach dem Vorteil von modellbasierten Ansätzen ist grundsätzlich einfach zu beantworten. Um über die Inhalte eines Dokuments diskutieren zu können, müssen wir bei einer textuellen Beschreibung viele Seite lesen. Haben wir darüber hinaus Bilder verwendet, die keinem Standard entsprechen, sind auch diese meist erklärungsbedürftig. Bei Modellen dagegen, die mit standardisierten Modellierungssprachen (z.B. UML/SysML) erstellt wurden, folgen die Symbole einer definierten Semantik. Der Begleittext ist kurz und knapp den betreffenden Modell-Elementen zu entnehmen und damit leicht lesbar. Ein (richtig erstelltes) Modell/Diagramm ist nicht überfrachtet, beantwortet genau die Fragen einer bestimmten Personengruppe und dient als Grundlage für die Diskussion. Ein Modell kann also zur zentralen Informationsquelle ausgebaut werden, aus der sich unterschiedlichste Artefakte (Dokumente, Code, Schemata, etc.) automatisch generieren lassen. Das Modell dient als zentrale Informationsquelle und lässt sich automatisiert weiterverarbeiten.
LieberLieber Software GmbH
Dieser Artikel erschien in IoT Design 5 2017 - 18.09.17.Für weitere Artikel besuchen Sie