Lisa möchte ein farbiges Foto in ein Graustufenbild umwandeln. Ihr Bildbearbeitungsprogramm enthält ein umfangreiches Menü mit vielen Befehlen. Lisa weiß jedoch nicht, mit welchem Befehl sie ihr Ziel erreichen kann. Mit Hilfe einer Internet-Suchmaschine findet sie schnell heraus, dass der Vorgang zum Entfärben eines Fotos oft als "Entsättigen" bezeichnet wird. Nun durchsucht sie sämtliche Menüs ihres Programms nach einem Befehl mit diesem Namen. Tatsächlich wird sie nach einer Weile fündig und kann nun endlich die Bildbearbeitung vornehmen.
Diese kleine Geschichte zeigt ein typisches Beispiel für eine problematische Mensch-Computer-Interaktion: Nur mit hohem zusätzlichen Arbeitsaufwand findet der Anwender einen Weg, dem Computer den gewünschten Arbeitsauftrag mitzuteilen. Um dieses Kommunikationsproblem näher zu analysieren, möchte ich den allgemeinen Ablauf der Mensch-Computer-Interaktion zunächst in drei wesentliche Schritte zerlegen:
- Der Mensch besitzt die Absicht, etwas mit Hilfe des Computers zu tun (ein Graustufenbild erzeugen).
- Er muss die Absicht zunächst in den richtigen Befehl übersetzen (Entsättigen).
- Anschließend muss er den Befehl auf korrekte Weise an der Mensch-Computer-Schnittstelle eingeben (Anklicken der entsprechenden Menüoption).
Die Schritte 2 und 3 können erheblichen Aufwand verursachen, wenn die Benutzerschnittstelle mangelhaft gestaltet ist. Zu jedem Zeitpunkt in der Geschichte der Computertechnik werden daher die aktuellen Entwicklungen auf den Gebieten der Computergrafik und Algorithmik ausgenutzt, um das Kommunikationsproblem zu minimieren:
Die Kommandozeilenschnittstelle
Bevor es grafische Benutzeroberflächen (GUIs) gab, konnten Befehle ausschließlich über die Kommandozeile eingegeben werden. Ein Kommandozeilenprogramm bietet wenig intuitive Unterstützung für Schritt 2 (die Befehlsübersetzung), denn die benötigten Befehle müssen zunächst der Dokumentation des Programms entnommen werden. Die Eingabe von Befehlen (Schritt 3) ist fehleranfällig, denn falsch buchstabierte Kommandos werden abgelehnt oder führen zu unerwünschten Ergebnissen. Sie wird außerdem durch ggf. benötigte Befehlsparameter erschwert.
Die grafische Benutzerschnittstelle
Grafische Benutzeroberflächen wurden (seit Anfang der 1980er Jahre) mit der Absicht entwickelt, Schritt 2 zu vereinfachen. Das Nachschlagen von Befehlen ist häufig nicht mehr erforderlich, denn das Programm präsentiert seine verfügbaren Befehle grafisch, z.B. in Menüs und Werkzeugleisten (Toolbars). Auch Schritt 3 ist auf dem ersten Blick einfacher: Das Anklicken von Menüeinträgen ist weniger fehleranfällig und erfordert einen geringeren kognitiven Aufwand als das Eintippen von Befehlen auf der Kommandozeile.
Trotzdem ist der Aufwand für die Schritte 2 und 3 oft immer noch zu hoch. Es gibt zwei wesentliche Probleme: Zum einen ist es für den Anwender nicht immer offensichtlich, mit welchen Befehlen er ein bestimmtes Ziel erreichen kann. Zum anderen können auch in grafischen Oberflächen Befehle schlecht auffindbar sein (da sie z.B. in hierarchischen Menüstrukturen "versteckt" sind).
Neu: die kognitive Benutzerschnittstelle
In den letzten Jahren haben neue Eingabemöglichkeiten Einzug gehalten. Anwender können zusätzlich u.a. über menschliche Sprache (gesprochen oder eingetippt) oder über Touch-Gesten mit dem Computer kommunizieren. Gleichzeitig werden die Algorithmen zur Interpretation von Sprache oder Gesten immer leistungsfähiger. Dadurch soll der Aufwand für Schritt 2, d.h. für die Befehlsübersetzung, weitestgehend reduziert werden. Der Anwender soll seine in Schritt 1 formulierte Absicht möglichst natürlich an der Benutzerschnittstelle formulieren. Im Idealfall wird anschließend die Interpretation der Absicht und die Zuordnung zu einem konkreten Befehl vollständig vom Computer übernommen. Auch die Befehlsausführung (Schritt 3) kann danach ohne weiteres Zutun des Anwenders erfolgen.
Die menschliche Art der Kommunikation bietet für Spracherkennungsalgorithmen einige Herausforderungen: Es werden Informationen übermittelt, die unsicher, unpräzise und mehrdeutig sein können. Die Algorithmen setzen u.a. Methoden des probabilistischen Schließens ein, um die formulierte Absicht des Nutzers mit möglichst hoher Wahrscheinlichkeit richtig zu interpretieren.
Benutzerschnittstellen, die in der Lage sind
- analoge menschliche Kommunikationssignale wie z.B. Sprache, Gesten oder Gesichtsausdrücke zu verarbeiten und logische Schlussfolgerungen daraus zu ziehen und
- mit Unsicherheit und Unvollständigkeit der vom Menschen übermittelten Informationen umzugehen
werden auch als kognitive Benutzerschnittstellen bezeichnet (weitere Merkmale kognitiver Benutzerschnittstellen sind bei Young, 2010 zu finden).
Merkmale kognitiver Benutzerschnittstellen sind heute bereits in vielen Software-Anwendungen anzutreffen:
- Suchfunktion in Betriebssystemen (z.B. Windows 10): Um ein Programm oder eine Datei zu finden, kann der Anwender den jeweiligen Namen als Suchbegriff eingeben. Das Programm oder die Datei erscheint als Suchergebnis und kann sofort ausgeführt bzw. geöffnet werden. Auch Suchbegriffe mit Schreibfehlern werden in der Regel vom Suchalgorithmus richtig zugeordnet (Unterstützung für Schritt 2). Der Aufwand zum manuellen Durchforsten von Programmlisten oder Ordnerstrukturen bleibt dem Anwender dank automatischer Suche erspart (Unterstützung für Schritt 3).
- Digitale Assistenten wie z.B. Siri, Cortana oder Google Now ersparen dem Anwender den Aufwand, bestimmte Programme selbst zu bedienen. Sie suchen z.B. per Sprachaufforderung nach Zugverbindungen, nehmen Eintragungen im Terminkalender vor, stellen den Wecker oder öffnen Webseiten.
- Innovative Zeichenprogramme wie z.B. sketchometry erlauben es dem Anwender, Objekte intuitiv mit den Fingern oder mit einem Stift zu skizzieren. Die Software erkennt die Skizze und wandelt sie in ein exaktes geometrisches Objekt um. Im Gegensatz zu vielen anderen Zeichenprogrammen ist eine Bedienung umfangreicher Menüs, in der alle verfügbaren Formen aufgelistet werden, nicht erforderlich. Das Programm muss aus höchst unpräzisen Skizzen die Art der Figur (Kreis, Viereck, Gerade) sowie deren Eigenschaften (Radius, Länge, Breite) schlussfolgern.
- IBM Watson ist ein Computersystem, welches auf die Verarbeitung unstrukturierter Daten, wie z.B. menschliche Sprache, Handschrift oder Bilder, spezialisiert ist. Watson kann sowohl komplexe menschliche Fragestellungen verstehen, als auch die passenden Antworten durch die Analyse umfangreicher (ggf. unstrukturierter) Datenmengen ermitteln.
Prognose: Deklarative Benutzerschnittstellen?
Oft muss nicht nur eine, sondern eine ganze Sequenz von Programmbefehlen ausgeführt werden, um ein bestimmtes Anwenderziel zu erreichen. Ich stelle mir kognitive Benutzerschnittstellen vor, die nach der Interpretation einer Spracheingabe selbstständig alle benötigten Befehle zusammenstellen und ausführen. Der Begriff "deklarative Benutzerschnittstelle" wäre meiner Meinung nach für solche Systeme passend, denn der Anwender legt hier nicht mehr fest, wie eine Aufgabe ausgeführt wird, sondern er beschreibt lediglich, was er als Ergebnis erhalten möchte. Die Arbeit mit einem deklarativen Bildbearbeitungsprogramm könnte dann wie folgt ablaufen:
Lisa teilt ihrem Bildbearbeitungsprogramm mit: "Das Blau des Himmels verstärken!" Das Programm interpretiert die Eingabe und führt eine Reihe von Arbeitsschritten aus:
- Das Programm findet heraus, welcher Bereich des Bildes als "Himmel" klassifiziert werden kann.
- Das Programm selektiert diesen Bereich zur weiteren Bearbeitung.
- Das Programm erhöht die Farbsättigung im selektierten Bereich.
Natürlich gibt es auch andere Strategien, um das Arbeitsziel zu erreichen (z.B. durch den Einsatz eines Grauverlaufsfilters).
Fazit
Das Spektrum an Möglichkeiten zur Gestaltung von Benutzerschnittstellen erweitert sich ständig. Welche Möglichkeiten zum Einsatz kommen, sollte im Softwareentwicklungsprozess in Ruhe abgewogen werden. Wenn mit einer sorgfältig entworfenen grafischen Oberfläche alle Use-Cases (Anwendungsfälle) effizient ausgeführt werden können, muss nicht zwangsläufig noch eine Sprachverarbeitung ergänzt werden. Wenn es die Anwendungsdomäne jedoch nicht zulässt, eine weitestgehend selbsterklärende und intuitive Oberfläche zu gestalten, sollte die Ergänzung einer kognitiven Kommunikationsschicht in Betracht gezogen werden. Einfache Maßnahmen können dabei u.U. bereits ausreichen, wie z.B. der Einbau einer Suchfunktion, um Befehle schneller aufzufinden und auszuführen.