Download Prozessorientierte Integration von Softwarekomponenten durch XML
Transcript
7.3 UML-Profil für Prozessdiagramme 139 Aktivitäten zur Komponentenintegration Für die Aktivitäten im Prozessdiagramm wird das Stereotyp «serviceState» definiert. Es basiert auf der Basisklasse CallState, die dazu gedacht ist, die Methode einer Klasse aufzurufen (siehe Abschnitt 6.2.1). Bei einem «serviceState» wird die Einschränkung gemacht, dass nur eine als «service» deklarierte Operation aufgerufen werden darf (siehe Constraint 1). Beim Aufruf des Service müssen Werte für geforderte Parameter übergeben werden. Das UML-Metamodell (siehe [Omg01] 2.9.2.3) sieht als Wert für ein Argument einen beliebigen Ausdruck vor. Es wird keine Einschränkung bezüglich der möglichen Sprache getroffen. Somit sind für die Argumente auch Ausdrücke möglich, die für das WFMS verständlich sind und vor Aufruf der Methode ausgewertet werden können, um etwa Daten aus dem Migrationsdokument oder der Prozessumgebung (vgl. Abschnitt 6.2.2) zu übernehmen. Stereotyp serviceState Basisklasse UML::ActivityGraphs::CallState Ober-Stereotyp stateWithPorts Tag Definitionen keine Einschränkungen (Constraints) 1. Die zugeordnete Operation muss vom Stereotyp «service» sein: Erläuterung CallStates, die als «serviceState» klassifiziert sind, symbolisieren die Ausführung einer komponentenbasierten Aktivität. Jedem «serviceState» ist ein «service» zugeordnet, an den die Ausführung der Aktivität delegiert wird. Darstellung Standardmäßig wie ein CallState. Wenn der zugehörige «service» im Tag image ein Symbol spezifiziert, kann dieses zur Darstellung benutzt werden. context serviceState inv: let state : CallState = self.extendedElement.oclAsType(CallState) state.entry.oclAsType(CallAction).operation.isStereotypedAs(service) Tab. 7.7: Definition des Stereotyps «serviceState» Die Ausführung der korrespondierenden Service-Operation in einem «serviceState» führt zu Änderungen auf dem Migrationsdokument. Deshalb müssen für einen «serviceState» bzw. die durch ihn definierte Service-Aktivität die erlaubten Eingangsund die möglichen Ausgangsdokumenttypen durch die Angabe von Ports modelliert werden. Dies geschieht durch das Erben der entsprechenden Attribute von «stateWithPorts». Beim Setzen der Ports kann ein Werkzeug als Vorgabe die Werte für die Portattribute aus dem «service» übernehmen, der diesem «serviceState» zugeordnet ist (vgl. Abschnitt 9.2.5, Hinzufügen von Zuständen). Bei manchen Services kann es allerdings sein, dass ihre Portspezifikation die zulässigen Dokumentmengen nur sehr wage oder bei der Verwendung von Platzhaltern gar nicht einschränkt, weil bei diesen generischen Services die Dokumenttypen von konkreten Parameterwerten abhängen. In solchen Fällen können die Portspezifikationen für den «serviceState» vom Benutzer angepasst werden, nachdem die Werte der Parameter gesetzt sind (vgl. Abschnitt 6.3.1, Einbindung von Ports in Prozessdiagramme).