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.
Für die Durchführung einer der beiden Prozesse muss – ganz analog zur Situation im<br />
Navigationsmodell – festgelegt sein, welche Subklasse von<br />
process::PublicationDataInput zu verwenden ist. Hierzu bietet es sich an, die<br />
Semantik für Vererbungshierarchien im Prozesstruktur-Modell analog zum<br />
Navigationsmodell-Pendant zu definieren, d.h. wieder mit Hilfe einer Inhaltsklassen-Instanz,<br />
deren Typ die Auswahl der Subklasse im Prozessmodell festlegt. Allerdings müssen hier zwei<br />
Dinge beachtet werden:<br />
1. Wenn die Auswahl der richtigen Subklasse wieder über eine Instanz einer Inhaltsklasse<br />
erfolgen soll, so müssen die Prozessklassen der Vererbungshierarchie in irgendeiner<br />
Weise mit einem Pendant aus der Vererbungshierarchie des Inhaltsmodells verknüpft<br />
werden. Im aktuellen <strong>UWE</strong>-Profil verfügt der Stereotyp «processClass» im<br />
Gegensatz zur «navigationClass» allerdings nicht über den Tagged Value<br />
contentClass. Um einen für Navigations- und Prozessklassen einheitlichen<br />
Auswahlmechanismus zu gewährleisten, wird deshalb empfohlen, das Profil<br />
dahingehend zu erweitern. Es sei bemerkt, dass dies keine reine 'ad hoc'-Lösung ist, die<br />
allein dem Ziel dient, die Vererbungssemantik für Prozess- und Navigationsklassen<br />
anzugleichen. Viele Prozesse, die der Anwender in <strong>Web</strong>anwendungen initiieren kann,<br />
beziehen sich auf einen bestimmten Typ von Geschäftsobjekt (wie z.B. die Edition oder<br />
Erzeugung von Publikationen sich (u.a.) stets auf Objekte der Publication-<br />
Inhaltsklasse bezieht). Deshalb ist es auch unabhängig von dem gerade vorgestellten<br />
'Vererbungs'-Motiv sinnvoll, eine Verknüpfung einer Inhaltsklasse mit einer<br />
Prozessklasse zu etablieren, welche die mit dem Benutzer auszutauschenden Daten<br />
definiert.<br />
2. Viele Prozesse, z.B. solche zur Editierung eines Domain-Objekts, erhalten 'ihre' Instanz<br />
einer Inhaltsklasse natürlicherweise über einen eingehenden Prozesslink. Allerdings<br />
werden nicht alle Prozesse auf diese Weise mit Eingangsdaten versorgt. Ein<br />
Geschäftsprozess, der z.B. zur Erzeugung eines neuen Domain-Objekts ausgeführt wird,<br />
wird in der Regel nicht vom Vorgänger-Knoten im Navigationsmodell über einen<br />
Prozesslink mit einer Inhaltsklassen-Instanz bedient. Wenn im Rahmen solcher Prozesse<br />
eine Spezialisierung auf eine Klasse einer Vererbungshierarchie vorgenommen werden<br />
soll, so ist es für die Auswahl der richtigen Subklasse trotzdem unbedingt erforderlich,<br />
eine entsprechende Instanz zu spezifizieren. Dies kann z.B. dadurch geschehen, dass an<br />
einer geeigneten Stelle im Workflow des Prozesses ein leeres Geschäftsobjekt vom<br />
gewünschten Typ erzeugt wird und dieses dann über einen Objektfluss an die UserAction<br />
wiedergegeben wird, welche mit der Superklasse der Prozessklassen-Hierarchie<br />
verknüpft ist:<br />
Abbildung 14: Anlegen einer leeren Publikation im CreatePublication-Workflow<br />
Zur Aufnahme einer neuen Publikation wählt der Benutzer zunächst einen Publikationstyp<br />
aus. Entsprechend seiner Wahl wird ein leeres Publikationsobjekt vom gewünschten Typ<br />
erzeugt und an die UserAction DataInput weitergereicht, welche auf Workflow-Ebene das<br />
<strong>Web</strong>formular zur Eingabe einer neuen Publikation repräsentiert und über den Tagged Value<br />
processClass mit PublicationDataInput verknüpft ist. Über den Typ der Eingabe-<br />
Publikation wird schließlich die geeignete Subklasse von PublicationDataInput<br />
35