Principle of Least Surprise - LinkFang.de





Principle of Least Surprise


Das Principle of Least Surprise (dt. Prinzip der geringsten Überraschung), auch unter der Abkürzung POLS bekannt, ist eine goldene Regel in der Software-Ergonomie, Mensch-Computer-Interaktion und dem Interfacedesign. Diese Regel wurde von Geoffrey James in seinem Buch The Tao of Programming als Law of Least Astonishment formuliert (Absatz 4.1). Sie besagt, dass eine Benutzerschnittstelle so ausgelegt werden sollte, dass der Benutzer möglichst wenige Überraschungen erlebt. Allgemein kann man somit folgende Regel formulieren:

„Never surprise the user!“

„Überrasche niemals den Benutzer!“

Anwendung auf Quellcode

Das Principle of Least Surprise wird auch auf den Quellcode von Anwendungen erweitert. Hierbei sollen Objekte wie Variablen, Funktionen, Methoden, Klassen und dergleichen derart benannt werden, dass deren Funktion und mögliche Seiteneffekte klar erkenntlich sind.

Beispiele für Methodenbenennung
Methode Erwartetes Verhalten
Customer GetCustomer(int customerId)
Gibt einen Kunden anhand einer eindeutigen Identifikationsnummer zurück. Sollte der Kunde nicht gefunden werden, sowie im Fehlerfall, tritt eine Ausnahme auf. Die Methode besitzt keine Seiteneffekte.
Customer GetCustomerOrNull(int customerId)
Gibt einen Kunden anhand einer eindeutigen Identifikationsnummer zurück. Sollte der Kunde nicht gefunden werden, wird der Nullwert zurückgeliefert. Im Fehlerfall tritt eine Ausnahme auf. Die Methode besitzt keine Seiteneffekte.
Customer GetCustomerOrDefault(int customerId)
Gibt einen Kunden anhand einer eindeutigen Identifikationsnummer zurück. Sollte der Kunde nicht gefunden werden, wird ein Kundenobjekt mit Standardwerten zurückgeliefert. Im Fehlerfall tritt eine Ausnahme auf. Die Methode besitzt keine Seiteneffekte.
bool TryGetCustomer(int customerId, out Customer customer)
Gibt true zurück, falls der Kunde gefunden wurde. Gibt false zurück, falls der Kunde nicht gefunden wurde oder ein Fehler aufgetreten ist. Die Methode liefert zudem den Kunden in der Variable customer zurück, falls der Kunde gefunden wird. Andernfalls wird die Variable customer auf den Nullwert gesetzt. Die Methode besitzt keine Seiteneffekte.
void SaveCustomer(Customer customer)
Speichert das Kundenobjekt und weist somit Seiteneffekte auf. Im Fehlerfall tritt eine Ausnahme auf.
async int AddCustomerAndReturnCustomerIdAsync(Customer customer)
Speichert das Kundenobjekt und weist somit Seiteneffekte auf. Anschließend wird die Identifikationsnummer des Kundenobjekts in einem Continuation Task zurückgeliefert. Im Fehlerfall tritt eine Ausnahme auf.

Beispiele

  • Software, insbesondere Chat-Software, etwa bei Eintreffen einer neuen Nachricht, sollte nicht ungefragt den Tastaturfokus übernehmen. Der Benutzer könnte gerade dabei sein, sein Kennwort in ein Formular einzugeben und durch blindes Tippen sein Kennwort stattdessen in das just erschienene Chatfenster eingeben und versehentlich an andere Personen schicken.
  • Eine Software, die Tastatureingaben aufzeichnet (Makro-Recorder), sollte auch Tastenkombinationen aufzeichnen können, die gängigerweise zum Beenden von Software verwendet werden, wie Cmd-Q, Ctrl-Q oder Alt-F4. Hierdurch sollte der Makroaufzeichnungsprozess nicht beendet werden und das noch nicht gespeicherte Makro nicht verloren gehen. Die Software sollte stattdessen eine erkennbare Möglichkeit zum Beenden des Aufzeichnungsprozesses anbieten und danach sollten die üblichen Tastenkombinationen wieder aktiv sein.
  • Generell sollte Software niemals Daten entfernen, die möglicherweise noch benötigt werden, etwa Konfigurationsoptionen, die im momentanen Zustand der Anwendung keine Wirksamkeit haben, aber bei anderer Verwendung später wieder relevant werden könnten. Ein Beispiel wären hier Stromsparoptionen für den Akkubetrieb, während ein Notebook am Stromnetz angeschlossen ist, oder Druckeinstellungen eines Dokumentes, auch wenn man den Druckdialog wieder schließt, ohne zu drucken.

Problematik

Die Problematik bei der Anwendung dieser Regel ist, dass der Programmierer oft nicht vorhersagen kann, was den Benutzer überrascht, da er eine systemnähere Denkweise hat und nicht wissen kann, was genau der Benutzer erwartet. Außerdem können verschiedene Benutzer höchst unterschiedliche Erwartungen haben. Oft erscheint auch gerade ein Verhalten, das dem Programmierer konsistent erscheint, einem Benutzer ungewohnt oder merkwürdig. Daher ist es wichtig, schon während der Entstehung einer Software oder der Bedienoberfläche eines Gerätes Rückmeldungen von zukünftigen Benutzern zu bekommen. Siehe dazu auch Extreme Programming.

Gezielte Verstöße

Besonders in der Werbetechnik wird oft gezielt gegen die Regel verstoßen, um den Anwender zu einer Aktion zu bewegen, die er im Normalfall nicht begehen würde. So wird bei Layer Ads häufig die Schaltfläche zum Öffnen der Anzeige mit einem X versehen und in einer oberen Ecke platziert, was der Erwartung des Benutzers widerspricht, da ein X konventionell die Schaltfläche zum Schließen eines Fensters markiert.

Scherzanwendungen basieren häufig auf dem Verstoß gegen diese Vorschriften, indem zwei gegensätzliche Schaltflächen (z. B. „Ja“ und „Nein“) beim Daraufzeigen mit dem Mauszeiger (hover) ihre Beschriftungen tauschen oder verschwinden, oder indem Schaltflächen, die eigentlich eine Aktion ausführen sollen, einfach gar nichts bewirken.

Weblinks


Kategorien: Benutzerschnittstelle

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Principle of Least Surprise (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.