Usability Pattern | Objektbezogenes Undo |
---|---|
Problem | Benutzer möchten Aktionen rückgängig machen, die sie für ein Objekt versehentlich oder irrtümlich ausgeführt haben oder deren Resultate nicht ihren Erwartungen entsprechen. |
Lösung |
Erlaube Benutzern, ausgeführte, objektbezogene Aktionen rückgängig zu machen und den vorigen Zustand des Objekts wiederherzustellen. Die objektbezogene Undo-Möglichkeit gleicht in weiten Teilen dem Globalen Undo . Allerdings wird beim objektbezogenen Undo für verschiedene Datenobjekte, die Benutzer mit dem System verwalten, jeweils eine eigene Undo-Historie verwendet. Dadurch können Benutzer Aktionen für einzelne Objekte rückgängig machen, unabhängig von zwischenzeitlich auf anderen Objekten ausgeführten Aktionen. |
Nutzungskontext |
|
Begründung |
Die Möglichkeit, Aktionen rückgängig zu machen, nimmt Benutzern die Furcht vor einer Fehlbedienung des Systems und ermutigt sie, die vom System angebotenen Aktionen ausprobieren (explorative Nutzung). Das Wissen darum, das Fehler nicht dauerhaft sind, sondern per Undo einfach korrigiert werden können, lässt Benutzer entspannter und zufriedener arbeiten. Die schnelle Fehlerkorrektur per Undo erhöht zudem die Benutzungseffizienz. |
Gestaltungsgrundsätze | Lernförderlichkeit, Steuerbarkeit, Fehlertoleranz |
Risiken, Nachteile, Kosten |
Beim objektbezogenen Undo verwaltet das System mehrere Undo-Historien, innerhalb derer Benutzer Aktionen rückgängig machen und ggf. wiederherstellen können. Für Benutzer kann dies verwirrend sein, wenn sie z.B. eine Aktion auf einem Datenobjekt ausführen, dann zu einem anderen Datenobjekt wechseln und dort die Möglichkeit vermissen, die gerade ausgeführte Aktion zurückzunehmen (da die Undo-Historie des nun aktiven Datenobjekts leer ist). Ein globales Undo mit einer einzelnen Undo-Historie ist leichter verständlich, allerdings nicht so flexibel wie das objektbezogene Undo. |
Zusammenspiel |
Alternative Globales Undo Alternativ zur objektbezogenen Undo-Möglichkeit kann auch ein globales Undo angeboten werden, bei dem eine einzelne Undo-Historie für alle Aktionen geführt wird. Abhängigkeit Warnung In nahezu allen Systemen können Benutzer Aktionen ausführen, die aus technischen oder konzeptuellen Gründen nicht rückgängig gemacht werden können. Benutzer sollten darauf durch eine entsprechende Warnung explizit hingewiesen werden, damit sie nicht irrtümlich davon ausgehen, auch diese Aktionen per Undo zurücknehmen zu kömmen. |
Anforderungserhebung |
Identifiziere die Arten von Datenobjekten, die Benutzer mit dem System verwalten (z. B. verschiedene fachliche Datensätze).
Identifiziere Aktionen, die rückgängig gemacht werden können.
|
Anforderungsspezifikation |
Spezifiziere globale Anforderungen für das Usability Feature „Objektbezogenes Undo“ des Systems:
Spezifiziere, in welchen Interaktionen zwischen Benutzern und System das Usability Feature „Objektbezogenes Undo“ eingesetzt werden soll. Annotiere und ergänze dazu vorhandene Use Cases in der Spezifikation:
|
Architekturentwurf |
Um Aktionen objektbezogen rückgängig zu machen (Undo) bzw. wiederherzustellen (Redo), muss das System für jedes Datenobjekt die ausgeführten Aktionen in einer eigenen Historie protokollieren. Auf Architekturebene werden hierfür oft zwei Entwurfsmuster verwendet werden: Das Kommando-Entwurfsmuster (command pattern) erlaubt die Kapselung von Aktionen als Objekte, die alle für die Ausführung bzw. Rücknahme benötigten Informationen enthalten. Mit dem Memento-Entwurfsmuster (memento pattern) kann der aktuelle Zustand von Datenobjekten (z. B. fachlichen Datensätzen) gespeichert und so zu einem späteren Zeitpunkt wiederhergestellt werden. |