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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!