Des Anwenders Freud' ist des Entwicklers Leid

Die GUI-Vorteile mit großem Aufwand erkauft

01.05.1992

Bei der Entwicklung eines modernen Anwendungssystems wird etwa die Hälfte des Aufwands auf den Entwurf und die Realisierung der Benutzeroberfläche verwandt. Christiane Kapteina und Ritu Mahandru* erläutern, worin sich der Aufbau einer GUI-Umgebung von der Erstellung eines herkömmlichen Dialogsystems unterscheidet.

Seit die Apple Corp. 1984 ihren ersten Rechner, Lisa, herausbrachte, erfreuen sich grafische Benutzeroberflächen, "Graphical User Interfaces" (GUIs), wachsender Beliebtheit. Diese neue Art der Mensch-Maschine-Schnittstelle machte den Computer auf einen Schlag einem sehr viel größeren Anwenderkreis verfügbar. Die Benutzerfreundlichkeit der grafischen Oberflächen ermöglicht es auch DV-Laien, einen PC oder eine Workstation für ihre Zwecke zu nutzen. Sie müssen dazu lediglich die Handhabung einer Maus erlernen. Die Eingabe kryptischer Betriebssystem-Befehle und deren Tücken gehört der Vergangenheit an.

Während für den Endbenutzer das Leben dadurch leichter geworden ist, sieht sich der Anwendungsentwickler vor eine neue Herausforderung gestellt. Der Entwurf einer solchen Benutzeroberfläche ist nämlich mit erheblich mehr Aufwand verbunden als eine herkömmliche Lösung. Erste Erfahrungen zeigen, daß bis zu 50 Prozent des gesamten Entwicklungsaufwands auf Design und Realisierung der Oberfläche entfallen können.

Heute ist es noch sehr schwer, erfahrene GUI-Entwickler zu finden. Schließlich handelt es sich um die praktische Umsetzung einer völlig neuen Technologie. Zwar bleiben die Prinzipien und Techniken der bewährten Systementwicklungsmethoden weiterhin gültig; doch der Entwurf grafischer Oberflächen erfordert spezielle methodische Erweiterungen und Anpassungen.

So sind beispielsweise die Darstellung von Informationen sowie die Interaktion zwischen verschiedenen Anwendungen innerhalb einer GUI-Umgebung wesentlich komplexen als in herkömmlichen Dialoganwendungen. Da solche Techniken kaum aus einer schriftlich niedergelegten Dokumentation abzuleiten sind, spielt das Prototyping beim GUI-Entwurf eine entscheidende Rolle.

Die Benutzeroberfläche einer GUI-Umgebung unterscheidet sich in mehreren Aspekten von den herkömmlichen starren Dialogsystemen: Zunächst verändert ein GUI die Art und Weise, in der der Benutzer mit einem System kommunziert. Traditionellen Systemen liegt normalerweise ein Aktion-Objekt-Modell zugrunde. Der Benutzer entscheidet sich für eine bestimmte Aktion, um anschließend die Daten zu editieren, auf die der gewählte Befehl anzuwenden ist. Zum Beispiel folgt auf die Auswahl der Funktion "Löschen Kunde" (Aktion) die Eingabe der Kundennummer (Objekt).

Ein GUI arbeitet genau in der umgekehrten Richtung, nämlich nach dem Objekt-Aktion-Ansatz: Zunächst wird aus einer am Bildschirm angezeigten Liste durch Blättern und Anklicken die Kundennummer ausgewählt; dann erfolgt die Auswahl der Funktion "Löschen Kunde" aus einem Pull-down-Menü.

Äußerliche Beschreibung reicht nicht aus

Der zweite Aspekt, in dem sich ein GUI von einem traditionellen Dialogsystem unterscheidet, ist die flexible Navigation zwischen den einzelnen Anwendungen. In einer GUI-Umgebung können alternative Aktionen in nahezu beliebiger Reihenfolge ausgeführt werden. Daher hängt die Art, wie der Benutzer mit seinem System kommuniziert, entscheidend von der Gestaltung der Benutzeroberfläche ab. Im traditionellen Dialogsystem wird sie hingegen vom Ablauf der Transaktion bestimmt.

Einen weiteren wichtigen Aspekt stellt die verbesserte Präsentation von Daten dar. Ein GUI wird normalerweise auf grafikfähigen PCs oder Workstations installiert, wo es alle Techniken zur besseren Visualisierung von Daten - beispielsweise unterschiedliche Diagrammdarstellungen - nutzen kann.

Last, but not least, spielt auch die dynamische Repräsentation von Daten eine Rolle. Eine GUI-Oberfläche ist weniger statisch als eine herkömmliche Dialoganwendung. In GUI-Systemen lassen sich Daten viel flexibler darstellen, beispielsweise als Symbole ("Icons") oder in Teilfenstern, die sich während des laufenden Dialogs bewegen und in ihrer Größe beliebig verändern lassen.

Der Entwurf eines einsetzbaren GUI-Systems besteht nicht aus äußerlichen Beschreibungen von Fenstern und Buttons sowie deren Eigenschaften. Das reicht leider nicht aus. Der Entwickler braucht für den Entwurf eines GUI adäquate Techniken, die ihm die Beschreibung der Benutzeranforderung an eine grafische Oberfläche erlauben. Mehr und mehr setzt sich nämlich die Überzeugung durch, daß eine Benutzeroberfläche für den Anwender den größten Nutzen bringt, wenn sie seine eigenen Vorstellungen von den auszuführenden Aufgaben reflektiert.

Ein Modell für die Benutzersicht einer Anwendung muß die Struktur der Aufgaben sowie deren zeitliche und fachliche Abhängigkeiten umfassen. Der erste Schritt beim GUI-Entwurf besteht also im Identifizieren von Objekten, mit denen der Benutzer in seinem Aufgabenbereich umgeht. Im nächsten Schritt entsteht dann ein Dialogmodell, das diesen Objekten des Anwendungsbereichs Fenster zuordnet, die als Objekte der Benutzeroberfläche definiert sind.

Danach beschreibt der Entwickler eine Hierarchie von Fensterklassen, wobei die oberste Hierachieebene jeweils die allgemeine Ebene bildet, die dann über mehrere Ebenen weiter detailliert wird. So ist jede Fensterklasse eine stärker spezialisierte Form der übergeordneten Klasse und "erbt" deren gesamte Eigenschaften in bezug auf die Darstellung der Daten. Dazu gehören beispielsweise Eingabefelder, Scroll-Bars oder Radio-Buttons sowie Dialogaktionen, etwa Menüpunkte. Natürlich kann die untergeordnete Fensterklasse eine Reihe weiterer Eigenschaften besitzen, die sie nicht "geerbt" hat.

Schließlich ist es notwendig, mit einer geeigneten Diagrammtechnik die Navigationspfade zwischen verschiedenen Fenstern zu beschreiben. Damit wird ein entscheidender Teil der Anwendungslogik für die Benutzeroberfläche festgelegt. Jede auf einem Fenster ausgeführte Operation ist von dessen momentanem Zustand abhängig und verändert diesen gegebenenfalls.

Visualisierte Systemreaktionen

Methodische Ansätze wie Structured Design (SD) unterstützen den Entwurf von Dialogoberflächen für traditionelle Anwendungen. Der Dialogentwurf ist hier von den Techniken und der Notation her auf Benutzeroberflächen zugeschnitten, bei denen der Endanwedner ein Großrechner-Terminal mit einer Tastatur benutzt. Die Dialogverarbeitung besteht dabei im wesentlichen aus der Übergabe der vom Benutzer in eine Maske eingegebenen Dateninhalte. Die Verarbeitung dieser Daten wird über Transaktionen und die diesen Transaktionen zugrundeliegenden funktionalen Anforderungen gesteuert.

Beim Entwurf von GUI-Dialogen verlagert sich der Schwerpunkt entscheidend zugunsten der Benutzeroberfläche des Systems. Dazu gehören zum einen Fenster und Icons, die der Benutzer öffnen, schließen, bewegen und in ihrer Größe verändern kann, zum anderen die unmittelbar visualisierten Reaktionen des Systems auf solche Aktionen des Benutzers. Ein weiterer wichtiger Aspekt ist die Möglichkeit des Navigierens zwischen verschiedenen Teilen der Oberfläche und der parallelen Bearbeitung verschiedener Anwendungen. Der erste Schritt zur Beschreibung einer grafischen Benutzeroberfläche besteht demnach darin herauszufinden, welche Aufgaben der Benuzter auszuführen hat und wie er sich den Ablauf bei der Ausführung seiner Aufgaben vorstellt. Die Oberfläche wird dann schrittweise definiert, wobei intensiv von der Technik des Prototyping Gebrauch gemacht werden sollte. Dieses inkrementelle Vorgehen umfaßt das Auffinden von Dialogobjekten, die Analyse der Benutzeraufgaben, die Abbildung dieser Aufgaben als Dialogaktionen sowie die detaillierte Definition der verschiedenen Fenster zur Präsentation bestimmter Informationen.

Dabei sollte folgendermaßen vorgegangen werden: Am Beginn steht die grobe Beschreibung einiger zentraler Objekte und Aufgaben. Mit diesen kann nun hinsichtlich alternativen grafischer Darstellungen und unterschiedlicher Arten der Verfeinerung experimentiert werden. Indem - durch Prototyping - gemeinsam mit dem Benutzer alle Alternativen durchgespielt werden, läßt sich diejenige Variante finden, die das "natürliche Vorgehen" des Benutzers optimal abbildet.

Dieser Prozeß wird dann für weitere Objekte und Aufgaben wiederholt, wodurch sich der Funktionsumfang des Systems schrittweise erweitert. Schließlich müssen die ursprünglichen Definitionen verfeinert werden. Am Ende dieses iterativen Prozesses steht ein abschließendes Prototyping, das die Ausführung sämtlicher geforderter Aufgaben umfaßt und die Ergonomie der geschaffenen Oberfläche verifiziert.