Einleitung
Modellbasierte Systementwicklung bzw. modellbasierte Methoden gewinnen immer mehr an Popularität in der Entwicklung. Wieso ist das so? Und was ist das eigentlich genau?
Um einen Entwicklungsprozess effizient zu gestalten, führt kein Weg an modellbasierten Methoden vorbei. Damit unterschiedlichste Aspekte der Systementwicklung verbessert bzw. vereinfacht werden.
Es gibt eine sehr breite Palette an modellbasierten Methoden, welche für unterschiedlichste Einsatzzwecke gedacht sind und es hängt sehr stark vom Projekt ab, welche Methoden überhaupt einen Mehrwert bringen. Es gilt also, für jedes Projekt das richtige Set von modellbasierten Methoden zu wählen.
In diesem Artikel versuchen wir, das Begriffsdickicht um modellbasierte Methoden in der Systementwicklung etwas aufzuklären sowie die Einsatzmöglichkeiten aufzuzeigen.
Was ist ein Modell
«Ein Modell ist ein vereinfachtes Abbild der Wirklichkeit. Das Abbild kann die Form konkreter Gegenstände haben oder rein abstrakt dargestellt sein.» Wikipedia
Ein gutes Modell zeigt dabei alle relevanten Eigenschaften der Wirklichkeit bei bestmöglicher Vereinfachung.
Daraus folgt aber auch, dass ein Modell immer für einen spezifischen Einsatzzweck optimiert ist.
Abbildung 1: Drei Modelle eines Autos, je für einen anderen Einsatzzweck.
Wie im Beispiel von Abbildung 1 zu sehen ist, können Modelle für dasselbe reale Objekt sehr unterschiedliche Formen annehmen.
Dabei gibt es eine fast unbegrenzte Anzahl an möglichen Modellen, je komplexer ein Objekt umso mehr Möglichkeiten ergeben sich natürlich. Aber selbst für sehr kleine Dinge wie Atome oder Licht sind in der Physik unterschiedliche Modelle im Einsatz.
Eventuell ist dies ein Grund, warum der Begriff «Modell» bei «modellbasierten Methoden» so viele unterschiedliche Interpretationen zu lässt.
Der Kern ist dabei jedoch stets derselbe und entspricht im Wesentlichen genau der oben genannten Definition. Ein Modell ist eine vereinfachte Darstellung, welche alle relevanten Eigenschaften der Wirklichkeit abbildet. Ein so geartetes Modell reduziert die Komplexität und vereinfacht damit das Arbeiten in Bezug auf den spezifischen Einsatzzweck.
Damit ist es nur folgerichtig, dass es eine ganze Reihe von «modellbasierten Methoden» (model-based methods) für unterschiedliche Einsatzgebiete gibt. Im Folgenden wird versucht, die etwas verwirrenden Begrifflichkeiten, die sich dabei ergeben, ein wenig zu ordnen.
Wie lassen sich die verschiedenen Ansätze einteilen?
Nach allem, was wir nun über Modelle wissen, bietet sich der Einsatzzweck als zentrale Eigenschaft eines Modells als Parameter für eine Einteilung an.
Damit kann man auch gleich zu Beginn klarstellen, dass wir hier nur Ansätze für die Entwicklung technischer Systeme betrachten wollen. Damit können wir das Modellauto aus Abbildung 1 also getrost ausser Acht lassen.
Die beiden anderen Modelle zeigen uns jedoch zwei wichtige Einsatzzwecke auf. Diese Einsatzzwecke könnte man wie folgt unterteilen:
- Verhaltensbeschreibung
- Informationsaustausch
Auch wenn es teilweise Überschneidungen gibt, lassen sich die modellbasierten Methoden anhand ihrer Grundintention in diese zwei Gruppen einteilen.
Verhaltensbeschreibende modellbasierte Methoden
Geht man von einer Softwareapplikation aus, ist es naheliegend, dass ein verhaltensbeschreibendes Modell dazu verwendet werden kann, um daraus die Implementation dieser Applikation automatisiert zu erstellen.
Erweitert man diesen Ansatz nun noch um ein zweites verhaltensbeschreibendes Modell, welches die Umgebung, also das Verhalten aller Schnittstellen des ersten Modells abbildet, erhält man die Möglichkeit das Verhalten des Gesamtsystems zu simulieren.
Die gebräuchlichste Bezeichnung für solch einen Ansatz ist:
- Model-Based Design (MBD)
Damit ist es auch möglich, Simulationen bzw. Tests für unterschiedliche Entwicklungsstufen durchzuführen. Die möglichen Ansätze bezeichnet man dabei als:
- Model-in-the-Loop (MIL)
- Software-in-the-Loop (SIL)
- Processor-in-the-Loop (PIL)
- Hardware-in-the-Loop (HIL)
Eine Beschreibung dieser Ansätze ist im unten folgenden Glossar zu finden.
Da das Verhalten durch das Modell beschrieben ist, ist es damit also nicht nur möglich, die Software-Applikation automatisiert generieren zu lassen, sondern die Implementation auch in unterschiedlichen Entwicklungsphasen zu verifizieren.
Modellbasierte Systementwicklungsmethoden für das Informationsmanagement
Das rechte Bild in folgender Abbildung zeigt den stark abstrahierten Aufbau eines Autos.
Ein Auto besteht aus 2 Vorderrädern, 2 Hinterrädern und einem Motor, wobei über eine Achse 2 Räder vom Motor angetrieben werden. Diese Art von Modellen ist sehr gut geeignet, um Strukturen und Beziehungen darzustellen.
Modellbasierte Methoden, welche ähnlich geartete Modelle zur Informationsverwaltung nutzen, sind unter anderem:
- Model-Based Enterprise (MBE)
- Modelle für Printed Circuit Boards (PCB) in ECAD Applikationen
- Model-Based System Engineering (MBSE)
Die ersten beiden Methoden kommen in den spezifischen Disziplinen Mechanik und Elektronik zum Einsatz und sind in den entsprechenden Entwicklungswerkzeugen integriert. MBSE ist hingegen eine Methode, um Architekturen kompletter Systeme zu beschreiben und setzt damit im Prinzip noch eine Stufe höher an.
Welches ist nun die beste modellbasierte Methode?
Nach den obigen Ausführungen ist klar, dass dies die falsche Frage ist. Jede der oben genannten Methoden hat ihren spezifischen Einsatzzweck. Die Frage sollte also lauten:
Welche modellbasierten Methoden soll ich einsetzen?
Modellbasierte Systementwicklung bzw. modellbasierte Methoden bieten viele Vorteile, verlangen jedoch oft eine entsprechende Tool-Unterstützung. Ist diese gegeben, ist es auch ohne weiteres möglich, alle obengenannten Methoden einzusetzen.
Werden all diese Methoden eingesetzt, ergibt sich damit folgendes Gesamtbild:
- Architektur/Design: MBSE
- Mechanik: MBE
- Elektronik: ECAD
- Software: Model-Based Design
Zusammenfassung
Die Begriffe Modell und modellbasiert können sehr breit interpretiert werden. Dies hat nicht zuletzt mit dem Umstand zu tun, dass ein Modell immer für einen bestimmten Zweck erstellt wird und die Menge an legitimen Modellen zumindest sehr gross, wenn nicht gar unendlich ist.Was sie jedoch alle gemeinsam haben ist, dass es sich um eine Vereinfachung bzw. um eine Reduktion aufs Wesentliche handelt. Das Ziel ist dabei immer, auch die damit durchgeführten Tätigkeiten zu erleichtern.
Allgemeine Vor- und Nachteile von modellbasierten Methoden:
Die Vorteile liegen in der Verbesserung bzw. Unterstützung von Arbeitsabläufen.
Als Nachteil kann die notwendige Tool-Unterstützung betrachtet werden. Hier kann noch unterteilt werden in Tool-Kosten, Einarbeitung in neue Tools und die Gefahr von Tool-Lock-ins (starke Bindung an proprietäre Datenformate etc.).
Die genannten Nachteile können jedoch mit einer bedachten Wahl der Tools/Entwicklungswerkzeuge sehr reduziert werden. Natürlich gilt es auch dann noch, die Vor- und Nachteile gegeneinander abzuwägen. Wir sind überzeugt, dass jedes Projekt, egal welcher Grössenordnung, von der Nutzung von modellbasierten Methoden profitieren kann.
Glossar
Begriff |
Abkürzung |
Beschreibung |
Model-Based Design |
MBD |
Modellbasierte Software-Entwicklungsmethode, bei welchen zwei verhaltensabbildenden Modellen verwendet werden, um zum einen das Verhalten der Software, zum anderen das Verhalten der Umgebung zu beschreiben. Dies ist auch die Grundlage für die Verwendung von «in-the-Loop»-Verfahren (MIL, SIL, PIL, HIL). |
Model-Based Enterprise |
MBE |
Modellbasierte Mechanik-Entwicklungsmethode, bei welcher das 3D-Modell als zentrale Informationsquelle dient. |
Model-Based System Engineering |
MBSE |
Die Methodik des System-Engineerings, in der Informationen über ein System und dessen Aufbau in einem zentralen Modell abgelegt sind. Modellbasiertes System-Engineering. |
Model-in-the-Loop |
MIL |
Die Simulation eines eingebetteten Systems in einer frühen Entwicklungsphase, wobei das Modell der Software zusammen mit dem Modell der Umgebung simuliert wird. Setzt Model-Based Design voraus. |
Software-in-the-Loop |
SIL |
Die Simulation eines eingebetteten Systems in einer recht frühen Entwicklungsphase, wobei der generierte Code des Softwaremodells zusammen mit dem Modell der Umgebung simuliert wird. Der generierte Code läuft dabei auf einer Entwicklungshardware, welche nicht identisch mit der Zielhardware ist. Setzt Model-Based Design voraus. |
Processor-in-the-Loop |
PIL |
Die Simulation eines eingebetteten Systems in einer recht frühen Entwicklungsphase, wobei der generierte Code des Softwaremodells zusammen mit dem Modell der Umgebung simuliert wird. Der generierte Code läuft dabei auf der Zielhardware (Prozessor). Setzt Model-Based Design voraus. |
Hardware-in-the-Loop |
HIL |
Der Test eines eingebetteten Systems in einer späten Entwicklungsphase, wobei der generierte Code des Softwaremodells auf der Zielhardware im Zusammenspiel mit einer durch einen HIL-Simulator nachgebildeten realen Umgebung getestet wird. Setzt Model-Based Design voraus. |
Electronic computer-aided design |
ECAD |
Software für den Entwurf von Elektronik. Wird auch als Electronic Design Automation (EDA) bezeichnet. |
Printed Circuit Board |
PCB |
Eine Leiterplatte bzw. Platine. |