08.12.2012 Aufrufe

2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...

2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...

2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!