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.
3.3 Datenintegration 51<br />
beiden Beziehungen Parallel <strong>und</strong> InterleavedParallelRouting zugeordnet.<br />
Es sind noch viele weitere Integritätsbedingungen zur Sicherstellung von So<strong>und</strong>ness-Eigenschaften denkbar.<br />
Beispielsweise stellen Zyklen von Guard- <strong>und</strong> exceeded-Assoziationen ebenso ein Problem dar. Die Beispiele<br />
von diesem Abschnitt sollen jedoch ausreichen, um exemplarisch zu zeigen, wie OCL-Invarianten im<br />
Metamodell eingesetzt werden können, um konsistente Workflowmodelle zu garantieren.<br />
3.3 Datenintegration<br />
In diesem Abschnitt wird die Datenintegration in Workflow-Modellierungssprachen im allgemeinen <strong>und</strong> in<br />
DMWM-Workflowmodellen im speziellen betrachtet. Die Spezifikation von Daten in Geschäftsprozessmodellen<br />
ist äußerst wichtig <strong>und</strong> Bestandteil aller populärer Prozessmodellierungssprachen, wie BPMN, Aktivitätsdiagrammen<br />
<strong>und</strong> eEPKs. Des Weiteren gibt es Datenflussdiagramme, die den Zusammenhang zwischen<br />
Funktionen, Schnittstellen <strong>und</strong> Speichern über Datenflüsse spezifizieren [Bal09]. In Abschnitt 3.3.1 werden<br />
diese näher betrachtet <strong>und</strong> gezeigt, wo Unterschiede <strong>und</strong> Probleme existieren. Daraufhin wird der Ansatz der<br />
Datenmodellierung <strong>und</strong> die Metamodellerweiterung für die Datenintegration in DMWM-Workflomodelle in<br />
Abschnitt 3.3.2 näher eingeführt. Im DMWM-Ansatz lassen sich außerdem Datenkonsistenzbedingungen<br />
mit OCL in den Datenmodellen spezifizieren, welche in Abschnitt 3.3.3 thematisiert werden. Damit können<br />
beispielsweise fehlende Dateneinträge zur Runtime identifiziert werden <strong>und</strong> der Nutzer darauf hingewiesen<br />
werden. Außerdem wird dort ein Beispiel gegeben, an dem die Datenintegration gezeigt wird.<br />
3.3.1 Konzepte <strong>und</strong> Probleme der Datenintegration in etablierten Modellierungssprachen<br />
Die Datenintegration ist in eEPKs vom Kontrollflusskonzept entkoppelt. Ein Beispiel für diese Modelle ist<br />
in Abbildung 3.11(a) angegeben. In eEPKs sind die Datenspezifikationen für jede Aktivität neu anzugeben.<br />
Datenflüsse, in denen einzelne Objekte von einer Aktivität zur nächsten gegeben werden sind nicht<br />
vorgesehen.<br />
Auch bei der in der Softwaretechnik entwickelten Strukturierten Analyse mit Realtime-Erweiterung (SA/RT)<br />
<strong>und</strong> den dort verwendeten Datenflussdiagrammen (DfDs) sind die Ablaufspezifikation (CSpecs) von Datenflüssen<br />
entkoppelt [Bal09]. Damit ist das Vorhandensein der Daten nicht Vorbedingung zur Ausführung<br />
der Funktion. Es kann z.B. auch passieren, dass während der Ausführung Daten ausgetauscht werden oder<br />
Funktionen später ihre Ausführung wieder aufnehmen. In Abbildung 3.11(d) ist ein Datenflussdiagramm zu<br />
sehen, das einen Austausch von Daten zwischen zwei Funktionen Function1 <strong>und</strong> Function2 vorgibt. Hier<br />
wissen wir nicht in welcher Reihenfolge diese Funktionen abgearbeitet oder ob eine Funktion mehrfach<br />
ausgeführt werden muss. Bei DfDs liegt der Fokus der Modellierung auf der Verbindung zwischen Daten,<br />
Funktionen, Schnittstellen <strong>und</strong> Speichern.<br />
Bei Aktivitätsdiagrammen, wofür in Abbildung 3.11(c) ein Beispiel angegeben ist, stellen Objektflüsse<br />
gleichzeitig Kontrollflüsse dar. Die Objekte dienen als Eingabeparameter für die Aktivitäten <strong>und</strong> sind<br />
Vorbedingungen zur Ausführung <strong>und</strong> Konsumierung der Objekte. Die Modellierung eines expliziten Kontrollflusses<br />
ist nicht erforderlich, wenn schon ein Objektfluss vorhanden ist. Objektflussspezifikationen<br />
können aber Probleme bei der Verknüpfungen zu Flussoperatoren hervorrufen. Beispielsweise kann es Typkonsistenzprobleme<br />
geben, wenn diese mit einem join synchronisiert oder mit einem fork verzweigt werden.<br />
Auch semantische Probleme können hier auftreten, die die Effekte auf das Objektmodell bei Ausführung der<br />
Flussoperatoren betreffen. Hier stellt sich beispielsweise die Frage, was passiert, wenn zwei Token miteinan-