2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
estimmt, die zur Verwaltung des Datenaustausches mit dem Nutzer verwendet wird.<br />
Indem in Abbildung 14 bzw. in analogen Workflow-Aktivitäten für den<br />
EditPublication-Prozess der UserAction DataInput als Prozessklassen-Grundlage<br />
allein PublicationDataInput zugewiesen wird, suggeriert man, dass mit dieser<br />
Prozessklasse die Datengrundlage des <strong>Web</strong>-Formulars ausreichend beschrieben ist. Dies ist<br />
eine grobe Vereinfachung, da damit der Beitrag der Prozessklassen TagDataInput sowie<br />
PersonDataInput unter den Tisch gekehrt wird. Wird bei einer konkreten Ausführung des<br />
Editier-Prozesses z.B. ein Publikationsobjekt an die UserAction herangetragen, welches mit<br />
zwei Personenobjekten in der Autorenrolle, einem Personenobjekt in der Editorenrolle sowie<br />
einem Tag-Objekt verlinkt ist, so genügt es natürlich nicht, dass allein eine Prozessklassen-<br />
Instanz von PublicationDataInput (bzw. einer entsprechenden Subklasse) die<br />
Verwaltung der Prozess-Daten übernimmt. Es werden auch Instanzen der von<br />
PublicationDataInput aggregierten Prozessklassen benötigt – ganz analog zu den<br />
Objekt-Beziehungen der Eingabe-Publikation bedarf es zusätzlich zweier Instanzen von<br />
PersonDataInput in der Rolle authorDataInput, einer Instanz von<br />
PersonDataInput in der editorDataInput-Rolle sowie einer Instanz von<br />
TagDataInput. Diese dynamische Abhängigkeit der Struktur einer konkreten Prozess-<br />
Ausführung vom Eingabeobjekt – die zur Durchführung des Prozesses notwendigen<br />
Prozessklassen-Instanzen werden in Abhängigkeit der konkreten Beschaffenheit des<br />
Eingabeobjekts bestimmt - lässt sich im Moment mit <strong>UWE</strong> nicht gut ausdrücken. Die einzige<br />
Möglichkeit zur Festlegung der zu involvierenden Prozessklasse besteht im aktuellen <strong>UWE</strong>-<br />
Profil im processClass-Tagged Value von «userAction», welcher die Verknüpfung<br />
der UserAction mit genau einer Prozessklasse erlaubt. Selbst wenn man die Multiplizität<br />
dieses Tagged Values auf '1..*' erhöhen würde, um in unserem Falle die beiden aggregierten<br />
Prozess-Klassen ebenfalls angeben zu können, würde man die Erfordernisse für eine<br />
Prozessdurchführung nur unzureichend beschreiben – es fehlte immer noch die Angabe, wie<br />
viele Instanzen dieser Prozessklassen in welcher Rolle benötigt werden.<br />
Bei der Modellierung des PVS behalfen wir uns damit, diese Anforderungen an eine<br />
Prozessdurchführung von CreatePublication oder EditPublication informell in<br />
einem <strong>UML</strong>-Kommentar in den Workflow-Aktivitäten der beiden Prozesse zu beschreiben.<br />
Zum Verständnis des Diagramms sollte dies ausreichend sein, für die Zukunft sollten<br />
allerdings formalere Möglichkeiten zur Spezifikation gefunden werden. Eine Idee, welche<br />
ohne eine Spracherweiterung auskommt, ist es, DataInput als CallBehaviorAction zu<br />
definieren und eine eigene Aktivität als Verhalten zu spezifizieren, welche allein zur<br />
adäquaten Modellierung der Benutzereingabe auf Workflow-Ebene dient – siehe dazu<br />
Diagramm 15 (nächste Seite) 30 .<br />
30 Im Diagramm wurde auf die Modellierung der Tag-Eingabe verzichtet, um das Diagramm kompakt und<br />
übersichtlich zu halten.<br />
36