White Paper

Validieren von Anforderungen durch Simulation und formale Methoden

Einleitung

Zwei der wichtigsten Aufgaben in der Systementwicklung sind zweifellos das Verstehen der Erwartungen der Stakeholder und deren Umsetzung in Systemanforderungen. In diesem Whitepaper wird die frühzeitige Anwendung der Modellierung zur Lösung dieser Aufgaben erörtert, indem Modellierungstechniken von zunehmender Komplexität und Wertigkeit aufgezeigt werden, die von rein deskriptiven Modellen bis hin zu formalen Beweisen reichen. Die erhöhte Qualität der Systemanforderungen allein rechtfertigt schon die Investition in diese Techniken. Aber die daraus resultierenden Modelle können auch in späteren Phasen des Projekts verwendet werden, um die Erwartungen der Stakeholder besser zu erfüllen. Wir zeigen, wie Anforderungsmodelle genutzt werden können, um konsistente und vollständige Systemanforderungen zu erhalten. Abbildung 1 zeigt den Prozess, der in diesem Whitepaper zur Erreichung dieser Vorteile verfolgt wird.

Workflow-Diagramm, das die stufenweise Umwandlung der Stakeholder-Erwartungen in Systemanforderungen bis hin zu detaillierten Anforderungen durch System-, Software- und Testingenieure bei der Erstellung von Artefakten wie Architektur- und Entwurfsmodellen, Codedateien und Test-Harnischen darstellt.

Abbildung 1: Prozess zur Optimierung der Stakeholder-Erwartungen in Systemanforderungen, der zu detaillierten Spezifikationen führt.

Für diese Fallstudie werden die Anforderungen an ein Maschinenkühlsystem auf Grundlage der unten beschriebenen Stakeholder-Erwartungen ermittelt:

Schaffen Sie ein System, das die Betriebstemperatur einer Maschine aufrechterhält, um Maschinenschäden aufgrund von Überhitzung zu vermeiden.

  • [Randbedingung] Das Kühlsystem muss die Betriebstemperatur unter 40 ˚C halten.
  • [Randbedingung] Die Kühlung muss innerhalb einer vorgegebenen Zeit erfolgen.
  • [Grundannahme] Die Umgebungstemperatur muss größer als -10 ˚C und kleiner als 80 ˚C sein.
Illustration eines Ingenieurs, der neben einem Kühlsystem steht.

Diese Stakeholder-Erwartungen sind mehrdeutig und können leicht falsch interpretiert werden, was zu unvollständigen und/oder falschen Systemanforderungen und schließlich zu einem Entwurf führen kann, der die Erwartungen der Stakeholder nicht erfüllt. Zur Vermeidung dieses Szenarios ist es notwendig, die Erwartungen der Stakeholder zu validieren.

Mithilfe von Modellierungstechniken können wir unser Verständnis für die Erwartungen der Stakeholder validieren und uns auf bestimmte Systemanforderungen einigen. Diese Methoden umfassen den Einsatz von Folgendem:

  1. deskriptive Modelle
  2. Simulationsmodelle
  3. formale Modelle

In den folgenden Abschnitten wird jede dieser Methoden beschrieben und abschließend die Verwendung eines Digital Thread erörtert, um die Rückverfolgbarkeit zwischen den Erwartungen der Stakeholder und den verschiedenen Ebenen der daraus abgeleiteten Anforderungen herzustellen.

Abschnitt

  1. Verwenden von deskriptiven Modellen

Ein erster Schritt bei der Ermittlung der Stakeholder-Erwartungen besteht darin, die verschiedenen Szenarien zu beschreiben, die das Kühlsystem bewältigen muss. Was ist beispielsweise zu tun, wenn die Temperatur zu hoch ist oder wenn die Kühlung nicht zu greifen scheint?

Deskriptive Anforderungsmodelle sind ein entscheidender Fortschritt im Vergleich zu den klassischen natürlichsprachlichen Anforderungen, da sie eine strukturierte, grafische Darstellung der Anforderungen bieten, die die Zusammenarbeit zwischen den beteiligten Teams verbessert. Ein gutes Beispiel für eine solche Darstellung wäre ein Sequenzdiagramm.

Was sind deskriptive Modelle?

Ein deskriptives Modell ist eine grafische Spezifikation eines Systems, die beschreibt, was das System ist oder tut, und zwar in einer für Menschen lesbaren Form.

Abbildung 2 beschreibt das folgende Szenario: Wenn die Temperatur (T) zu hoch ist (T >= 40), ist eine Kühlung erforderlich; wenn die Kühlung erfolgt ist (T < 40), sollte die Kühlung abgeschaltet werden; wenn die Kühlung jedoch nicht erfolgt (Verzögerung >= 30), muss die Maschine abgeschaltet werden.

Ein Sequenzdiagramm, das drei verschiedene Betriebsszenarien eines Kühlsystems beschreibt.

Abbildung 2: Das Sequenzdiagramm, das unser Szenario beschreibt.

Abschnitt

  1. Verwenden von Simulationsmodellen

Sequenzdiagramme liefern grafische Beschreibungen, wie die modellierten Komponenten des Kühlsystems in verschiedenen Szenarien zusammenwirken. Diese deskriptiven Anforderungsmodelle sind jedoch nach wie vor fest im Technikbereich angesiedelt, wohingegen simulierbare (oder ausführbare) Anforderungsmodelle Beobachtungen und Erkenntnisse im Systembereich liefern können, die es den Beteiligten ermöglichen, ein direktes Verständnis der Anforderungen in ihrem bereichsspezifischen Kontext zu erhalten. Ein praktisches Beispiel für einen ausführbaren Formalismus, der diese Ergebnisse liefern kann, ist ein State Chart (siehe Abbildung 3).

Was sind Simulationsmodelle?

Ein Simulationsmodell ist eine Spezifikation eines Systems, die für die maschinelle Interpretation bestimmt ist, wobei die Ergebnisse der Interpretation der menschlichen Auslegung überlassen werden, um die entsprechenden Schlussfolgerungen zu ziehen.

Ein simulierbares State Chart mit Diagrammen, die die per Simulation erzeugten Ausgaben zeigen.

Abbildung 3: Eine simulierbare Architekturkomponente (Zustandsmaschine) und ihre Ausgaben.

Das ist insofern wichtig, als die Simulation eine eindeutige Interpretation der in den früheren Sequenzdiagrammen beschriebenen Szenarien ermöglicht. Darüber hinaus bietet sie die Möglichkeit, diese Interpretation an die Stakeholder weiterzuleiten, verschiedene Szenarien zu untersuchen und ihre spezifischen Erwartungen zu verstehen, sodass wir diese Informationen in den Systemanforderungen festhalten können.

Nun, da wir ein Modell haben, das die in den Sequenzdiagrammen angegebenen Verhaltensweisen simuliert, können wir die von der Zustandsmaschine erzeugten Ausgaben beobachten und mit den Stakeholdern diskutieren. Außerdem können wir überprüfen, ob das Verhalten der Zustandsmaschine mit den im Sequenzdiagramm beschriebenen Szenarien übereinstimmt. In Abbildung 4 zeigen die grünen Häkchen im Sequenzdiagramm an, dass die richtigen Ereignisse in der richtigen Reihenfolge während der Simulation eingetreten sind. Damit wird bestätigt, dass das funktionale Modellverhalten korrekt ist. Diese Ergebnisse können auch zur Validierung mit den Stakeholdern verwendet werden.

Sequenzdiagramm, das die Validierung des erwarteten Verhaltens durch Simulationsergebnisse zeigt, bei denen grüne Häkchen die Kriterien für „bestanden“ anzeigen.

Abbildung 4: Validierung durch Simulation.

Abschnitt

  1. Verwenden von formalen Modellen

Obwohl Simulationstechniken eine breite Abdeckung des Systemverhaltens ermöglichen, ist die Simulation in der Regel auf Schlüsselszenarien ausgerichtet, um die Zusammenarbeit zu unterstützen. Formale Anforderungsmodelle hingegen enthalten Formalismen, die eine systematischere Bewertung der Qualität des Modells ermöglichen.

Ein solcher Formalismus ist eine Anforderungstabelle, mit der die Konsistenz und Vollständigkeit eines Anforderungskatalogs formal nachgewiesen werden kann. Konsistente Anforderungen stehen nicht im Widerspruch zueinander, während vollständige Anforderungen keine fehlende Funktionalität aufweisen. Die Vorbedingungsspalten (A) in Abbildung 5 beschreiben die Systemeingänge (Temperaturwerte) und wann eine Bedingung gültig oder „aktiv“ ist. Die Nachbedingungsspalten (B) beschreiben das erwartete Verhalten, wenn die angegebene Anforderung aktiv ist.

Was sind formale Modelle?

Ein formales Modell ist eine Spezifikation eines Systems, das für die maschinelle Interpretation bestimmt ist, bei der die Ergebnisse der Interpretation weiterverarbeitet werden, um endgültige Schlussfolgerungen für Menschen zu präsentieren.

Anforderungstabelle zur Erläuterung der Anforderungen mithilfe einer formalen Notation, bei der die Vorbedingungsspalte die Eingaben und die Nachbedingungsspalte die erwarteten Ausgaben beschreibt.

Abbildung 5: Formales Modell zur Beschreibung der Anforderungen.

Anforderung Nr. 1 besagt beispielsweise, dass das Kühlsystem abgeschaltet werden sollte, wenn T unter 40 ˚C (T < 40) liegt (Turn_off_cooling == treu).

Eine Analyse mithilfe der Funktionen für formale Methoden des Simulink Design Variier kann nun feststellen, ob die Anforderungen konsistent und vollständig sind. In Abbildung 6 wurde das Szenario, bei dem die Temperatur genau 40 ˚C beträgt, nicht berücksichtigt, sodass dieser Anforderungssatz unvollständig ist.

Ergebnisse einer formalen Analyse einer Anforderungstabelle, die ein Unvollständigkeitsproblem mit T = 40 Grad als fehlender Vorbedingung aufzeigt.

Abbildung 6: Die formale Analyse hat ein Problem der Unvollständigkeit ergeben (T = 40 fehlt).

Abschnitt

Weitere Überlegungen und Verwendungsmöglichkeiten von Anforderungsmodellen

Entwurfsmodelle im Test

Formale Anforderungsmodelle bieten einen idealen Ausgangspunkt für nachgelagerte Teams, da die Qualität der Anforderungen höher ist und Elemente des Anforderungsmodells während des Entwurfs, der automatischen Testerstellung und der Verifikation wiederverwendet werden können. So können Anforderungsmodelle als Teil von Unit-Tests verwendet werden, um sicherzustellen, dass Funktionsmodelle entwickelt werden, die den Anforderungen entsprechen. Diese Unit-Tests können sowohl interaktiv als auch als Teil eines CI/CD-Frameworks ausgeführt werden. Abbildung 7 zeigt, dass die Anforderungen 1 und 2.2 den Test bestanden haben und dass die anderen Anforderungen nicht erfüllt wurden.

Ein Diagramm, das ein Test-Harnisch zeigt, der eine Anforderungstabelle zu Verifikationszwecken wiederverwendet.

Abbildung 7: Verwendung der formalen Anforderungen als Test zur Validierung der Entwurfsmodelle.

Digital Thread und mehr

In den verschiedenen Phasen des Produktentwicklungszyklus werden zahlreiche Artefakte erstellt und/oder erzeugt. Zu diesen digitalen Artefakten gehören Anforderungen, Architektur, Entwurfsmodelle, Codedateien sowie Verifikation- und Validierungsdateien. Entscheidend ist, dass eine nachvollziehbare Verbindung zwischen diesen Artefakten hergestellt wird, um zu verstehen, wie sich die Anforderungen auf andere Anforderungen, Modelle oder Verifikation- und Validierungsaktivitäten auswirken. Dieser Link dient als Digital Thread.

So können beispielsweise Diagramme zur Nachvollziehbarkeit von Anforderungen automatisch aus den Anforderung- und Architekturmodellen generiert werden, die Aufschluss darüber geben, wie diese Anforderungen, Modelle und Verifikationsartefakte grafisch miteinander verknüpft sind.

Abbildung 8 zeigt den Digital Thread, bei dem eine Erwartung des Stakeholders von einem anderen Stakeholder erfüllt wird. In der Realität werden mehrere Stakeholder im gesamten Unternehmen verteilt sein, die verschiedene Funktionsbereiche auf unterschiedlichen Abstraktionsebenen abdecken. Und genau an diesem Punkt wird ein Digital Thread unverzichtbar. Zudem erleichtert ein Digital Thread die Nutzung automatisierter, agiler und iterativer Prozesse und Infrastrukturen (DevOps). So zeigt beispielsweise Abbildung 8, wie der Verifikationsstatus eines Tests automatisch an den zuständigen Entwickler zurückgemeldet wird.

Rückverfolgbarkeitsdiagramm, das die Zusammenhänge zwischen den Anforderungen der Stakeholder, Artefakten wie Modellen und Testfällen zeigt und dessen Verifikationsstatus mit den Anforderungen verknüpft ist.

Abbildung 8: Rückverfolgbarkeitsdiagramm, das den Digital Thread für das Kühlsystem zeigt.

Auf dem Weg zur digitalen Transformation spielen die Konzepte von Digital Threads, digitalen Zwillingen und DevOps eine wichtige Rolle bei der Schaffung einer Grundlage für das Digital Engineering. Diese Konzepte bilden zusammen eine Infrastruktur, die den Übergang von traditionellen zu digital-orientierten technischen Verfahren unterstützt.

Abschnitt

Fazit

In diesem Whitepaper haben wir einen Prozess beschrieben, bei dem wir auf Basis der Stakeholder-Erwartungen mithilfe von Simulation und formalen Methoden zu (simulierbaren/ausführbaren) Systemanforderungen gekommen sind. Dazu haben wir Anforderungsmodelle verwendet, die simuliert (Zustandsmaschinen), ausgewertet (Sequenzdiagramme) und formal analysiert werden können (Anforderungstabelle).

Die Verwendung von Anforderungsmodellen ermöglicht die Automatisierung von Verifikation- und Validierungsprozessen, und sorgt für vollständige, konsistente und validierte Systemanforderungen. Zudem verbessern sie die Zusammenarbeit zwischen verschiedenen Teams, da sie mehr Informationen liefern als rein beschreibende oder textbasierte Anforderungen.

Von Alan Moore, Becky Pettys, and Stephan van Beek

Abschnitt