18 Dinge, die Sie mit Systemmodellen machen können

Systemmodellierung ist ein potentes Werkzeug, mit dem viele Aspekte des Systems Engineering verbessert werden können, von Nachverfolgbarkeit über Änderungsmanagement bis Testsfallgenerierung. Aber es gibt auch eine dunkle Seite der Modellierung: Diese kann ganz schnell zum Selbstzweck werden, ohne das die Ziele der Modellierung klar definiert sind. Chaotische, schwer lesbare Modelle können mehr Probleme verursachen, als sie lösen. Ein aus der Softwareentwicklung bekanntes Problem, „Code Rot“, also „verfaulter Code“, kann auch in Systemmodellen auftreten. Modelle, wie Software, müssen Konventionen folgen und regelmäßig aufgeräumt werden (Refactoring).

Aber genug von den Problemen: Mit Modellen kann man auch viele sinnvolle und Effektivitäts-steigernde Dinge machen. Hier ist meine – sicherlich unvollständige – Liste. Was kann man noch mit Systemmodellen machen? Ergänzen Sie gern diese Liste im Kommentarbereich (Zu den Kommentaren).

1. Kommunizieren

Insbesondere die grafische Sicht auf ein Modell kann ein extrem leistungsfähiges Werkzeug für die Kommunikation sein. Wichtig ist dabei, sich im klaren zu sein ob „noch gemalt“, oder „schon modelliert“ wird.

2. Dokumente generieren

Dokumentengenerierung geht Hand in Hand mit Kommunikation: Es ist nicht ungewöhnlich, dass nur wenige Leute Modelle erstellen, und die meisten (80%-90%) der Mitarbeiter die Modelle lediglich konsumieren. Dieses Konsumieren findet oft in der Form vom Lesen von generierten Dokumenten statt. Über Dokumentengenerierung ist auch die schrittweise Einführung von MBSE möglich.

Ein generiertes Dokument oder ausgedrucktes Diagramm ist oft der erste Berührungspunkt mit Modellierung Twittern

3.Sichten erstellen

Die Erstellung von Sichten ist eigentlich nur ein Schritt weiter vom vorherigen Punkt: Sichten können aber im Gegensatz zu einem Dokument auch interaktiv sein, und Informationen des Modells zusammenfassen.

4. Testfälle generieren

Bei einem gut strukturieren Modell purzeln die Testfälle einfach aus dem Modell heraus. Beispielsweise ergeben sich aus jeder Vorbedingung oder Invarianten ein oder mehrere Testfälle. Je nachdem, wie formal das Modell ist, können die Testfälle sogar automatisch generiert werden.

5. Code generieren

Gerade im Bereich der eingebetteten Systeme werden Modelle oft für die Codegenerierung herangezogen. Die Herausforderung ist in der Regel, den generierten Code sauber in das Gesamtsystem einzubetten. Denn es ist fast nie praktikabel, das gesamte System vollständig zu generieren.

6. Fortschritt verfolgen

Das schöne an Systemmodellen ist, dass eine formale Definition von Fortschritt möglich ist. Zum Beispiel, „Alle Anforderungen haben den Status ‚abgenommen'“. Der Fortschritt kann jederzeit abgefragt und bspw. dem Projektmanagement zugeführt werden.

7. Vollständigkeit prüfen

Ähnlich wie bei der Verfolgung von Fortschritt kann auch die Vollständigkeit geprüft werden. Voraussetzung sind sauber definierte Vollständigkeitskriterien und ein entsprechend gepflegtes Modell.

8. Informationen zusammenfassen

Neben Fortschritt und Vollständigkeit lassen sich alle möglichen Informationen jederzeit zusammenfassen und ansprechend präsentieren, von der Anzahl der Modellelemente, bis zur Testabdeckung. Hier ist allerdings Vorsicht angesagt, denn Kennzahlen können in den falschen Händen auch viel Schaden anrichten.

9. Automatische Verifikation

Bei entsprechend formalen Systemmodellen kann an manchen Stellen sogar auf Verifizieren verzichtet werden, da die Werkzeuge diese selbstständig durchführen können. Ein Beispiel wäre die automatische Prüfung, dass ein Zustandsautomat niemals eine Invariante verletzt.

Richtig eingesetzt, können Modelle die V&V-Aktivitäten wesentlich effektiver machen Twittern

10. Auswirkungen von Änderungen verstehen

Da bei der Modellierung mit einer feineren Granularität als bei Dokumenten gearbeitet wird, können Auswirkungen von Änderungen schnell analysiert werden. Voraussetzung sind eine saubere Traceability, und eine gute Werkzeugunterstützung.

11. Risiko bewerten

Die Bewertung des Risikos ist nur eine von vielen Analysen, die mit einem entsprechend strukturierten und gepflegten Modell einfach durchgeführt werden können.

12. Konflikte erkennen

Ein banales Beispiel: Ein System, das eine 12V Stromversorgung benötigt, kann nicht ohne einen Transformator an ein 240V Netz angeschlossen werden. In einem Modell ist dies offensichtlich, da die Schnittstellen einfach nicht zusammenpassen.

13. Inkonsistenzen erkennen

Stellen Sie sich vor, Sie haben eine 200 Seiten lange Spezifikation: Auf Seite 12 steht, das Gehäuse soll grün sein. Auf Seite 158 steht, das Gehäuse soll blau sein. Wie wahrscheinlich ist es, dass Sie diese Inkonsistenz bemerken? In einem guten Modell wäre die Farbei die Eigenschaft des Gehäuses, die im Modell genau einmal auftaucht.

14. Das Modell animieren (Simulation)

Die statischen Aspekte eines Systems sind meistens nicht das Problem: Die Herausforderungen kommen oft mit dem dynamischen Aspekt. Manche Modelle ermöglichen es, über Simulation die dynamischen Aspekte des Systems zu analysieren. Das kann unbezahlbar sein!

15. Das Modell als Spezifikation

Ganz banal: Das Modell kann einfach als Spezifikation genutzt werden. Das ist übrigens die dritte Stufe des SYSMOD Intensity Models.

Wenn das Modell zur Spezifikation geworden ist, haben wir echtes MBSE. Twittern

16. Das Modell zur Strukturierung

Beim dokumentenbasierten Arbeiten strukturieren wir mit Hilfe von Kapiteln. Doch dabei gibt es selten saubere Grenzen zwischen den einzelnen Untersystemen, es muss sehr diszipliniert gearbeitet werden. Bei einer entsprechenden Modellstruktur können auch große Systeme so strukturiert werden, so dass diese sauber voneinander isoliert sind.

17. Wissen verwalten

Wissensverwaltung kann viele Gestalten annehmen, aber ein konkretes Beispiel ist das Domänenwissen, welches sich in einem sauberen Domänenmodell manifestieren kann. Damit steht eine Vokabular zur Verfügung, das in der Präzision anders nur schwer realisierbar ist.

18. Wiederverwendung

Modelle ermöglichen einen Grad der Wiederverwertung, der anders kaum zu realisieren ist. Sauber definierte und abgegrenzte Untersysteme können wiederholt eingesetzt werden.

Dieser Artikel erschien zuerst bei se-trends.de.