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.

Beschreibung von RIA-Features eingesetzt werden zu können.<br />

• Da RIA-Features stets mit der Präsentationsschicht eines <strong>Web</strong>-Systems verknüpft sind,<br />

muss ein sprachlicher Bezug auf Elemente des Präsenationsmodells ermöglicht werden.<br />

Dazu dient der Ausdruck this, welcher einen Kontext für das RIA-Feature festlegt und<br />

sich auf das Element des Präsentationsmodells bezieht, das mit dem RIA-Feature über<br />

den Tagged Value riaFeature verknüpft ist. Dient dieses Element als Container für<br />

andere Präsentationselemente, so kann auf diese über den Punktoperator zugegriffen<br />

werden ( this.containedElement ). Zur Bezugnahme auf ein enthaltenes Element<br />

dient dessen Eigenschafts- bzw. Partname innerhalb des umgebenden UI-Containers.<br />

Allerdings ist es in <strong>UWE</strong>-Präsentationsmodellen üblich, bei Kompositionsstrukturen nur<br />

den Namen des Typs des enthaltenen Elements anzugeben, nicht aber seinen Namen als<br />

Part des Containers 47 . Aus diesem Grund wird folgende Konvention festgelegt: Soll mit<br />

der gerade beschriebenen Schreibweise die Bezugnahme auf eine namenlose UI-<br />

Element-Eigenschaft erfolgen, so wird implizit der Name ihres Typs, allerdings mit<br />

kleinem Anfangsbuchstaben, verwendet. Enthält also z.B. eine Präsentationsgruppe, die<br />

den Kontext des RIA-Features darstellt, ein «textInput»-Element vom Typ Year<br />

ohne Eigenschaftsnamen, so wird dieses Element mit this.year referenziert.<br />

• Wenn möglich, wird der Bezug auf Präsentationselemente über den Kontext des RIA-<br />

Features hergestellt. Allerdings ist davon auszugehen, dass dies nicht immer möglich ist.<br />

Man denke z.B. an eine <strong>Web</strong>anwendung, zu dessen Seitenlayout ein Message Board<br />

gehört, das im Rahmen verschiedenster Funktionalitäten als Anzeigetafel verwendet<br />

wird. Dies bedeutet, dass das Board Bestandteil jeder Seite der Anwendung ist. Unter<br />

anderem soll die <strong>Web</strong>anwendung nun ein Formular mit Live-Validierung anbieten;<br />

Fehlermeldungen sollen in eben dieser Nachrichtentafel angezeigt werden. Ohne das<br />

Präsentationsmodell einer solchen Anwendung skizzieren zu wollen, ist klar, dass sich<br />

das Präsentationselement, welches das MessageBoard repräsentiert, nicht in dem<br />

Container befindet, welcher mit dem LiveValidation-RIA-Feature versehen wird und<br />

damit den Kontext des Features stellt (Dafür befindet sich das Message Board<br />

schlichtweg zu weit oben in der Kompositionshierarchie der UI).<br />

In solchen Fällen muss der Bezug auf das Präsentationselement auf andere Weise<br />

erfolgen. Man könnte z.B. die Bezugnahme auf das Wurzelelement der<br />

Präsentationshierarchie über dessen Namen in RIA-Features generell erlauben. Ist im<br />

gerade geschilderten Fall die Nachrichtentafel (als Eigenschaft vom Typ<br />

MessageBoard) direkt im obersten Element (MainPage) des Präsentationsmodells<br />

enthalten, so könnte man die Anzeigetafel wieder mit Hilfe des Punkt-Operators<br />

referenzieren: MainPage.messageBoard. Dies bedeutet allerdings, dass man in<br />

einem RIA-Feature über das Wurzelelement auf alle Präsentationselemente zugreifen<br />

kann.<br />

• Benutzer-Interaktionen, welche Systemoperationen triggern, werden durch Angabe des<br />

UI-Ereignisses beschrieben, das durch die Interaktion ausgelöst wird. Typische<br />

Ereignisse sind z.B. blur (Aufgabe des Fokus eines UI-Elements) oder click (einfacher<br />

Mausklick auf ein UI-Element). Ein Bezug auf dasjenige UI-Element, das als Empfänger<br />

des Ereignisses festgelegt werden soll, wird in Klammern hinzugefügt:<br />

blur(inputField); siehe [24] für eine detaillierte Auflistung solcher Ereignisse.<br />

47 Siehe z.B. [23],S.33f<br />

60

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!