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.
Der Übergang vom Startzustand in Invalid (anstatt Valid) ist willkürlich gewählt. Bei<br />
einer Instantiierung des Patterns hängt es von der dann geltenden Validitätsbedingung und<br />
dem Anfangswert des Eingabefeldes ab, welcher Zustand zu Beginn eingenommen werden<br />
soll. Falls die diesbezügliche Vorgabe des Patterns nicht den Erfordernissen der konkreten<br />
Situation entspricht, muss bei Verwendung eines «concreteRIAFeature»s die Struktur<br />
der Patternvorlage entsprechend modifiziert werden; wird ein patternspezifischer Tagged<br />
Value verwendet, so kann eine informelle Spezifikation erfolgen (z.B. 'start – valid'), falls der<br />
'richtige' Zustand nicht aus dem Kontext hervorgeht.<br />
Erweiterung des <strong>UWE</strong>-Profils:<br />
Keine; der bereits existierende Tagged Value liveValidation genügt.<br />
5.5.4 Gruppen-Livevalidierung (Group Live-Validation)<br />
Ziel:<br />
Mehrere Live-Validierungen sollen auf einen Schlag ausgelöst werden können.<br />
Motivation und Anwendungsszenario:<br />
Ein Formular kann unter Umständen mit ungültigen Daten abgeschickt werden, ohne dass<br />
sich der Benutzer darüber im Klaren ist, und obwohl alle Eingabefelder mit einer Live-<br />
Validierung versehen sind. So könnte es z.B. ein Feld mit einem leeren Anfangswert<br />
enthalten, dessen Gültigkeit einen nicht-leeren Wert voraussetzt. Wenn der Benutzer dieses<br />
Eingabefeld übersieht und nicht bearbeitet, wird seine Live-Validierung niemals ausgelöst,<br />
also auch keine Fehlermeldung angezeigt. Wird das Formular abgeschickt, so muss der<br />
Benutzer erst die serverseitige Validierung abwarten, bis er auf seinen Eingabefehler<br />
aufmerksam gemacht wird. Für den Benutzer angenehmer wäre es, wenn sein Klick auf den<br />
'Submit'-Button zunächst eine vollständige (Live-)Validierung des Formulars auf Clientseite<br />
auslöst.<br />
Lösung: (siehe Diagramm 37 auf der nächsten Seite)<br />
Zwischen die Betätigung des Submit-Schalters (userAction) und das tatsächliche<br />
Absenden der Formulardaten (systemOperation) wird eine clientseitige Überprüfung<br />
aller Eingabefelder eingeschoben, die mit einer LiveValidation ausgestattet sind<br />
(checkOverallValidity). Enthält mindestens eines einen ungültigen Wert, so wird der<br />
natürliche Weitergang der Ereignisse unterbrochen: Das Formular wird nicht abgeschickt,<br />
stattdessen werden geeignete Fehlermeldungen angezeigt. Der zusammengesetzte Zustand im<br />
Zustandsautomaten (LiveValidations) enthält die LiveValidation-Automaten aller<br />
Eingabefelder des Formulars als Regionen. Ergibt die Validierung einen oder mehrere Fehler,<br />
so wird wieder in diesen Zustand übergangen. Die LiveValidation-Regionen nehmen jeweils<br />
den Zustand ein, in dem sie sich befanden, bevor der Benutzer den submit-Button gedrückt<br />
hat 53 .<br />
53 Bemerkung zum Zustandsautomaten: Die von der Gabelung ausgehenden Transitionen sollen eigentlich in die<br />
Historienzustände führen, nicht in den orthogonalen Zustand. Das verwendete CASE-Tool MagicDraw<br />
erlaubt allerdings keinen Übergang zwischen einer Gabelung und einem Historienzustand, obwohl sich in der<br />
<strong>UML</strong>-Superstructure [26] gegen eine solche Konstruktion keine Einwände finden lassen. Im Diagramm<br />
wurde ein solcher Übergang so gut es geht 'angedeutet'.<br />
66