18.01.2014 Aufrufe

Metamodellbasierte und hierarchieorientierte ... - RosDok

Metamodellbasierte und hierarchieorientierte ... - RosDok

Metamodellbasierte und hierarchieorientierte ... - RosDok

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

6.2 Modellausführung von MCTT-Aufgabenmodellen 119<br />

Boolean-Variablen suspended <strong>und</strong> startable deklariert. Mit Hilfe dieser <strong>und</strong> den Operationen isSuspendedByOrderIndependency(),<br />

isSuspendedBySuspendResume() <strong>und</strong> isSuspendedByEnabling() wird in den<br />

Zeilen 5-14 geprüft, ob die Aufgabe durch entsprechende temporale Operatoren ausgesetzt wurde oder<br />

gestartet werden kann. Die Aufgabe wird gestartet, indem deren Zustand auf running gesetzt wird (s. Zeile<br />

16). Darauf folgend werden in den Zeilen 17-22 Seiteneffekte auf verb<strong>und</strong>ene Aufgaben durchgeführt,<br />

die auf Basis der entsprechenden temporalen Operatoren geschehen müssen. Zunächst werden die skip()-<br />

Operationen aufgerufen, die bei optionalen oder mit Choices verb<strong>und</strong>enen Aufgaben auftreten können. Des<br />

Weiteren können mit dem Starten der Aufgabe andere übersprungen oder ausgesetzt werden, wenn diese<br />

mit dem Disabling bzw. SuspendResume-Operator verb<strong>und</strong>en sind. Dieses passiert mit den disableTasks()<br />

<strong>und</strong> suspendTasks()-Operationsaufrufen in Zeile 20 <strong>und</strong> 21. Als letztes wird in Zeile 22 die setStartStamp()<br />

Operation aufgerufen, welche das start-Attribut der Klasse LeafTask auf den entsprechenden Zeitpunkt setzt<br />

(s. Abbildung 5.4).<br />

Im Gegensatz zum hier vorgestellten SOIL-Code wurde wie bereits erwähnt beim DMWM-Ansatz der<br />

imperative Teil mit ASSL umgesetzt. Das DMWM-Metamodell <strong>und</strong> der ASSL-Code lag in unterschiedlichen<br />

Dateien vor. Mit der Verwendung von SOIL hat sich diese Verwendung bei MCTT geändert, da die<br />

imperativen Operationen nun direkt im Metamodell integriert sind. Da die Bedignungen <strong>und</strong> der imperative<br />

Code nun in einer Datei vorliegen, sind in Listing 6.1 die Vor- <strong>und</strong> Nachbedingungen in den Zeilen 25<br />

<strong>und</strong> 26 mit spezifiziert. Mit diesen Bedingungen wurde die start()-Transition der Zustandsautomaten von<br />

Abbildung 5.5 umgesetzt.<br />

Ein weiterer Unterschied von der ASSL zur SOIL-Verwendung liegt darin, dass bei den ASSL-Prozeduren,<br />

wie in Listing 4.1 angegeben die entsprechende Aufgabe als Parameter übergeben werden musste. Diese ist<br />

bei SOIL nicht mehr notwendig, da die Operation auf einem entsprechenden LeafTask-Objekt ausgeführt<br />

wird. Die Syntax von SOIL liegt damit näher an einer objektorientierten Programmiersprache als dieses<br />

noch bei ASSL der Fall war.<br />

6.2.2 Taskmodel-Plugin für USE<br />

In diesem Abschnitt wird die Ausführung des Aufgabenmodells von Abbildung 5.11 im MCTT-Workflow-<br />

Plugin thematisiert. Die Aufgabenmodelldarstellung, die Interaktionsschnittstelle für den Nutzer <strong>und</strong> die<br />

Darstellung der Datensicht wird in Abbildung 6.2 präsentiert.<br />

Die Darstellung des Workflows ist ganz ähnlich zum DMWM-Plugin. Das Workflowmodell ist ebenfalls<br />

in einem Baum gezeigt <strong>und</strong> die Ausführungszustände der Aufgaben werden farblich gekennzeichnet. Die<br />

Farbzuordnungen sind die gleichen wie bei DMWM, die in Tabelle 4.3 vorgestellt wurden. Jedoch ist<br />

mit suspended ein zusätzlicher Ausführungszustand bei MCTT hinzugekommen, für den die Farbe Türkis<br />

verwendet wurde. Die Buttons zur Nutzerinteraktion sind mit start, finish, skip <strong>und</strong> fail die gleichen wie<br />

beim DMWM-Plugin geblieben.<br />

In Abbildung 6.2(a) ist die Aufgabe CheckPatientCondition gestartet <strong>und</strong> ausgewählt. Damit werden die<br />

entsprechenden Datensichten für diese Aufgabe angezeigt. Das Workflowmodell von Abbildung 5.11 zeigt,<br />

dass die Aufgabe mit PatientData als Entscheidungsobjekt verb<strong>und</strong>en ist. Somit wird über die Eingabe<br />

von Daten über den weiteren Verlauf des Workflows entschieden. Hier wurde dem Attribute urgency der<br />

Wert 6 zugeordnet. Mit der Spezifikation des Datachoice1-Objekts aus Abbildung 5.11 ist ersichtlich, dass<br />

damit die Aufgabe HandleCriticalPatient zur Ausführung ausgewählt werden müsste. Nach Beendigung der<br />

Aufgabe CheckPatientCondition ist in Abbildung 6.2(b) ersichtlich, dass die Aufgabe HandleStablePatient<br />

übersprungen wurde. Dafür muss dann also HandleCriticalPatient ausgeführt werden.<br />

Die Aufgabe ist jedoch in Abbildung 6.2(b) nicht enabled, da zwischenzeitlich die Aufgabe AdjustMedi-

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!