2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
vergessen wird, den Tagged Value isAutomatic für automatisch zu durchlaufene Links zu<br />
setzen. Ansonsten kann der Entwickler schnell in die Irre geführt werden und wird<br />
möglicherweise für einen solchen Link eine überflüssige Action implementieren. Seinen<br />
Fehler wird er dann erst beim Studium des Präsentationsmodells erkennen, wenn er<br />
herausfindet, dass sich die Präsentationsgruppen der beiden über den Link verbundenen<br />
Navigationsklassen im selben Container befinden und damit gleichzeitig darzustellen sind.<br />
In dieser Hinsicht sind die Workflow-Aktivitäten des Prozessmodells übrigens besser zu<br />
lesen: Durch die Unterscheidung zwischen UserActions, die Useraktivitäten auf der<br />
<strong>Web</strong>oberfläche repräsentieren, und SystemActions ist relativ einfach zu erkennen, welche<br />
<strong>UML</strong>-Actions in einer Rails-Controller-Action zusammenzufassen sind. Generell können wir<br />
feststellen, dass die Prozess-Aktivitäten eine sehr brauchbare Anleitung für die<br />
Implementierung von (Rails-)Actions lieferten.<br />
Die Tatsache, dass es bei Rails keine Entsprechung zu den <strong>UWE</strong>-Konzepten der Navigations-<br />
und Prozessklasse gibt, haben wir bei der Umsetzung als wenig problematisch empfunden.<br />
Die Spezifikation von Navigations- und Prozesseigenschaften erachten wir sogar als sehr<br />
hilfreich, auch wenn diese Konstrukte nicht 1:1 auf Rails-Ebene abgebildet werden. Dadurch<br />
erhält man schon auf Navigations- bzw. Prozessebene einen kompakten Überblick über die<br />
Daten, die später auf Präsentationsebene darzustellen sind bzw. (bei Prozesseigenschaften) im<br />
Rahmen der Prozessdurchführung vom Benutzer auf der UI anzugeben und vom System zu<br />
verarbeiten sind.<br />
Allerdings sei im Zusammenhang mit dem Fehlen der Navigationsschicht bei Rails auf eine<br />
'Unhandlichkeit' hingewiesen, mit der man bei der Implementierung mit Rails konfrontiert<br />
wird, wenn man, anders als in unserem Fall, als Programmierer nicht auch für die<br />
Modellierung verantwortlich war und sich demzufolge erst einen Überblick über die<br />
Zusammenhänge zwischen den einzelnen Modellen verschaffen muss. Eine typische<br />
Vorgehensweise bei der Realisierung eines einfachen Anwendungsfalls, der, sagen wir einen<br />
HTTP-Request beinhaltet, ist es, zunächst die Controller-Action zu programmieren, die den<br />
Request verarbeitet, und im Anschluss daran das Template zu kreieren, das von der Action<br />
gerendert wird. Modell-Grundlage für den ersten Schritt wird das Navigationsmodell (und<br />
unter Umständen auch das Prozessmodell) sein. Für die Realisierung des zweiten Schritts<br />
findet der Entwickler im Navigationsmodell zwar den Navigationsknoten, der dort<br />
gewissermaßen als abstrakte Repräsentation des Templates dient; doch was er wirklich als<br />
Anleitung zur Programmierung des Templates benötigt, ist die Präsentationsgruppe, die mit<br />
diesem Knoten verknüpft ist. Und in Anbetracht des Umfangs, den <strong>UWE</strong>-<br />
Präsentationsmodelle in der Regel aufweisen, kann die Suche nach ihr je nach verwendetem<br />
CASE-Tool zu einer Suche nach der Stecknadel im Heuhaufen ausarten. Bei Verwendung von<br />
MagicDraw muss man glücklicherweise das Präsentationsdiagramm nicht 'zu Fuß'<br />
durchkämmen, da hier sehr gute Suchfunktionalitäten zur Verfügung stehen: Für die Suche<br />
nach einem Modellelement in einem Diagramm kann als Suchparameter z.B. ein Tagged<br />
Value samt gewünschtem Wert angegeben werden, d.h. die gesuchte Präsentationsgruppe<br />
kann über ihren navigationNode-Tagged Value mit relativ wenig Aufwand gefunden<br />
werden. Angenehmer allerdings wäre es, wenn man von dem betreffenden Navigationsknoten<br />
direkt ins Präsentationsdiagramm zum zugehörigen UI-Element springen könnte. Eine solche<br />
'Sprung'-Funktionalität, die man als Magic<strong>UWE</strong>-Erweiterung realisieren könnte, würde es<br />
dem Entwickler deutlich erleichtern, die Bezüge zwischen Navigations- und<br />
Präsentationsmodell zu erfassen.<br />
Mit diesem Vorschlag für ein weiteres Magic<strong>UWE</strong>-Feature wollen wir die Diskussion der<br />
Umsetzbarkeit von Navigations- und Prozessmodell beenden. Trotz der kleineren<br />
93