22.11.2013 Aufrufe

Modellbasierte Anforderungsspezifikation sicherheitskritischer ...

Modellbasierte Anforderungsspezifikation sicherheitskritischer ...

Modellbasierte Anforderungsspezifikation sicherheitskritischer ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

in einer Aktionssprache an den Kontrollflusskanten (siehe 5.1.4.4.4). Das zweite Vorgehen kann<br />

zwar vollständig auf vordefinierte UML-Aktionen zurückgreifen, die Notation ist allerdings weniger<br />

intuitiv zu begreifen und belegt - zumindest bei einer kleinen Zahl an Verzweigungs-<br />

Alternativen - erheblich größere Flächen im Diagramm. Beide Varianten werden im Folgenden<br />

mit ihren jeweiligen Anwendungsgebieten diskutiert.<br />

Guards sind Ausdrücke, die sich in eine boolesche Aussage auflösen lassen und einer Kante des<br />

Kontrollflusses zugeordnet sind. Ist der Ausdruck wahr, kann ein Token die Kante passieren,<br />

ist der Ausdruck falsch, ist die Kante für Token gesperrt. Zusammen mit Entscheidungsknoten<br />

lassen sich somit Strukturen aufbauen, die den weiteren Ablauf hinter dem Entscheidungsknoten<br />

vorgeben. Dies zeigt Bild 5.17.<br />

act [Aktivitaet] Entscheidung[ Entscheidung ]<br />

<br />

Selbsttest durchfuehren<br />

{allocatedTo = BUe-Steuerung }<br />

[Systemfehler erkannt]<br />

<br />

Systemfehler melden<br />

{allocatedTo = BUe-Steuerung }<br />

Abbildung 5.17.: Entscheidungsstrukturen mit guards und Entscheidungsknoten<br />

Im dort dargestellten Beispiel wird im Kontrollfluss zu verschiedenen Folgeaktivitäten verzweigt,<br />

je nach dem, ob ein Systemfehler aufgetreten ist, oder nicht. Anzumerken ist allerdings, dass die<br />

Ausdrücke der guards hier in natürlicher Sprache formuliert sind. Für ein ausführbares Modell<br />

müsste jedoch eine Sprache wie z.B. die OCL verwendet werden.<br />

Diese Art der Modellierung ist insbesondere dann geeignet, wenn sich der Kontrollfluss nur in<br />

wenige Zweige 3 aufspaltet und entweder keine Ausführbarkeit erforderlich ist oder aber sich für<br />

die guards einfache Ausdrücke in einer Aktionssprache ableiten lassen. Sind hingegen komplexe<br />

Aktivitätsabläufe zur Ermittlung der booleschen Aussage erforderlich, eignet sich eher die im<br />

Folgenden beschriebene Vorgehensweise mit bedingten Knoten.<br />

Ein bedingter Knoten besteht dabei aus mehreren clauses (Klauseln), die jeweils aus einer test<br />

section und einer body section bestehen. In der test section muss genau eine Aktivität einen booleschen<br />

Wert an einem speziellen result-Pin bereitstellen. Ist der am Pin anstehende Wert wahr,<br />

3 Zwei, maximal drei ausgehende Zweige scheinen eine sinnvolle Grenze darzustellen<br />

65

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!