Metamodellbasierte und hierarchieorientierte ... - RosDok
Metamodellbasierte und hierarchieorientierte ... - RosDok
Metamodellbasierte und hierarchieorientierte ... - RosDok
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-