Anbieter messen applikationsorientierte Oberflächen schaffen:

Benutzerinterface überfordert ungeübte User

07.11.1986

Zu kontroversen Diskussionen hat die Benutzerschnittstelle von Unix in der DV-Welt geführt. Manche Verfechter dieses Konzepts halten es für nicht übertrieben, wenn die Unix-Kommandosprache als vollkommenste und mächtigste existierende Betriebssystemschnittstelle bezeichnet wird. Als Katastrophe für Gelegenheitsbenutzer bezeichnen hingegen die Kritiker das System: Es verletze sowohl die Prinzipien des Human Engineering als auch die Regeln des gesunden Menschenverstandes.

Der Gelegenheitsbenutzer, zum Beispiel im Bürobereich, wird kaum mit Unix vertraut werden. Er hat sich mit wenig aussagekräftigen Kommandonamen und -parametern herumzuschlagen und wird zudem irritiert durch die "Schweigsamkeit des Systems": Rückmeldungen von Kommandos erfolgen nur im Fehlerfall, die Meldungen sind erschreckend kurz und für den Nicht-Eingeweihten oft unverständlich. Insbesondere gibt es praktisch keine Rückfragen bei gefährlichen Kommandos.

Betriebssystem für Profis

Die Original-Benutzeroberfläche ist damit für den ungeübten User tatsächlich nicht geeignet. Daher haben die Anbieter über die Original-Benutzeroberfläche anwendungsorientierte Oberflächen zu legen. Gelungene Beispiele dafür sind etwa die Menü-Systeme in Sinix (Siemens) und "For Pro" (Fortune). Beide Hersteller bieten Unix-Systeme für die Büroumgebung an.

Der professionelle Benutzer findet dagegen mit Unix eine Arbeitsumgebung vor, die in Mächtigkeit und Flexibilität einmalig ist. Einen Eindruck davon gibt beispielsweise Kommando "sed'/$/d'eindat" zum Entfernen von Leerzeilen. Es ruft den nicht-interaktiven Streameditor "sed" auf, der neben interaktiven Editoren Bestandteil jedes Unix-Systems ist. Die Datei "eindat" wird mit dem Editor-Befehl "/ $/d" bearbeitet. Der Befehl löscht (delete) alle Zeilen, die zwischen Zeilenanfang (symbolisiert durch ) und Zeilenende ($) keine Zeichen enthalten. Der Ausdruck , " $'" adressiert alle Zeilen, bei denen auf den Zeilenanfang direkt das Zeilenende folgt.

Im Bereich der Unix-Arbeitsumgebung sind folgende Konzepte systematisch realisiert:

- Multiuser/Multitasking,

- hierarchisches Dateisystem,

- Umlenkung der Ein-/Ausgabe,

- geräteunabhängige Ein-/Ausgabe,

- große Anzahl an Dienstprogrammen, Filtern,

- Pipes,

- Programmeigenschaften der Kommandosprache (Kontrollstrukturen).

Die beiden ersten Punkte, Multiuser/Multitasking und hierarchisches Dateisystem, sind nicht Unix-spezifisch, sondern Merkmale vieler Betriebssysteme. Bei Unix kommt hinzu, daß das Multitasking-Prozeßkonzept sehr flexibel ist und dem Anwender erlaubt, praktisch beliebig viele verschiedene Aufgaben parallel zu bearbeiten.

Das Dateisystem sieht der Anwender als einen Baum, der sich über beliebig viele Datenträger erstreckt. Die Zuordnung der Dateidatenträger ist transparent. Bei entsprechend vernetzten UNIX-Systemen stellt sich die Menge der Dateisysteme aller beteiligten Rechner ebenfalls als ein einziger Baum dar.

Durch die Umlenkung der Ein-/ Ausgabe kann auf Kommandosprachen-Ebene festgelegt werden, woher ein Unix-Kommando oder ein Anwenderprogramm seine Daten liest oder schreibt, Spezifisch für Unix ist die geräteunabhängige Ein-/ Ausgabe. Sieht man von den speziellen Möglichkeiten der Gerätesteuerung ab, unterscheidet sich das Interface zu einem E/A-Gerät nicht von der Schnittstelle zum Schreiben oder Lesen einer Datei.

Seine Mächtigkeit erhält Unix durch die große Anzahl an Dienstprogrammen. Sie lösen viele Aufgaben, für die man in anderen Betriebssystemen eigens ein Programm schreiben muß. Die meisten Dienstprogramme können als "Filter" arbeiten. Ein Filter ist ein Programm, daß seine Daten vom Standardeingabemedium (stdin) liest, sie verarbeitet, und dann auf das Standardausgabemedium (stdout) schreibt. stdin und stdout sind normalerweise die Terminaltastatur und der Bildschirm oder die entsprechende Umlenkung je eine Ein- und Ausgabedatei.

Mit Filtern können Pipes aufgebaut werden. In einer Pipe dient die Ausgabe eines Filters als Eingabe für den nächsten Filter. Die Daten aus einer Datei werden von den "hintereinandergeschalteten" Filtern bearbeitet und in eine Ausgabedatei geschrieben.

Die praktische Anwendung einer Pipe ist in Abbildung 1 zu sehen. Dort wird ein Eingabetext auf Tippfehler überprüft. Der Text wird zunächst in einzelne Wörter zerlegt (ein Wort pro Zeile). Der nächste Filter (sort) sortiert die Zeilen und damit die Wörter. Mit dem Filter "unique" werden mehrfach auftretende Zeilen bis auf jeweils eine entfernt und die Wörter an den Filter "common" weitergegeben "common" führt einen Vergleich der Wörter mit einer Datei "dictionary", einer Sammlung korrekt geschriebener Wörter, durch. Alle Wörter, die zwar im Text aber nicht im "dictionary" vorkommen, werden ausgegeben.

Der Kommandointerpreter "Shell" akzeptiert Kontrollstrukturen, wie man sie aus höheren Programmiersprachen kennt. Dies ist die Basis für eine methodische Vorgehensweise bei der Software-Entwicklung, wie sie in Abbildung 2 dargestellt ist.

Bei dieser Methode werden zunächst die Funktionalität der Kommandos und die Programmeigenschaften der Shells benutzt, um eine Probeimplementierung durchzuführen. Was nicht vollständig aus Kommandos zusammengesetzt werden kann, wird selbst programmiert. Mit dem so erhaltenen Prototyp kann dann bereits gearbeitet werden. Die dabei gewonnen Erfahrungen und die Wünsche des Auftraggebers führen zum Umschreiben des Prototyps. Nachdem man so die geforderte Funktion realisiert hat, folgt der letzte Schritt des "Tuning".

* Günter Martin ist Leiter des Rechenzentrums für den Fachbereich Informatik an der Johann-Wolfgang-Goethe-Universität in Frankfurt.

Der Beitrag ist eine gekürzte Fassung des Vortrages, der auf der Jahrestagung'86 der German Unix User Group (GUUG) in Karlsruhe gehalten wurde.