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.
könnte man sagen, dass diese erste Controller-Action bzw. der von ihr verarbeitete HTTP-<br />
Request dem zur Prozessklasse hinführenden Prozesslink entspricht.<br />
Die zweite Action, die benötigt wird, ist in der Regel wesentlich komplexer als die erste, da<br />
sie ein wesentlich höheres Maß an Kommunikation mit Modell-Klassen enthält. Sie steuert<br />
die Verarbeitung der Daten, die der Benutzer über die Prozess-UI an den Server gesendet hat.<br />
Ihr Ablauf entspricht dem Teil der <strong>UML</strong>-Workflow-Aktivität des betreffenden Prozesses, der<br />
auf die UserAction folgt und aus einer Abfolge von SystemActions besteht: Benutzerdaten<br />
werden in Modellobjekten zusammengefasst, Validierungsfunktionalität von Modellklassen<br />
wird aufgerufen, die Modell-Schicht wird beauftragt, Datenbankoperationen durchzuführen<br />
etc., um nur einige typische Bestandteile des Ablaufs einer solchen Controller-Action zu<br />
nennen.<br />
Es ist allerdings zu beachten, dass es Prozesse geben kann, für deren Realisierung mehr als<br />
zwei Controller-Actions erforderlich sind: Dies trifft auf solche Prozesse zu, in dessen<br />
Workflow es mehr als nur eine Stelle gibt, an der der Benutzer Eingaben machen muss, um<br />
den Workflow voranzutreiben - die entsprechende <strong>UML</strong>-Aktivität enthält mehr als eine<br />
UserAction. In einem solchen Fall muss die Workflow-Aktivität auf mehrere<br />
(Controller-)Actions aufgeteilt werden, da das Ende einer jeden UserAction in der Regel einen<br />
eigenen HTTP-Request nach sich zieht: Der Benutzer schickt an mehreren Stellen im Prozess-<br />
Fluss Daten zur (Weiter-)Verarbeitung auf Serverseite ab.<br />
Wie für Navigationsklassen gilt schließlich auch für Prozesse, die in die Navigationsstruktur<br />
eingebunden sind, dass eine explizite Definition von Prozesseigenschaften in der Rails-<br />
Controller-Komponente nicht vorgesehen ist. Alle Daten, die ein Benutzer z.B. in einem<br />
Formular angegeben hat, stehen der Action, die für deren Verarbeitung zuständig ist,<br />
gesammelt in dem schon oben erwähnten params-Objekt zu Verfügung. Die Daten müssen<br />
'per Hand' zunächst aus diesem Objekt ausgelesen werden, um in der Folge geeignet<br />
verarbeitet werden zu können.<br />
7.3.3 Umsetzung des Präsentationsmodells<br />
Wie schon im letzten Abschnitt vorweggenommen, wird ein <strong>UWE</strong>-Präsentationsmodell in der<br />
View-Komponente einer Rails-Anwendung realisiert. Es ist klar, dass aufgrund des<br />
Abstraktionsprozesses, der das Modellieren begleitet, der HTML- und CSS-Code echter<br />
<strong>Web</strong>seiten - und so auch der Code der <strong>Web</strong>seiten des PVS – wesentlich mehr<br />
Detailinformationen beinhaltet, als im Präsentationsmodell spezifiziert sind. Insbesondere<br />
wird bei <strong>UWE</strong> vollkommen darauf verzichtet, Layout-Informationen über das<br />
Erscheinungsbild (wie z.B. Farbe oder Schriftgröße) und die Position von UI-Elementen auf<br />
einer <strong>Web</strong>seite zu spezifizieren. Was also die konkrete Gestaltung der <strong>Web</strong>seiten angeht, so<br />
dient das <strong>UWE</strong>-Präsentationsmodell in erster Linie als Skizze, welche die wesentlichen<br />
Aspekte der <strong>Web</strong>oberfläche festlegt.<br />
Die Umsetzung der Modellierung der PVS-Präsentationsschicht orientierte sich im<br />
Wesentlichen an drei Richtlinien: Erstens wurden Präsentationsgruppen, die mehr oder<br />
weniger eigenständige UI-Einheiten verkörpern und für die Darstellung eines Knotens aus<br />
dem Navigationsmodell zuständig sind, als (ERb)-Templates umgesetzt. Zweitens wurden UI-<br />
Eigenschaften wie z.B. «anchor»-, «textInput»-, «selection»- oder «text»-<br />
Elemente, die als Parts von Präsentationsgruppen Interaktionsmöglichkeiten für den Benutzer<br />
repräsentieren oder für die Präsentation konkreter Inhalte zuständig sind, innerhalb des<br />
jeweiligen Templates mit Hilfe geeigneter HTML-Elemente realisiert. Diese wurden entweder<br />
85