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.
werden, die er auf der <strong>Web</strong>oberfläche ausführt.<br />
Anwendungsszenario:<br />
Beim Ausfüllen eines <strong>Web</strong>formulars kann es sinnvoll sein, den Benutzer über Auswirkungen<br />
seiner Eingaben aufzuklären, die er möglicherweise nicht erwartet, aber für ihn unerwünscht<br />
sein könnten. Beim Anlegen einer neuen Publikation im PVS hat der Benutzer bei der Angabe<br />
der Autoren nicht nur die Möglichkeit, bereits in die Datenbank aufgenommene Personen<br />
auszuwählen, sondern auch neue Personen zu spezifizieren, die noch nicht (als eigene<br />
Datensätze) persistiert wurden. Geschieht dies, so wird nach dem Abschicken des Formulars<br />
nicht nur ein neue Publikations-, sondern auch ein neuer Personendatensatz angelegt. Will der<br />
Benutzer eigentlich eine bereits vorhandene Person angeben und vertippt sich dabei, ohne es<br />
zu merken 49 , so führt dies zu einer Persistenzoperation, die vom Benutzer nicht intendiert war.<br />
Zur Vorbeugung solcher Fälle ist es wünschenswert, über einen Warn-Mechanismus zu<br />
verfügen: Dieser überprüft direkt nach der Eingabe eines neuen Autors, ob in der Datenbank<br />
schon eine Person mit den angegebenen Daten existiert, und weist den Benutzer<br />
gegebenenfalls darauf hin, dass durch das Abschicken des Formulars (auch) ein neuer<br />
Personendatensatz generiert wird.<br />
Motivation:<br />
Nicht immer ist sich der Benutzer bewusst, welche Auswirkungen seine Aktivitäten auf der<br />
<strong>Web</strong>oberfläche haben können.<br />
Lösung:<br />
Unmittelbar, nachdem der Benutzer eine 'kritische' Aktion durchgeführt hat, deren<br />
Auswirkungen ihm möglicherweise nicht bewusst sind, wird die Aktion auf potentiell<br />
unerwünschte Folgen überprüft (inspect(useraction)). Abhängig vom Ziel muss diese<br />
Überprüfung möglicherweise serverseitig durchgeführt werden, in einem solchen Fall ist die<br />
Kommunikation mit dem Server asynchron durchzuführen. Anschließend wird das<br />
Überprüfungsergebnis angezeigt.<br />
Abbildung 34: RIA-Pattern LiveFeedback (ohne Defaultwerte)<br />
Bemerkung:<br />
Dieses Pattern stellt eine Verallgemeinerung des Patterns LiveValidation 50 dar, denn auch bei<br />
der Live-Validierung wird eine Benutzeraktion auf seine Auswirkungen hin – die mögliche<br />
Invalidität der Formulardaten – überprüft. Insbesondere besitzt der LiveValidation-<br />
Zustandsautomat dieselbe Zustand-Transitions-Struktur wie der LiveFeedback-Automat.<br />
Trotzdem ist es sinnvoll, beide Patterns in den RIA-Katalog aufzunehmen: LiveFeedback als<br />
allgemeine Version eines Feedback-Features, das beliebige Arten der Überprüfung von<br />
49 Ein solcher Fall kann z.B. dann auftreten, wenn der Benutzer darauf verzichtet, einen Vorschlag der<br />
Autosuggestion-Liste auszuwählen, und die Personendaten komplett selbst eingibt.<br />
50 Für eine Darstellung dieses Patterns siehe Abbildung 20 in Abschnitt 5.1<br />
64