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.
entsprechend seinen Wünschen zu modifizieren. Außerdem müsste er noch das Feature dem<br />
Ziel-Element des Präsentationsmodells über den Tagged Value riaFeature zuweisen.<br />
Diese etwas mühsame Arbeit könnte ihm eine Erweiterung des Magic<strong>UWE</strong>-Plugins<br />
abnehmen. Deren Funktionalität würde folgendermaßen aussehen:<br />
Anstatt das Pattern-Template in der RIA-Bibliothek zu suchen und anschließend manuell in<br />
das Zielpaket zu kopieren, öffnet der Modellierer das Kontext-Menü des<br />
Präsentationselements, das mit dem RIA-Feature versehen werden soll. Unter einer Option<br />
'RIA-Pattern-Vorlagen' kann er aus einer Liste der verfügbaren Pattern auswählen. Nachdem<br />
ein Name für das Feature festgelegt worden ist, wird das ausgesuchte Pattern automatisch<br />
unter diesem Namen als ConcreteRIAFeature in das RIA-Paket kopiert, wo es vom<br />
Modellierer weiterverarbeitet werden kann. Der Modellierer kann sich optional dafür<br />
entscheiden, dass die variablen Elemente des Patterns in der Vorlage automatisch durch ihre<br />
Defaultwerte (falls vorhanden) ersetzt bzw. konkretisiert werden. Auch das Setzen des<br />
entsprechenden Tag Values beim Ziel-UI-Element übernimmt das Tool. Außerdem wird im<br />
generierten ConcreteRIAFeature an einer geeigneten Stelle vermerkt, welches RIA-<br />
Pattern als Vorlage dient. Schließlich wird im Diagramm des gerade erzeugten Elements die<br />
Schrift- und Zeichenfarbe verändert. Dadurch werden sich die durchgeführten Veränderungen<br />
vom übrig gebliebenen Gerüst des RIA-Pattern optisch abheben, und der Modellierer kann<br />
stets erkennen, welche Elemente er dem Pattern-Template hinzugefügt hat.<br />
5.3 Ein Hybrid-Vorschlag zur Modellierung von RIA-Features<br />
In den letzten beiden Sektionen wurden zwei Vorschläge diskutiert, die den <strong>UWE</strong>-Ansatz zur<br />
RIA-Modellierung erweitern und ihm eine höhere Ausdruckskraft verleihen. Hinsichtlich<br />
ihrer Stärken und Schwächen sind sie komplementär: Die zweite Modellierungstechnik,<br />
welche auf der Erstellung eigener RIA-Zustandsautomaten basiert, ist sehr generisch: RIA-<br />
Patterns dienen nur als Vorlagen, die beliebig an die Erfordernisse des konkret zu<br />
modellierenden Features angepasst werden können. Allerdings bringt diese Allgemeinheit<br />
einen gewissen 'Overhead' bei der Modellierung mit sich. Für jedes konkrete RIA-Feature, das<br />
modelliert werden soll, muss ein eigener Zustandsautomat angelegt werden, selbst wenn das<br />
zu modellierende Verhalten vollkommen 'standardmäßig' ist, d.h. durch ein RIA-Pattern aus<br />
der Pattern-Bibliothek und seine Defaultwerte schon vollständig beschrieben ist. Zwar würde<br />
durch CASE-Tool-Unterstützung wie oben beschrieben ein entsprechender<br />
«ConcreteRIAFeature» - Automat automatisch generiert werden, so dass der<br />
Modellierer kaum Arbeit zu verrichten hätte. Doch für den Entwickler, der die <strong>UWE</strong>-Modelle<br />
umzusetzen hat, ist es bisweilen umständlich, bei jedem zu realisierenden RIA-Feature, auf<br />
das er durch einen entsprechenden Tagged Value im Präsentationsdiagramm hingewiesen<br />
wird, die genaue und ausführliche Spezifikation im RIA-Feature-Paket abzurufen. Gerade bei<br />
einfachen Features, deren Verhalten durch ein RIA-Pattern inklusive Defaultwerte<br />
ausreichend spezifiziert ist, würde ein kurzer Hinweis im entsprechenden Element des<br />
Präsentationsmodells vollkommen genügen, um einen erfahrenen RIA-Entwickler<br />
ausreichend zu instruieren - insbesondere dann, wenn dieser mit den <strong>UWE</strong>-RIA-Patterns<br />
genügend vertraut ist. Und bei genau diesen Fällen liefert, wie oben dargelegt, der erste<br />
Vorschlag eine knappe und gleichzeitig hinreichend präzise Modellierung.<br />
Zur Auswahl stehen also zwei Modellierungstechniken, die sich hinsichtlich ihrer Stärken<br />
vortrefflich ergänzen würden. In einer solchen Situation empfiehlt es sich, auf eine<br />
Entscheidung für eine der beiden Alternativen und gegen die andere zu verzichten, und sich<br />
stattdessen um eine Lösung zu bemühen, welche die Stärken beider Gegenspieler in sich<br />
57