186 30 28MB
German Pages 294 [296] Year 1988
Mensch Computer Kommunikation 4 Herausgegeben von Helmut Balzert und Gerhard Fischer
Prototypen benutzergerechter Computersysteme Herausgegeben von Rul Gunzenhäuser und Heinz-Dieter Böcker
w DE
G
Walter de Gruyter • Berlin • New York 1988
Prof. Dr. Rul Gunzenhäuser Dr. Heinz Dieter Böcker beide am Institut für Informatik der Universität Stuttgart
CIP-Titelaufnahme
der Deutschen
Bibliothek
Prototypen benutzergerechter Computersysteme / hrsg. von Rul Gunzenhäuser u. Heinz-Dieter Böcker. — Berlin ; New York : de Gruyter, 1988 (Mensch - Computer - Kommunikation ; 4) ISBN 3-11-011530-1 NE: Gunzenhäuser, Rul [Hrsg.]; G T
© Copyright 1988 by Walter de Gruyter & Co., Berlin 30. Alle Rechte, insbesondere das Recht der Vervielfältigung und Verbreitung sowie der Übersetzung, vorbehalten. Kein Teil des Werkes darf in irgendeiner Form (durch Photokopie, Mikrofilm oder ein anderes Verfahren) ohne schriftliche Genehmigung des Verlages reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. — Printed in Germany. Dieses Buch wurde mit dem Textsystem Scribe™ erstellt. Formatierung: Harald von der Herberg. Druck: Gerike GmbH, Berlin. — Bindearbeiten: Dieter Mikolai, Berlin. — Umschlagentwurf: Hansbernd Lindemann, Berlin.
Vorwort Der vorliegende Band berichtet an Hand von 13 Einzelbeiträgen über unterschiedliche Prototypen benutzergerechter Computersysteme. Sie entstanden seit 1985 in der Forschungs- und Arbeitsumgebung des Forschungsvorhabens INFORM am Institut für Informatik der Universität Stuttgart und am Department of Computer Science der University of Colorado in Boulder, USA, in denen ihre Autoren als Projektleiter und Mitarbeiter zusammenwirken. Seit 1981 wird die Stuttgarter Forschungsgruppe vom Bundesminister für Forschung und Technologie (BMFT) gefördert; seit 1985 arbeitet sie im Rahmen des Verbundvorhabens WlSDOM mit der Forschung von Triumph Adler, der Gesellschaft für Mathematik und Datenverarbeitung und anderen wissenschaftlichen Instituten erfolgreich zusammen. Die Arbeit von INFORM konzentriert sich auf die wissensbasierte MenschComputer-Kommunikation (MCK). Dieses Fachgebiet wurde von ihr mitgeprägt und konnte in den letzten Jahren wichtige Konzepte aus der anwendungsorientierten Informatik, der Software-Ergonomie und der kognitiven Psychologie weiterentwickeln und in interdisziplinärer Forschung und Entwicklung erfolgreich anwenden. Die Forschungsgruppe in Boulder entstand 1985 durch die Berufung von Prof. Dr. Gerhard Fischer, dem wissenschaftlichen Initiator von INFORM, an die dortige Universität. Neben eigenen Vorhaben im Bereich der Kognitionswissenschaften wird dort erfolgreich Forschung und Entwicklung im Bereich der wissensbasierten MCK in enger Kooperation mit Stuttgart weitergeführt. Dieser Band steht auch in engem Zusammenhang mit der Monographie „Methoden und Werkzeuge zur Gestaltung benutzergerechter Computersysteme" [Fischer, Gunzenhäuser 86], in der 1986 grundlegende Konzepte, Methoden und Forschungsergebnisse der wissensbasierten MCK wie • • • • •
objektorientierte Wissensrepräsentation, anwendungsneutrale Benutzerschnittstellen, Fenster- und Menüsysteme, Visualisierungstechniken der MCK, Software-Dokumentationssysteme,
VI
Vorwort • Systemkomponenten zum Wissenserwerb und • computerunterstützte Planungsprozesse
publiziert wurden.
Dieser Band spiegelt die inhaltliche Arbeit der Projekt-
gruppe INFORM bis Ende 1984 wider. Die vorliegende Monographie konkretisiert diese Inhalte durch die Darstellung prototypischer Anwendungen benutzergerechter Computersysteme. Ihre Herausgeber und ihre Autoren wollen damit unterstreichen, daß es nicht allein ausreicht, geeignete Konzepte und Methoden für benutzergerechte Anwendungen zu entwickeln. In einem stark experimentell voranschreitenden Forschungsbereich wie der MCK müssen vielmehr aussagekräftige prototypische Anwendungssysteme gebaut werden, damit fundierte Einblicke in die notwendigen und die realisierbaren Eigenschaften zukünftiger benutzergerechter Computeranwendungen gewonnen werden können. Der Band wendet sich an Informatiker und Software-Ingenieure, an Wissenschaftler und Studenten sowie an alle interessierten Anwender, die sich einen Uberblick über den gegenwärtigen Stand der Forschung und Entwicklung im Bereich der wissensbasierten MCK erarbeiten wollen. Die dargestellten Prototypen sollen ihnen Anregungen für die Konstruktion von Benutzerschnittstellen vermitteln und gleichzeitig Maßstäbe für die kritische Bewertung solcher Dialogsysteme liefern. Die Herausgeber und Autoren des vorliegenden Bandes danken dem Verlag für seine Bereitschaft, ihn als zweiten Band der Forschungsgruppe INFORM in die Reihe „Mensch-Computer-Kommunikation" aufzunehmen. Sie danken Thomas Fehrle, Dietmar Freiburg, Ulrich Hoppe, Thomas Knopik, Bettina Oeding, Ina Rubbert, Norbert Streitz, Thomas Strothotte und Gerhard Weber für ihre fundierte Kritik am Manuskript. Ihr Dank gilt auch dem BMFT, der Gesellschaft für Mathematik und Datenverarbeitung, dem Institut für Informatik der Universität Stuttgart, der Fa. Triumph Adler sowie einer Vielzahl von Kollegen und Freunden für deren langjährige Unterstützung und Förderung. Besonders Gerhard Fischer hat Uber viele Gespräche und gemeinsame Diskussionen einen nicht unerheblichen Anteil zu den hier dargestellten Arbeiten und Ideen beigetragen. Nicht unerwähnt sollen auch die Studenten bleiben, die die Arbeitsumgebung der Forschungsgruppe INFORM wesentlich mitgeprägt haben und deren Ideen sich an vielen Stellen dieses Buches wiederfinden. Besonderen Dank verdient auch Dieter Holz, der die Piktogramme zu den einzelnen Kapiteln erstellt hat.
Inhaltsverzeichnis
I Einführung Heinz-Dieter Systeme
zur
1 Böcker, Rul
Gunzenhäuser
Entwurfsunterstützung
II EL AB Direkt manipulative Simulation elektrischer Schaltungen Michael Herczeg III TRANSPLAN
19
35
Computerunterstützte Planung von Warentransporten Dieter Maier TV FINANZ
55
Anpassung von Finanzplänen durch den Endbenutzer Christian Rathke
S y s t e m e zur
Dialogunterstützung
V OTELLO
75
Einsatz eines Textformatierers als Grundlage eines passiven Hilfesystems Joachim Bauer VI PASSIVIST
89
Ein natürlichsprachliches Hilfesystem für einen Texteditor Andreas Lemke VII AKTIVIST
105
Eine aktive Hilfekomponente für einen Texteditor Thomas Schwab VIII WLSYBIB Einsatz von Undo/Redo-Mechanismen bei der Verwaltung einer Literaturdatenbank Martin Rathke
127
Inhaltsverzeichnis
VIII
S y s t e m e zur
Programmierunterstützung
IX OPTIMIST Ein System zur Beurteilung und Verbesserung von Lisp-Code Heinz-Dieter Böcker
151
X INSPECTOR Ein Navigationswerkzeug zur Untersuchung von Objektstrukturen Harald von der Herberg
169
XI ZOO Ein Werkzeug zur Gestaltung von Anwendungssystemen durch den Endbenutzer Wolf-Fritz Riekert
187
XII OBJBASE Ein System zur Strukturierung und Verwaltung von Wissen Dorothea Bauer Baukästen
für
201
Benutzerschnittstellen
X3II VISIVAL Ein Baukasten für Bildschirm-Instrumente Michael Herczeg
229
XIV TRISTAN Ein generischer Editor für gerichtete Graphen Helga Nieper-Lemke
243
Verzeichnisse Literaturverzeichnis
261
Autorenverzeichnis
273
Glossar
277
Index
283
I Einführung Heinz-Dieter Böcker, Rul Gunzenhäuser
1. B e n u t z e r s c h n i t t s t e l l e n
heute
Dies ist ein Buch über benutzergerechte Systeme. Ob ein Computersystem benutzergerecht ist, hängt wesentlich davon ab, wie es sich seinen Benutzern präsentiert; daher ist dies vor allem ein Buch über Benutzerschnittstellen. Die Architektur wissensbasierter Mensch-Computer-Kommunikation (siehe Abbildung 1) umfaßt das Anwendungssystem, seine Benutzerschnittstelle und verschiedene Typen unterstützender Systeme. Die Kommunikation des Benutzers mit der Anwendung findet über eine Benutzerschnittstelle statt. In neueren Systemen ist diese in der Regel als fenster- und menüorientierte Schnittstelle [Fabian 86] ausgebildet, wie sie auch alle in diesem Band vorgestellten Systeme verwenden. Während der Bau von Anwendungen in den klassischen Bereich der Informatik fällt, stellen die unterstützenden Systeme eine natürliche Weiterentwicklung der im Bereich Mensch-Computer-Kommunikation gelegten Grundlagen zum Bau von Benutzerschnittstellen dar. Moderne Softwaresysteme wie Programmierumgebungen, Editoren, Textformatier- und Datenbanksysteme stellen ihren Benutzern eine sehr große Funktionalität zur Verfügung. Probleme bei der optimalen Nutzung dieser Software-Werk zeuge können durch verschiedene Faktoren verursacht sein (vgl. auch [Fischer 87a]): • Umfang der Funktionalität. Der Benutzer kennt nur einen Teil der vom Systemdesigner bereitgestellten Werkzeuge. • Zugriff auf die Funktionalität. Der Benutzer weiß nicht, wie er benötigte Werkzeuge oder Informationen darüber findet. •
Anwendungsbedingungen. Der Benutzer kennt nicht alle Bedingungen, unter denen die Werkzeuge (oder Kombinationen davon) angewendet werden können.
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter & Co. • Berlin • N e w York
2
Abbildung 1.
Prototypen benutzergerechter Computersysteme
Architektur wissensbasierter MCK.
3
Einführung •
Anpassungen. Der Benutzer weiß nicht, wie er die Werkzeuge seinen Bedürfnissen und Aufgaben anpassen kann.
• Verstehen der Ergebnisse. Der Benutzer hat Schwierigkeiten Werkzeug gelieferten Ergebnisse.
bei
der
Interpretation
der
vom
Zwischen der Funktionalität der Anwendung, der Qualität der Benutzerschnittstelle und den unterstützenden Systemen bestehen enge Verbindungen und Wechselwirkungen: • Eine erweiterte Funktionalität der Anwendung stellt erhöhte Anforderungen an die Benutzerschnittstelle und die (die Nutzung der Anwendung) unterstützenden Systeme. • Bei gutem Design der Benutzerschnittstelle können unterstützende Systeme überflüssig werden. • In realen Systemen lösen oftmals unterstützende Systeme die Probleme, die nicht mit den Mitteln der Benutzerschnittstelle gelöst werden konnten. Die bestehenden Wechselwirkungen zwischen der Benutzerschnittstelle und den unterstützenden Systemen kommen auch durch die gemeinsam benutzten Techniken und Verfahren zum Ausdruck. Erklärungskomponenten, Visualisierungstechniken sowie Techniken zum Verstehen und zur Generierung natürlicher Sprache sind z.B. in allen unterstützenden Systemen in gleicher Weise verwendbar.
1.1 E i g e n s c h a f t e n v o n
Benutzerschnittstellen
Die Aufgabe von Benutzerschnittstellen ist es, die Benutzung eines Werkzeugs problemlos zu gestalten. Im Idealfall sollte ein Benutzer mit intuitivem Vorverständnis des Anwendungsbereiches in der Lage sein, ein Anwendungssystem zu bedienen. Ein wichtiges Mittel zur Verringerung der auftretenden Bedienkomplexität stellt dabei die Technik der „direkten Manipulation" dar, die in zwei verwandten Formen auftritt: 1. Direkte Manipulation in Form unmittelbarer Auswirkung von Benutzeraktionen. Das Drücken einer Taste auf der Tastatur führt direkt zur Einfügung eines Buchstabens in einen Text, eine Bewegung der Maus auf der Schreibunterlage ist direkt mit der Bewegung der Maus auf dem Bildschirm gekoppelt.
4
Prototypen benutzergerechter Computersysteme 2. Direkte Manipulation als Mensch-Problem-Kommunikation. Der Benutzer ist nicht an der Kommunikation als solcher, sondern an der Lösung eines inhaltlichen Problems interessiert; die Kommunikation mit dem Computer ist nur Mittel zum Zweck. In dieser Sichtweise sind die auf dem Bildschirm dargestellten Objekte des Bildschirms die Objekte der Anwendung und nicht nur ihre Repräsentanten.
Voraussetzung für die Technik der direkten Manipulation sind Techniken zur Visualisierung von Objekten oder Prozessen; sie unterstützen die Mensch-Problem-Kommunikation auf realistische Weise. Daher sind Visualisierungstechniken ebenso wie die direkte Manipulation wichtige Merkmale der Benutzerschnittstellen der in diesem Band vorgestellten Systeme.
1.2 U n t e r s t ü t z e n d e
Systeme
Benutzerschnittstellen verfügen über unterschiedlich ausgeprägte zungskomponenten, die man wie folgt unterscheiden kann:
Unterstüt-
• Tutorielle Komponenten. Sie dienen dazu, Benutzer erstmals mit neuen Konzepten und neuer Funktionalität vertraut zu machen. Wertvolle Grundlagen hierfür hat die Arbeitsgruppe um J.S. Brown geschaffen (siehe etwa [Burton 82; Burton, Brown 82]), wobei dem Paradigma der increasingly complex microworlds [Burton, Brown, Fischer 84] große Bedeutung zukommt. • Kritisierende Systeme. Sie zeichnen sich dadurch aus, daß in der Interaktion zwischen Mensch und Computer die primäre ,,Hörerrolle" vom Computer ausgefüllt wird. Der Benutzer arbeitet an dem von ihm selbst gewählten inhaltlichen Problem, die Kritik des Computers bezieht sich auf die Art der Lösung dieses Problems. Es ist offensichtlich, daß hier das Erkennen der vom Benutzer verfolgten Ziele und die Modellierung des Wissensstandes des Benutzers unabdingbare Voraussetzung sind. Im System OPTIMIST (Kapitel IX) werden Ideen dieser Art für den Bereich der Lisp-Programmierung untersucht. • Aktive und passive Hilfesysteme. Sie bilden die älteste Form unterstützender Systeme und sind auch bei relativ einfachen Werkzeugen sinnvoll. Bei passiven Hilfesystemen muß der Benutzer explizit Hilfe anfordern; die Initiative liegt beim Benutzer. Sie gehören heute - wenn auch oft nur in relativ einfacher Form - zu den Standardtechniken der Mensch-Computer-Kommunikation. Aktive Hilfesysteme sind Systeme, die das Verhalten des Benutzers beobachten und von sich aus tätig werden. Ihrem praktischen Einsatz stehen noch fehlende konzeptionelle Grundlagen im Bereich der Wissensrepräsentation und hohe Anforderungen an die Rechengeschwindigkeit entgegen. Die Kapitel VI und VII beschreiben die Sy-
5
Einführung steme PASSIVIST und AKTIVIST, zwei prototypische beiden Arten von Hilfesystemen. •
Vertreter
dieser
Navigationswerkzeuge. Sie unterstützen die Exploration der in einem komplexen System enthaltenen Funktionalität durch den Benutzer und stehen damit den passiven Hilfesystemen sehr nahe; meist handelt es sich bei solchen Werkzeugen um spezialisierte, durch Grafik unterstützte Systeme zum Navigieren durch Netze, deren Knoten abgeschlossene Informationseinheiten darstellen. Der in Kapitel X dargestellte INSPECTOR und das in Kapitel XI beschriebene System ZOO beinhalten derartige Navigationsmöglichkeiten.
• Intelligente Baukästen. Intelligente Baukästen vereinfachen den Umgang mit einem Werkzeug dadurch, daß sie einen Teil seiner Funktionalität vor dem Benutzer verstecken, indem sie Standardlösungen anbieten, die vom Benutzer modifiziert werden können. G. Fischer und A. Lemke [Fischer, Lemke 88a] diskutieren Beispiele derartiger Systeme; der P r o t o t y p TRISTAN ist in Kapitel XIV dargestellt. In der Praxis bestehen zwischen solchen Unterstützungskomponenten fließende Übergänge; manche Unterscheidung ist nur historisch gerechtfertigt.
Die
Herausforderung liegt in der Integration der verschiedenen Komponenten.
1.3 V o n i n t e r a k t i v e n zu i n t e l l i g e n t e n
Systemen
Der Idee, unterstützende Systeme als integrale Bestandteile eines Softwaresystems aufzufassen, liegt die Vorstellung zugrunde, daß Mensch und Computer gemeinsam ein Problem aus einem Anwendungsbereich lösen. Computernutzung wird unter dieser Zielsetzung mit dem Schlagwort „Kooperatives Problemlösen" beschrieben. Es betont den Aspekt des gemeinsamen Verfolgens eines (vom Menschen vorgegebenen) Zieles. Weder ist der Computer die große Maschine, die alle Probleme automatisch löst, noch ist einzig der Mensch derjenige, der ein Problem intelligent bearbeiten kann. Viele der in diesem Buch vorgestellten Systeme vertrauen zur Lösung eines Problems auf diese kooperative Vorgehensweise, in die Mensch und Computer jeweils ihre Stärken einbringen. Computer als „intelligente Assistenten" zu verstehen, ist ein Gedanke, der für die Gestaltung der Kommunikation genutzt werden kann:
Die K o m m u -
nikation zwischen Mensch und Computer sollte qualitativ einer (nicht
notwendigerweise
Menschen entsprechen.
natürlichsprachlichen)
Kommunikation
natürlichen zwischen
Sie ist u.a. durch ein Verstehen der kommunizier-
ten Inhalte, durch Fragen, Unterbrechungen, Stellungnahmen und Kritik so-
6
Prototypen benutzergerechter Computersysteme
wie durch wechselnde Initiative der Kommunikationspartner gekennzeichnet. Daraus leiten sich konkrete Kriterien zur Gestaltung von Softwaresystemen ab. Wir haben einige dieser Aspekte in den hier vorgestellten Systemen in Ansätzen realisiert.
2. Die Forschungsgruppe INFORM 2.1 INFORM 1981 - 1984 Das Forschungsvorhaben geht zurück auf einen Antrag von H.-D. Böcker, G. Fischer und R. Gunzenhäuser am Institut f ü r Informatik der Universität Stuttgart an den Bundesminister für Forschung und Technologie. Sein Inhalt war, integrierte Informationsmanipulationssysteme zur Unterstützung der Mensch-Computer-Kommunikation zu untersuchen, sowie einzelne Komponenten für solche Dialogsysteme zu entwerfen und prototypisch zu implementieren. Das P r o j e k t verdankt seinen Namen dem Begriff / n / o r m ationsmanipulationssystem. Darunter verstanden die Antragsteller ein Dialogsystem, das eine einheitliche und kooperative Benutzerschnittstelle für so unterschiedliche Aufgaben wie Textverarbeitung, elektronische Post, Formular- und Graphikverarbeitung, Programmieren, Erstellen von Programmdokumentationen und rechnerunterstütztes Lernen mit Hilfesystemen bietet. Die Ergebnisse des ersten Projektabschnittes (1981 und 1982) bestehen u.a. aus prototypischen
Implementierungen Formularsystems
eines bildschirmorientierten
und
einer
Editors,
eines
interaktiven
Lisp.
Kennzeichnend für diese Prototypen ist die konsequente Verwendung
Programmierumgebung
für
eines selbstentwickelten Fenstersystems zur Gestaltung von Benutzerschnittstellen. Das Forschungsvorhaben wurde ab 1983 unter dem Titel „Entwicklung von Methoden und Werkzeugen zur Verbesserung der Mensch-Maschine-Kommunikation" mit Förderung durch das B M F T fortgeführt. Über seine Ergebnisse, die von 1983 bis Anfang 1985 unter wissenschaftlicher Leitung von G. Fischer entstanden sind, wird in G. Fischer, R. Gunzenhäuser (Herausgeber): „ M e t h o d e n und Werzeuge zur Gestaltung benutzergerechter Computersysteme", dem ersten Band der vorliegenden Buchreihe, berichtet.
Einführung
7
2.2 INFORM in WlSDOM Das Forschungsprojekt INFORM bildet derzeit gemeinsam mit Vorhaben der Firma TA Triumph Adler AG (Nürnberg), des Fraunhofer-Instituts für Arbeitswirtschaft und Organisation (Stuttgart), der Gesellschaft für Mathematik und Datenverarbeitung (St. Augustin), dem Institut für Informatik der Technischen Universität München und der Firma Systemtechnik Berner & Mattner (München) das vom BMFT bis Ende 1988 geförderte Verbundvorhaben WlSDOM.
Gemeinsames Ziel ist die Entwicklung von prototypischen wissensbasierten Systemen, die den Benutzern von Arbeitsplatzrechnern umfangreiche Systemunterstützung im Bürobereich bieten. Die Forschungsgruppe INFORM erarbeitet im Rahmen des Projektes Grundlagen für die zu entwickelnden Prototypen, auf denen sich dann die experimentellen Systementwicklungen der Projektpartner abstützen können. Diese Grundlagenforschung umfaßt im wesentlichen • die anwendungsneutrale Mensch-Computer-Kommunikation auf der Basis eines Fenstersystems mit Konzepten zur Verwaltung und Visualisierung des Dialoggeschehens, • den Einsatz prototypischer Hilfesysteme, • die Weiterentwicklung der Sprache ObjTalk, die durch G. Fischer, J. Laubsch und C. Rathke in Stuttgart zur Wissensrepräsentationssprache entwickelt wurde [Fischer, Laubsch 79; Laubsch, Rathke C. 83; Rathke C. 86a] sowie • die objektorientierte Modellierung und Akquisition von Wissen. Schließlich werden Grundlagen für prototypische Systeme zur Planungsunterstützung erarbeitet.
2.3 D i e A r b e i t s u m g e b u n g Die Arbeitsumgebung der Forschungsgruppe INFORM stellt eine Experimentalumgebung zur Umsetzung von neuen Ideen über interaktive Systeme in konkrete lauffähige Programme dar. Bei allen in diesem Labor entwickelten Systemen steht die Suche nach neuen, alternativen Lösungen für konkrete Probleme - nicht für im Elfenbeinturm erfundene Aufgabenstellungen im Vordergrund.
8
P r o t o t y p e n benutzergerechter
Der sofortigen Umsetzung der entstandenen
Computersysteme
Systeme in ein
kommerzielles
P r o d u k t steht entgegen, daß sie in einer äußerst aufwendigen, wenig verbreiteten S o f t w a r e u m g e b u n g entstanden sind.
Allerdings n i m m t die Distanz
zur industriellen Praxis mit der zunehmenden Verbreitung von Mikrorechnern u n d den erkennbaren Standardisierungstendenzen im Bereich der Fenstersysteme deutlich ab.
Die Ideen, die im Z u s a m m e n h a n g einzelner Syste-
me erprobt worden sind, tragen Merkmale guter Ubertragbarkeit.
Hardware Sämtliche beschriebenen Rechnerumgebung 1
prototypischen
entstanden,
Systeme sind in einer
bestehend
aus
einer
VAX
Teilnehmer11/780
und
„intelligenten" DIN-A4-formatigen Rasterbildschirmen, die j e d e m Mitarbeiter als normaler Bestandteil seines Arbeitsplatzes zur Verfügung stehen.
Die
Geräte sind jeweils mit 512 kB Speicher, T a s t a t u r u n d einer dreiknöpfigen Maus als E i n g a b e i n s t r u m e n t ausgestattet.
Software Die Abbildung 2 zeigt schematisch den A u f b a u der verwendeten Software. Die WLISP-Programmierumgebung
[Böcker,
Fabian,
Lemke
85]
stellt
G r u n d s o f t w a r e der in diesem Band beschriebenen Systeme bereit. eine erweiterte FranzLisp-Umgebung
[Foderaro, Sklower 8 2 ] .
die
Sie ist
Die Grundla-
gen hierzu sind von C. R a t h k e mit der objektorientierten Sprache O b j T a l k [ R a t h k e C. 86b; R a t h k e C. 86a] und von F . F a b i a n mit einem Fenstersystem [ F a b i a n 86] gelegt worden.
Darauf b a u t ein Software-Baukasten zur
Erstellung von Benutzerschnittstellen auf, der eine Vielzahl von miteinander integrierten
Komponenten
zur Mensch-Computer-Interaktion
enthält:
Me-
nüs, Sheets, Buttons, Icons, Browser, Cluster, Lifts, F o r m u l a r e , Netz- u n d Zeicheneditoren.
In WLISP laufen die unterschiedlichen Werkzeuge der Pro-
grammierumgebung
(z.B. Ein-/Ausgabeschleife, schrittweise A u s f ü h r u n g von
P r o g r a m m e n , Fehlersuche) in separaten Fenstern ab. Zwischen
ObjTalk
Abhängigkeiten. tionssprache
des
und
dem
Fenstersystem
bestehen
starke
Einerseits ist O b j T a l k neben FranzLisp die für
WLISP
grundlegenden
macht die P r o g r a m m i e r u m g e b u n g
wechselseitige Implementa-
Fenstersystems,
von O b j T a l k selbst intensiven
andererseits Gebrauch
Inzwischen haben sich viele der in diesem Buch beschriebenen Komponenten und Systeme nach ihrer Übertragung auf Symbolics Lisp-Maschinen unter Ausnutzung der dort vorhandenen Möglichkeiten weiterentwickelt.
Einführung
9
Anwendungen Interaktionsobjekte ObjTalk
WLisp
FranzLisp
Abbildung 2.
Die INFORM-Softwarearchitektur.
von eben diesem Fenstersystem. Erweiterungen
von FranzLisp sind, deren F u n k t i o n a l i t ä t ausschließlich
Lisp-Funktionen
bereitgestellt
samtarchitektur
hat
die
d u k t möglich gemacht. ter
anwenden,
Ermöglicht wird dies d a d u r c h , d a ß beides
wird.
über
Die einheitliche o b j e k t o r i e n t i e r t e
INFORM-Softwareumgebung
als
Ge-
Gemeinschaftspro-
Jeder k a n n die S o f t w a r e p r o d u k t e anderer Mitarbei-
vorläufige,
einfache
Lösungen
von
Teilproblemen
können
d u r c h bessere ersetzt werden, sobald solche v e r f ü g b a r werden.
Umfeld - Auswirkungen Die internationalen K o n t a k t e der Forschungsgruppe INFORM h a b e n insbesondere
zu
einer
intensiven
Zusammenarbeit
mit
der
Arbeitsgruppe
von
G. Fischer an der University of Colorado in Boulder, USA, g e f ü h r t , m i t der seit 1985 ein reger Austausch von Ideen, M a n u s k r i p t e n , Software u n d Wissenschaftlern besteht.
C. R a t h k e , einer der A u t o r e n dieses Bandes, a r b e i t e t
seit 1985 in Boulder, ebenso die A u t o r e n A. Lemke u n d H. Nieper-Lemke, beide Absolventen der S t u t t g a r t e r I n f o r m a t i k . Unsere S t u t t g a r t e r
„Vision", d u r c h F o r s c h u n g u n d experimentelle
Entwick-
lungen im Bereich der wissensbasierten M e n s c h - C o m p u t e r - K o m m u n i k a t i o n benutzergerechten
Computersystemen
J a h r e n ein Stück näher g e k o m m e n :
zu k o m m e n ,
sind wir in den
zu
letzten
In S t u t t g a r t - wie auch in Boulder -
ist eine „kritische Masse" an engagierten j u n g e n Wissenschaftlern, eine Arbeitsumgebung, finanzielle U n t e r s t ü t z u n g d u r c h das B M F T und einschlägige I n d u s t r i e p a r t n e r sowie zunehmendes Interesse von Industrie, richtungen u n d kritischer Öffentlichkeit v o r h a n d e n .
Forschungsein-
10
Prototypen benutzergerechter Computersysteme
3. Überblick und Einordnung der Beiträge Im vorliegenden Band
werden
insgesamt
13 Prototypen
benutzergerechter
Anwendungssysteme von Wissenschaftlern des Forschungsvorhabens INFORM vorgestellt. 1.
Alle Beiträge sind etwa wie folgt aufgebaut:
Einleitung. Hier erfolgt eine Einführung in die Aufgabenstellung innerhalb der das prototypische System unterstützend angewandt werden kann.
2. Sicht des Benutzers. Durch die Benutzerschnittstelle und den Ablauf einer wird das System exemplarisch dargestellt.
Beispielsitzung
3.
Funktionalität. Hier wird die Architektur und die Arbeitsweise des Prototyps dargestellt sowie seine Schnittstellen zu anderen Systemen und innerhalb eines „Benutzerschnittstellen-Baukastens" beschrieben.
4.
Konzeption. Konzeptionelle Besonderheiten beim Systementwurf und bei der Implementierung werden festgehalten und Verallgemeinerungen der benutzten Methoden dargestellt.
5. Erfahrungen und Ausblick. Zusammenfassend werden Vergleiche mit bisherigen Anwendersystemen gezogen.
und
zukünftigen
Die dargestellten Prototypen konzentrieren sich auf vier Anwendungsbereiche interaktiver Computersysteme: • • • •
die Entwurfsunterstützung, die Dialogunterstützung, die Programmierunterstützung und Baukästen für Benutzerschnittstellen.
Im ersten Beitrag berichtet M. Herczeg über ELAB, ein System zum Konfigurieren und zur direkten Manipulation elektrischer Schaltungen.
Mit ELAB
kann demonstriert werden, wie Laboraufgaben auf dem Bildschirm in nahezu gleicher Weise gelöst werden. Der Benutzer - z.B. ein Elektrotechniker - sieht auf dem Bildschirm ein Experimentierfeld mit ihm vertrauten elektronischen Bauteilen und ten.
Durch direktes Manipulieren dieser Objekte baut er eine
auf und testet sie unmittelbar in der Simulationsumgebung.
MeßgeräSchaltung
Die aus dem
Bürobereich bekannt gewordene Desktop-Metapher wird hier in eine LaborMetapher übertragen.
Einführung
11
Der Beitrag von D. Maier beschreibt TRANSPLAN, ein System zur P l a n u n g von W a r e n t r a n s p o r t e n .
Er geht dabei auf so grundlegende Aspekte ein wie
interaktives P l a n e n , paralleles Verfolgen alternativer Vorgehensweisen, Überw a c h u n g von R a n d b e d i n g u n g e n sowie den Einsatz von Verfahren zur automatischen Plangenerierung und ihrer Simulation. Die Vorteile der objektorientierten Implementierung von werden in diesem Beitrag deutlich. pische Arbeitsteilung
zwischen
Planungsprozessen
F ü r die bei P l a n u n g e n herrschende ty-
Mensch
(als Disponent)
und
Maschine
(als
P l a n u n g s i n s t r u m e n t ) k o m m t , wie der Beitrag zeigt, der Gestaltung der Benutzerschnittstelle besondere B e d e u t u n g zu. Der von C. R a t h k e im folgenden geschilderte P r o t o t y p FINANZ e r l a u b t das interaktive
Erstellen
und
Modifizieren
formularorientierter
Anwendungen.
(Bildschirm-)Formulare sind eine grundlegende F o r m f ü r die Interaktion zwischen Benutzern u n d zahlreichen A n w e n d u n g e n , wie auch die populären T a bellenkalkulationsverfahren zeigen. FINANZ geht wesentlich Uber die F u n k t i o n a l i t ä t solcher Systeme hinaus, z.B. durch eine o b j e k t o r i e n t i e r t implementierte deklarative Festlegung von
mul-
tiplen Abhängigkeiten zwischen F o r m u l a r f e l d e r n u n d die automatische, wissensbasierte B e h a n d l u n g von Konflikten. Die meisten B e n u t z e r h a n d b ü c h e r werden schon heute r e c h n e r u n t e r s t ü t z t stellt. cherten
er-
Wie der Beitrag von J. Bauer zeigt, können die d a f ü r on-line gespeiInformationen
genutzt werden,
um dem
Benutzer
auch
interaktiv
Hilfe anzubieten. Aus einem f ü r einen T e x t f o r m a t i e r e r erstellten M a n u s k r i p t erzeugt das System OTELLO Beschreibungsdateien f ü r ein passives, interaktives Hilfesystem. Es bietet
in seiner
Benutzung
alle F u n k t i o n e n ,
die
auch
ein
gedrucktes
Buch aufweist wie B l ä t t e r n , Nachgehen von Verweisen sowie die B e n u t z u n g unterschiedlicher Verzeichnisse u n d d a r ü b e r hinaus das effiziente E r m i t t e l n und A u f f i n d e n von Suchbegriffen im Text. ser A r t
werden
sich
umso
rascher
Elektronische H a n d b ü c h e r
durchsetzen,
kurzlebiger die f ü r R e c h n e r a n w e n d u n g e n
je
umfangreicher
die-
und
benötigten D o k u m e n t a t i o n e n
je
wer-
den. A. Lemke beschreibt im Anschluß d a r a n den P r o t o t y p eines passiven, n a t ü r lichsprachlichen Hilfesystems für einen Texteditor.
Solche Hilfesysteme be-
nötigen Wissen sowohl über das Anwendungsgebiet wie auch über das Anwendungssystem, bei dessen G e b r a u c h der Benutzer u n t e r s t ü t z t werden soll.
12
Prototypen benutzergerechter
Das von
A. L e m k e
implementierte
b e s t e h t aus vier P h a s e n : ihrer
syntatischen
Antwort.
und
Computersysteme
geschilderte Hilfesystem
PASSIVIST
der morphologischen Analyse der B e n u t z e r e i n g a b e ,
Analyse,
der
Problemlösung
Der Beitrag d i s k u t i e r t d a r ü b e r
Präsentation
der
hinaus allgemeine K o n z e p t e
und
der
und
A u f g a b e n f ü r passive Hilfesysteme d e r Z u k u n f t . E b e n f a l l s m i t einem Hilfesystem f ü r T e x t e d i t o r e n von T . Schwab.
Beitrag
W ä h r e n d einer Dialogsitzung gibt sein P r o t o t y p AKTIVIST
von sich aus den B e n u t z e r n a k t i v e Hilfe. selten
b e f a ß t sich d e r
durchgeführten Aktionen
den
E r weist beispielsweise bei relativ
Benutzer
auf
noch
unbekannte
Kom-
m a n d o s hin, die seine A r b e i t v e r e i n f a c h e n . T. Schwab schreibt
geht
auf
die P r o b l e m a t i k
solcher
aktiven
Hilfen ein
die Arbeitsweise von AKTIVIST beim E r k e n n e n
u n d B e w e r t e n von B e n u t z e r k o m m a n d o s .
von
und
be-
Editierplänen
E r schildert detailliert die A n w e n -
d u n g eines Benutzermodells u n d die i m p l e m e n i e r t e Hilfestrategie. Bei der
interaktiven
Bearbeitung
von
Aufgaben
mit
einem
Rechnersystem
k o m m t es h ä u f i g zu S i t u a t i o n e n , in d e n e n der R e c h n e r ein E r g e b n i s p r ä s e n tiert, d a s nicht den E r w a r t u n g e n des B e n u t z e r s e n t s p r i c h t . solchen S i t u a t i o n h e r a u s z u k o m m e n , stand
U m a u s einer
ist es w ü n s c h e n s w e r t , in den
vor A u s f ü h r u n g des zuletzt b e a r b e i t e t e n
Systemzu-
Interaktionsschrittes
zurück-
z u k e h r e n u n d von d o r t a u s neu zu b e g i n n e n . Der B e i t r a g von M. R a t h k e b e s c h r e i b t a u s g e h e n d von Alltagsbeispielen Einsatz von Undo ( d e m S t o r n i e r e n a u s g e f ü h r t e r A k t i o n e n ) u n d R e d o
den (dem
W i e d e r h o l e n a u s g e f ü h r t e r A k t i o n e n ) u n d w e n d e t diese M e c h a n i s m e n bei d e r V e r w a l t u n g der L i t e r a t u r d a t e n b a n k
WlSYBIB an.
Eine größere Klasse
von
A n w e n d u n g e n solcher M e c h a n i s m e n sieht er in Hilfesystemen sowie in Lehrund Lernsystemen. M e h r e r e p r o t o t y p i s c h e S y s t e m e zur P r o g r a m m i e r u n t e r s t ü t z u n g schließen sich an.
Der Beitrag von H.-D. Böcker b e s c h r e i b t den P r o z e ß des P r o g r a m m i e -
rens u n d des P r o g r a m m i e r e n l e r n e n s als k o o p e r a t i v e n P r o b l e m l ö s e p r o z e ß schen M e n s c h u n d Maschine.
zwi-
D e m R e c h n e r k o m m t dabei neben e i n f a c h e r e n
R o u t i n e a u f g a b e n a u c h die Rolle des die A k t i o n e n des B e n u t z e r s
kritisieren-
den P a r t n e r s zu. Im P r o t o t y p e n OPTIMIST wird ein L i s p - P r o g r a m m i e r e r d u r c h kritische K o m m e n t i e r u n g der von i h m erstellten P r o g r a m m e u n t e r s t ü t z t ; er ist Teil einer L i s p - U m g e b u n g , wie sie von S t u d e n t e n w e n d e t wird.
z.B. a m I n s t i t u t f ü r I n f o r m a t i k ver-
Die Regeln von OPTIMIST verfolgen dabei das Ziel, die Q u a -
Einführung
13
lität, d.h. die Verständlichkeit und den „Stil" eines Lisp-Programms zu verbessern.
Durch ein (fiktives) Szenario schildert der Autor sein in Planung
befindliches erweitertes System zur Kritik von CommonLisp-Programmen. Sämtliche im Buch dargestellten Prototypen sind objektorientiert implementiert. Eine der wichtigsten Tätigkeiten beim (objektorientierten) Programmieren ist das Untersuchen bestehender Objektstrukturen. Zu diesem Zweck hat sich in objektorientierten Programmierumgebungen eine spezielle Art von Werkzeug herausgebildet, die als Navigations- oder Browsingwerkzeuge bezeichnet werden. INSPECTOR ist ein von H. von der Herberg entwickeltes Navigationswerkzeug zur Untersuchung von Objektstrukturen der Sprache ObjTalk. Sein Beitrag enthält Uber die Darstellungen der prototypischen Entwicklungen hinaus allgemeine Aspekte der Funktionalität solcher Programmierwerkzeuge, wie z.B. die Rolle von Filtern für solche Browser. W.-F. Riekert beschreibt in seinem Beitrag den von ihm entwickelten und implementierten Wissenseditor ZOO. In einer Wissensbasis sind Fakten und Konzepte eines Anwendungsgebietes repräsentiert. Diese Wissensbasis erscheint f ü r den Benutzer als eine Netzstruktur: die Knoten stellen die Objekte des Anwendungsgebietes dar, die K a n t e n die Beziehungen zwischen den Objekten. Zur Anpassung der Wissensbasis an neue Bedürfnisse muß lediglich diese Netzstruktur modifiziert werden; dies bewerkstelligt der graphische Wissenseditor ZOO. Er erweist sich dabei als geeignete Benutzerschnittstelle zum Faktenwissen und zum konzeptuellen Wissen der Anwendung (dargestellt am Beispiel des elektronischen Postverkehrs). Das im System repräsentierte Wissen wird dabei genutzt, um die Visualisierung und die Modellierung von Wissensstrukturen zu unterstützen. Integrierte wissensbasierte Systeme sind eine Vorstellung der Zukunft. Das in ihnen enthaltene Wissen wird mit Hilfe von Wissensrepräsentationssprachen dargestellt. Mit dem Anwachsen des Wissens eines solchen Systems entstehen große Wissensbasen, die von mehreren Benutzern zu unterschiedlichsten Zwecken verwendet werden können. D. Bauer präsentiert in ihrem Beitrag das System OBJBASE, das zur Verwaltung dieser Wissensbasen und der darin enthaltenen Objekte entwickelt wurde. Es koordiniert den Zugriff auf Wissensbasen und unterstützt deren Veränderung. Damit erleichtert es die Anpassung existierender Wissensba-
14
P r o t o t y p e n benutzergerechter Computersysteme
sen an neue Anforderungen ebenso wie die Individualisierung von Wissensbasen entsprechend spezieller Benutzerwünsche.
D. Bauer stellt dar, wie ein
Benutzer beim Einbringen von neuem Wissen in ein objektorientiertes System
unterstützt
werden
kann,
indem
Veränderungen
unter
Einsatz
von
Heuristiken auf geeignete Wissensbasen verteilt u n d abgespeichert werden. M. Herczeg schildert in einem weiteren Beitrag einen von ihm entwickelten P r o t o t y p e n eines Baukastens zur Erstellung von Benutzerschnittstellen vorwiegend graphischer Ein- u n d Ausgabe numerischer Daten.
mit
Sein System
VlSIVAL stellt f ü r die P r o g r a m m i e r u n g solcher interaktiver Anwendungssysteme eine Vielzahl leistungsfähiger und individualisierbarer Bausteine zur Verfügung, die die F o r m von Instrumenten haben. Als Anwendungsbeispiel solcher (Bildschirm-)Instrumente dient ein
Monitor
zur Überwachung wichtiger Z u s t a n d s p a r a m e t e r des Betriebssytem UNIX auf einem VAX-Rechnersystem.
Dieses Beispiel ist repräsentativ f ü r eine große
Klasse von Anwendungen.
„Überall dort, wo heute Menschen vor Instru-
menten sitzen, u m den Ablauf eines Prozesses zu kontrollieren, können sich in Z u k u n f t Bildschirme mit Darstellungen von Instrumenten genauer,
flexibler,
leichter
modifizierbar,
abnutzungsfrei
und
befinden, die unzerstörbar
die wichtigsten K e n n d a t e n der Prozesse darstellen", schreibt der A u t o r . Im abschließenden Beitrag beschreibt H. Nieper-Lemke mit TRISTAN einen generischen Editor f ü r gerichtete G r a p h e n .
O h n e geeignete U n t e r s ü t z u n g ist
es f ü r P r o g r a m m i e r e r auch heute noch mühevoll, ein Werkzeug zur Darstellung u n d Manipulation von G r a p h e n in einer A n w e n d u n g zu implementieren.
TRISTAN stellt wiederverwendbare anwendungsneutrale Bausteine f ü r
Grapheditoren zur Verfügung. Es ist geeignet, u m z.B. ObjTalk-Klassenhierarchien oder Hierarchien UNIX-Dateiverzeichnissen Funktionalität;
darzustellen.
Beide
Beispiele
beide benutzen den gleichen Algorithmus
haben
die
von
gleiche
zur P l a n u n g
des
„ L a y o u t s " , u n d es existieren auch die gleichen Operationen für die K n o t e n der G r a p h e n .
Der Beitrag schließt mit einer B e t r a c h t u n g von TRIKIT, ei-
nem B a u k a s t e n zum Erstellen einer TRISTAN-Anwendung von A. Lemke.
4. Zur D a r s t e l l u n g Bei der Arbeit an diesem Buch h a t sich herausgestellt, daß es schwierig ist, hochgradig interaktive Systeme in einem linearen, statischen Medium, wie es ein Buch nun einmal ist, a d ä q u a t darzustellen.
Da gerade das äußere Er-
Einführung
15
scheinungsbild und das externe Verhalten von Programmen zentraler Gegenstand der hier beschriebenen Forschungsarbeiten ist, wiegt dieses Problem schwer. Die Interaktion mit den meisten der hier vorgestellten Systeme geschieht vorwiegend durch Zeigeaktionen auf dem Bildschirm; die T a s t a t u r wird meist nur zur Eingabe von Texten benutzt. Die Einfachheit der Bedienung dieser Systeme kontrastiert mit den oft umständlichen Beschreibungen dieser Bedienformen; sie sind k a u m in der Lage, ein lebendiges Bild von der Qualität der Interaktionen zu liefern. Auch Bildschirmabzüge stellen immer nur Momentaufnahmen von sich in ihrem Äußeren schnell wandelnden Systemoberflächen dar. Das Problem hängt eng mit dem Stand der Wissenschaft im Bereich der Mensch-Computer-Kommunikation zusammen. Da dieser noch immer durch eine relative Theoriearmut gekennzeichnet ist, lassen sich auf theoretischer Ebene nur wenige Aspekte der Qualität eines interaktiven Systems abhandeln - der entscheidende Test eines Systems geschieht durch den direkten Umgang mit ihm.
Systeme zur Entwurfsunterstützung
Elab
O o
o o »X Q
•
Finanz 0
b . r l
—1 1
D«*» O I H |
1
II E L A B Direkt manipulative Simulation elektrischer S c h a l t u n g e n Michael Herczeg
Das Konstruieren einer Brücke, das Modellieren einer Autokarosserie das Planen einer Reise haben eines gemeinsam: aus nicht genau spezifizierbar. men
oder schlecht
definierten
Man spricht auch von offenen Aufgaben
oder
die Resultate sind im VorProblemräu-
(„ill defined tasks"
[Simon 81]).
Durch die Vielzahl von Freiheitsgraden gibt es im allgemeinen nicht eine, sondern beliebig viele Lösungen, so wie es auch nicht die beste, sondern allenfalls
verschiedene
[Simon 81]).
befriedigende
Lösungen
gibt
(„satificing
situations"
Eine befriedigende Lösung wird üblicherweise durch folgen-
den Zyklus erarbeitet: 1. Auswählen von Freiheitsgraden 2. Festlegen neuer Werte 3. Beurteilen des Resultats Der zeitkritische Abschnitt in diesem Entwicklungszyklus liegt insbesondere zwischen dem Festlegen
neuer
Werte
und
dem Beurteilen
der
Wirkung.
Die größte Expertise erfordern die Auswahl der zu ändernden Freiheitsgrade sowie die Beurteilung und Bewertung der Änderung. Interaktive
computergestützte
Schwierigkeiten zu verringern.
Simulationssysteme
sind
in
der
Lage,
diese
Sie verkürzen den Zeitraum zwischen dem
Festlegen neuer Werte und der Präsentation des Resultats.
Darüber hinaus
können sie durch eine problemangemessene Präsentation des Systemzustandes die Beurteilung der Güte der erreichten Lösung wesentlich vereinfachen.
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter & Co. • Berlin • N e w York
20
Systeme zur Entwurfsunterstützung
1. E i n l e i t u n g Welche
Eigenschaften
Computersysteme
haben
sollten,
um
die
Lösung
schlecht definierter Aufgaben zu unterstützen, soll am Beispiel des Systems ELAB1 zur Konfiguration elektrischer Schaltungen dargestellt werden. Viele traditionelle Systeme zur Lösung solcher Aufgaben erlauben Schaltungen stapelorientiert zu simulieren (z.B. SPICE [Vladimirescu, Newton, Pederson 80]). Der Benutzer beschreibt die Schaltung mittels einer formalen Sprache. Anschließend wird sie simuliert und das Ergebnis in F o r m von Zahlentabellen ausgegeben. Diese Daten müssen vom Benutzer m ü h s a m interpretiert oder in einem zusätzlichen Systemlauf mittels eines Graphikprogramms auf einem Bildschirm oder Plotter dargestellt werden. Sind die Ergebnisse unbefriedigend, wiederholt sich dieser zeitaufwendige Zyklus.
2. ELAB aus B e n u t z e r s i c h t Mit dem System ELAB wird demonstriert, wie die Untersuchung einer elektrischen Schaltung am Bildschirm in nahezu derselben Art und Weise gelöst werden k a n n wie in einem Labor. Der Benutzer, z.B. ein Elektrotechniker, sieht ein „Experimentierbrett" mit den ihm vertrauten Bauelementen und Werkzeugen (Abbildung 1): • elektrische Bauteile (Widerstände, Kondensatoren, Spulen) • Spannungsquelle (Funktionsgenerator) • Meßgeräte (Oszilloskop, Frequenzanalysator, Zeiger-/Digitalinstrumente) Durch direktes Manipulieren dieser Objekte, d.h. durch Auswählen und Positionieren auf dem Bildschirm mit Hilfe einer Maus als
Zeigeinstrument,
baut er eine Schaltung auf dem Bildschirm auf und testet sie mit Hilfe einer Simulationsumgebung.
Die Resultate der Simulation beobachtet er auf
den verschiedenen, ihm zur Verfügung stehenden Meßinstrumenten.
Er ge-
staltet die Schaltung so lange um, bis das gewünschte Verhalten
erreicht
ist.
Der Benutzer
CAD-System,
erlernt
dazu
formale Sprache,
von Zahlenkolonnen
kein
komplexes
und kein
Graphik-
Er lernt nur, vertraute Objekte auszuwählen, zu
bewegen,
miteinander zu verbinden und deren Eigenschaften zu verändern.
Die aus
ausgabepaket.
keine Interpretation
keine
^ Die M o d e l l i e r u n g der W i s s e n s b a s i s über d a s V e r h a l t e n der e l e k t r i s c h e n S c h a l t u n g e n sowie die P r o g r a m m i e r u n g des S y s t e m s w u r d e n in großen Teilen von J . H e r c i e g d u r c h g e f ü h r t [Herczeg J . 8 7 ] .
21
Elab ELAB-I Notes
ÖX
- o
_
TIMER JUUUL
RUN CONTINUE NEU-CIRCUIT
Experimentation F i e l d
Abbildung 1.
Die E x p e r i m e n t i e r u m g e b u n g von ELAB.
dem Bürobereich inzwischen b e k a n n t gewordene Desktop-Metapher 81] wird in eine Labor-Metapher
[Seybold
ü b e r t r a g e n , d.h. auf das Abbild eines La-
bors auf d e m Bildschirm. ELAB besitzt zwar einen sehr eingeschränkten Anwendungsbereich:
Es las-
sen sich nur Elementarvierpole aus W i d e r s t ä n d e n , K o n d e n s a t o r e n und len miteinander
kombinieren.
Spu-
Die d a m i t erstellbaren Schaltungen sind je-
doch bereits so komplex in ihrem Verhalten, d a ß selbst ein Experte nicht in
Systeme zur Entwurfsunterstützung
22
der Lage ist, das Verhalten einer Schaltung quantitativ, oft selbst nicht einmal qualitativ abzuschätzen.
Durch die Vielfalt möglicher
(Spannungsverläufe) sowie unterschiedlicher
Eingangssignale
Anfangsbedingungen
(Spannun-
gen in Kondensatoren, Ströme in Spulen) erhöht sich die Komplexität noch einmal erheblich. Die einzelnen Bauteile von ELAB sind als Vierpole ausgebildet, d.h. sie besitzen jeweils einen zweipoligen Ein- und Ausgang, wobei ein Pol des Eingangs mit einem Pol des Ausgangs fest verbunden ist. Dieser gemeinsame Pol ist der gemeinsame Bezugspunkt für alle Schaltungsteile. Mit drei elektrischen Elementen (Widerstand, Kondensator und Spule) erhält man auf diese Weise sechs Bauteile (Abbildung 2). Daraus lassen sich durch Hintereinanderschalten eine Vielfalt interessanter und in der Praxis nützlicher Schaltungen zusammenbauen, wie beispielsweise Spannungsteiler, Hochpaß, Tiefpaß, Bandpaß, Siebkette, Serienschwingkreis und Parallelschwingkreis.
Abbildung 2.
Die sechs Elementarvierpole in ELAB.
Ein Funktionsgenerator versorgt die aufgebaute Schaltung mit periodischen Spannungssignalen oder Spannungsimpulsen. men Sinus, Rechteck,
Sägezahn,
Rampe
Vorgesehen sind die Signalfor-
und Konstante.
Die
Amplitude
und ggf. die Periodendauer dieser Signale können variiert werden. Mehrere Meßgeräte dienen zur Analyse des Verhaltens der ten und dimensionierten Schaltung.
zusammengebau-
Sie messen die Spannung an den Bau-
teilen und den Strom durch die Bauteile.
Prinzipiell sind sie mit im realen
Labor verwendeten Meßinstrumenten vergleichbar, wobei sie gegenüber diesen einige Vorteile aufweisen.
So ist das Bildschirm-Oszilloskop
in
der
Lage, beliebig viele Signale gleichzeitig darzustellen, wobei die Kurven in einem in seiner Bemaßung veränderlichen Koordinatensystem gezeichnet beschriftet werden. sichtbar
gemacht
schwingvorgänge. strumenten
und
Es können darüber hinaus nicht nur periodische Signale werden,
sondern
auch
beliebig
kurze
Ein-
Die entsprechenden Vorteile von Zeiger- und
auf dem Bildschirm
werden in Kapitel XIII diskutiert.
gegenüber Instrumenten
und
Aus-
Digitalin-
im realen
Labor
23
ELAB Mit
der
Maus
als
Zeigeinstrument
kann
„Experimentierbrett"
zusammensetzen
in ihren
verändern.
Parametern
tion
das
auf
dem
können
die Meßinstrumente
an
-
die
Ein einstellbarer Zeitgeber steuert den Si-
Der Benutzer kann während und nach Ablauf der Simula-
Verhalten
Die Tastatur
Bauteile
Zum Steuern der Simulation dienen Funk-
tionstasten auf dem Kontrollfeld. mulationsablauf.
Benutzer
und sie - wie die Spannungsquelle
Nun
Bauteile „ a n g e k l e m m t " werden.
der
dient
der
Schaltung
ausschließlich
auf
den
Meßinstrumenten
zur Eingabe
von
beobachten.
Zahlenwerten,
z.B.
für
das Dimensionieren von Bauteilen. In den Abbildungen
7 bis 10 im Abschnitt
5 wird
dies an einem
Beispiel
erläutert.
3. Die Systemstruktur von E L A B Nachdem ELAB aus der Sicht der Benutzer beschrieben wurde, wird in den folgenden Abschnitten darstellt, auf welche implementierungstechnischen
Lö-
sungen das Verhalten an der Oberfläche zurückgeführt werden kann.
3.1 O b j e k t e als Grundelemente der
Implementierung
W i e es die Bedienoberfläche von ELAB mit ihren verschiedenartigen
Arbeits-
objekten schon nahelegt, besitzt ELAB auch programmtechnisch eine objektorientierte
Konzeption.
Jedes Bildschirmobjekt,
also
z.B. jedes
elektrische
Bauteil, die Instrumente, aber auch Steuerelemente wie Zeitgeber und Starttasten, wird
durch ein O b j e k t
präsentiert.
Die A t t r i b u t e dieser O b j e k t e werden durch Slots, ihre Funktio-
nalität pol
zu
durch Methoden irgendeinem
der
Sprache
beschrieben.
Zeitpunkt
die
ObjTalk
So könnte ein
folgenden
[Rathke
C. 86b]
re-
Serienwiderstandsvier-
Attribut-/Wertekombinationen
enthalten: R = 1000 U = 10 I = 0.01 Icon = Sheet = Circuit = Position = 3 U-to-be-Checlced? = t I-to-be-Checked? = nil
Widerstandswert In Ohm Spannung am Widerstand In Volt Strom durch den Widerstand in Ampere Iconobjekt zur Visualisierung des Vierpols Formularobjekt zur Änderung der Objektattribute Schaltungsobjekt, zu dem der Vierpol gehört der Vierpol ist der dritte Vierpol der Schaltung die Spannung des Vierpols wird überwacht der Strom im Vierpol wird nicht überwacht
Die A t t r i b u t e sowie das Verhalten solcher O b j e k t e (z.B. der funktionale Zusammenhang
zwischen
Widerstand,
Spannung
und
Stromstärke:
Ohm'sches
24
Systeme zur Entwurfsunterstützung
Gesetz) sind in Klassen definiert, die Uber eine Vererbungsstruktur allgemeine Eigenschaften zu speziellen verfeinern (Abbildung 3).
Abbildung 3.
Die Vererbungsstruktur der Elementar-Vierpole von ELAB.
In der Serienwiderstandsvierpol-Klasse werden die speziellen Eigenschaften von Serienwiderstandsvierpolen, wie z.B. ihre spezielle Darstellung, durch ein bestimmtes Icon-Objekt definiert. In der allgemeineren WiderstandsvierpolKlasse wird der Slot R als A t t r i b u t für den Widerstandswert definiert. Dieses A t t r i b u t ererbt sowohl die Serien- als auch die Parallelwiderstandsvierpol-Klasse. In der allgemeinsten Vierpol-Klasse werden die Slots U und I als Attribute für Spannung und Strom beschrieben, die jeder Vierpol besitzt. Durch solche Klassenhierarchien erhält man redundanzarme Beschreibungen von komplexen Konzepten, die nicht zwangsläufig, wie in diesem Fall, hierarchischer Natur sind, sondern beliebige V e r b a n d s t r u k t u r e n bilden können. Die Objekte von ELAB wirken durch den Austausch von Nachrichten und die dadurch initiierte Ausführung von Methoden. Die Objekte bilden so ein Netz „kommunizierender Experten" [Minsky 75] mit jeweils besonderen Aufgaben im Gesamtsystem (kollektives Problemlösen). Ein solcher System-
ELAB
25
a u f b a u vereint Eigenschaften wie geringe R e d u n d a n z , Modularität u n d
da-
mit leichte Ä n d e r b a r k e i t von Eigenschaften u n d F u n k t i o n a l i t ä t sowie
pro-
blemorientierte Modellierung.
Die wichtigsten K o m p o n e n t e n von ELAB sind
• die Benutzerschnittstelle, • die zu u n t e r s u c h e n d e Schaltung, • der Simulationsmechanismus u n d • die Meßgeräte. Abbildung
4 stellt die vereinfachte S t r u k t u r
Komponenten grenzt.
sind
als Teilstrukturen
im
des Systems dar.
Gesamtnetz
Die
gegeneinander
vier abge-
D a ELAB d u r c h ein Netz von O b j e k t e n repräsentiert wird, ist die
Aufteilung in K o m p o n e n t e n
nicht als scharfe T r e n n u n g
anzusehen; sie ist
ein Hilfsmittel zum E n t w u r f , zur Implementierung u n d zur Beschreibung des Systems.
3.2 D a s
Simulationsmodell
Die vom Benutzer a u f g e b a u t e Schaltung aus verketteten Vierpolen wird mittels
Mustererkennung
in
einen
elektrischen
Zweipol
transformiert.
Zweipole e n t h ä l t die ELAB-Wissensbasis analytische Beschreibungen
Für
(Funktio-
nen) des Verhaltens in Abhängigkeit von Zeit, E i n g a n g s s p a n n u n g
und
ak-
tuellem Zustand. Zur Simulation t a k t e t ein Zeitgeber Spannungsquelle und Zweipol, die darauf mit der V e r ä n d e r u n g ihres inneren Zustandes gemäß der schreibungen reagieren.
Funktionsbe-
Auf diese Weise entstehen Abläufe von S p a n n u n g s -
bzw. S t r o m w e r t e n an den Bauteilen, die wiederum von den Meßgeräten abgegriffen, visualisiert
und
gegebenenfalls
gespeichert
werden.
Durch
die
steuerbare zeitliche R a s t e r u n g , die im Zeitgeber definiert wird, k a n n die Simulation beliebig genau und beliebig lange d u r c h g e f ü h r t werden. Eine R ü c k s e t z f u n k t i o n erlaubt das Reinitialisieren von Schaltung und
Meß-
geräten zur D u r c h f ü h r u n g eines neuen Simulationslaufs. Es ist d e n k b a r , ein leistungsfähiges Elektroniksimulationssystem für ELAB ZU verwenden, u m die benötigten Simulationsdaten Ein solches S i m u l a t i o n s p r o g r a m m aufgerufen werden.
könnte
wie SPICE
zu
erzeugen.
über eine Methode der
Zweipole
So ließen sich auch eine Reihe anderer
Schaltungsty-
pen, wie z.B. T r a n s i s t o r s t u f e n , simulieren - unter Beibehaltung der sehr expliziten und natürlichen Beschreibung der Schaltungen d u r c h O b j e k t e .
26
Abbildung 4.
Systeme zur Entwurfsunterstützung
Die Gesamtstruktur von ELAB.
27
ELAB
3.3 Die
Meßinstrumente
Ein Simulationslauf eignet aufzubereiten ten Meßinstrumente stattung stehen die dung 5):
führt zu umfangreichen Daten, die für den Benutzer gesind. Die Datenaufbereitung leisten die bereits erwähnvon ELAB. In Anlehnung an die gewohnte Laborauswichtigsten Instrumenttypen zur Verfügung (siehe Abbil-
• Oszilloskop • Frequenzanalysator • Zeigermeßinstrumente • Digitalmeßinstrumente Jedes dieser Instrumente hat bestimmte Einsatzbereiche. So verschafft ein Oszilloskop einen Uberblick über den zeitlichen Spannungs- und Stromverlauf. Mehrere Signale können dabei durch Übereinanderlegen leicht verglichen oder abgestimmt werden. Der Frequenzanalysator gibt Aufschluß über das Verhältnis von Ein- und Ausgangspegel in Abhängigkeit von der angelegten Frequenz. Ein Zeigerinstrument zeigt hingegen Momentanwerte der elektrischen Größen an. Das Einhalten bzw. Überschreiten von Toleranzen kann dabei sehr gut überblickt werden. Die Meßwerte können durch eine vom Benutzer initiierte Anpassung der Skala beliebig genau abgelesen werden. Durch automatische Anpassung der Anzeigegenauigkeit erlauben digitale Instrumente eine im Normalfall stets ausreichend genaue Wertdarstellung. Die Zeiger- und Digitalinstrumente von ELAB wurden mit dem in Kapitel XIII beschriebenen Baukasten VisrVAL generiert und konnten mit geringem Aufwand in ELAB integriert werden. Hier zeigt sich der Nutzen und die Realisierbarkeit anwendungsneutraler Benutzerschnittstellen-Bausteine recht deutlich [Herczeg 86a].
3.4 A p p l i k a t i o n s - u n d
Interaktionsobjekte
In ELAB lassen sich zwei Grundtypen von Objekten hinsichtlich ihrer Aufgaben im System unterscheiden. Applikationsobjekte, wie z.B. Vierpole und Zeitgeber, beschreiben die Anwendungswelt, im Fall von ELAB die Welt der elektrischen Bauteile und die Welt der Simulation. Zur Visualisierung und Manipulation dieser Applikationsobjekte existieren Interaktionsobjekte, das sind Beschreibungen graphischer und textueller Bildschirmdarstellungen sowie Dateneingabeverfahren für Tastatur und Zeigeinstrument (Maus bei ELAB).
28
Systeme zur Entwurfsunterstützung
T Abbildung 5.
1
Die Meßinstrumente von ELAB.
Jedes Applikationsobjekt besitzt ihm zugeordnete Interaktionsobjekte. So besitzt die Spannungsquelle beispielsweise drei fest zugeordnete Interaktionsobjekte: • das Spannungsquellen-Icon zur Visualisierung der Spannungsquelle innerhalb der Schaltung • das Signal-Menü zur Visualisierung und Änderung des Attributs Signalform • das Spannungsquellen-Formular Spannungsverlaufs
zur
Spezifikation
des
quantitativen
Alle drei Interaktionsobjekte sind als sichtbare Aspekte des Applikationsobjekts Spannungsquelle anzusehen (Abbildung 6). Dieses Prinzip der Trennung von Anwendungs- und Dialogwelt entstammt der Konzeption anwendungsneutraler Benutzerschnittstellen und dient dabei sowohl einer konzeptionellen als auch einer programmiertechnischen Entkopplung von Anwendungssystem und Benutzerschnittstelle. Das die An-
29
ELAB
Abbildung 6.
Applikationsquelle.
und
Interaktionsobjekte
für
die
Spannungs-
wendung betreffende Wissen wird in Applikationsobjekten repräsentiert, während sich das den Dialog zwischen Benutzer und System betreffende Wissen in den Interaktionsobjekten wiederfindet.
4. Z u s a m m e n f a s s u n g und A u s b l i c k Mit ELAB wird demonstriert, wie sich die bereits für Büroumgebungen bekannte Desktop-Metapher in eine Labor-Metapher (kurz Lab-Metapher) übertragen läßt. Der Techniker arbeitet damit, wie er es in seinem normalen Labor gewohnt ist. Änderungen und Erweiterungen bieten sich vor allem dort an, wo die „materielle" Arbeitswelt Beschränkungen auferlegt, die durch das Werkzeug Computer bzw. durch das Medium Bildschirm leicht und aufgabenangemessen beseitigt werden können. Ein Beispiel d a f ü r ist die Erweiterung des traditionellen Oszilloskops zu einem Instrument, das es erlaubt, mehr Informationen gleichzeitig zu präsentieren und diese in praktisch beliebiger Präzision darzustellen.
30
Systeme zur E n t w u r f s u n t e r s t ü t z u n g
Die Benutzeroberfläche von ELAB konnte mit einem vorhandenen
Benutzer-
schnittstellen-Baukasten
Derartige
verhältnismäßig
schnell erstellt werden.
Bausteine waren die genannten VlSIVAL-Instrumente, Formulare, Menüs sowie verschiedenartige ikonische Darstellungen wie Schaltungselemente, F u n k tionstasten u n d graphische Menüs. Fenstersystem
und
eine
Als Basis f ü r diese Bausteine dient ein
Verwaltungskomponente
für
Bitmaps
und
Fonts
(Zeichensätze). Als
programmiertechnische
Grundlage
der
Simulationskomponente
und
Sprache O b j T a l k .
der
der
Benutzerschnittstellen-Bausteine,
Bauteile
diente
die
objektorientierte
Durch die Verwendung von Wissensrepräsentationsmetho-
den wie objektorientierter P r o g r a m m i e r u n g , F r a m e s und Constraints ist es gegenüber traditioneller P r o g r a m m i e r u n g sehr viel leichter möglich, d e m Benutzer E r k l ä r u n g e n
zu a u f g e b a u t e n
Schaltungen
zu präsentieren
zum Beispiel auf Fehler oder Grenzen des Systems hinzuweisen.
und
ihn
Auch die
dynamische Umgestaltbarkeit des Systems basiert letztlich auf diesen Mechanismen. So wie ELAB den Arbeitsplatz eines Elektrotechnikers
auf den
Computer
abbildet, ist es auch d e n k b a r , andere Laborumgebungen, wie zum Beispiel chemische oder physikalische Labors, in ähnlicher A r t und Weise abzubilden.
Solche Umgebungen
sind auch
als Ausbildungsmedium
verwendbar.
Durch die Selbsterklärungsfähigkeit von Bildschirmdarstellungen u n d zusätzliche tutorielle K o m p o n e n t e n kann auf diese Weise auch ein wirkungsvoller Lehr- und Lernbetrieb d u r c h g e f ü h r t werden. Die inzwischen fortgeschrittene Weiterentwicklung von ELAB lotet vor allem diese tutoriellen Wissensbasis
Aspekte weiter aus.
vor
selbst besitzt.
allem
in Bezug auf
Dies erfordert die A u s d e h n u n g Wissen,
das das
System
über
der sich
Nur so wird es in die Lage versetzt, Hilfen zu seiner eigenen
Benutzung sowie kontextabhängige Erklärungen zum Anwendungsbereich abzugeben.
5. Beispieldialog Durch die folgenden Abbildungen soll ein E i n d r u c k von der Arbeit mit dem System vermittelt werden.
Die ausgeprägte Interaktivität derartiger
me läßt sich natürlich n u r sehr unzureichend durch statische nachvollziehen.
Syste-
Abbildungen
31
ELAB
©X
ELAB-l Notes
RUN
UDER
CONTINUE NEU-CIRCUIT
Experimentation Field
- O
X Ï-L
I a
Frequency Analyser
rasa
• o o
t.S
;
Abbildung 7.
I M I
••
Das Experimentierbrett mit einer aufgebauten Schaltung.
Die Schaltung stellt einen Serienschwingkreis dar, dessen Verhalten in Abhängigkeit von Eingangssignal und Dimensionierung von Bauteilen untersucht werden soll. Der Frequenzanalysator zeigt die Übertragungsfunktion der Schaltung.
32
Systeme zur Entwurfsunterstützung IELAB-1 {Notes
©X
-cn-
RUN TI H E R
CONTINUE
JUUUL
NEW-CIRCUIT
Experimentation Field
-CDAnalog Gauge 1
vO
'/,
rinrngri
im Digital Gauge 3 © >
m I fr-* [i
Abbildung 8.
Die Schaltung wird simuliert und mittels Digital- und Zeigerinstrumenten untersucht.
Die angeklemmten Instrumente zeigen während des Simulationslaufs dynamisch die Veränderung der elektrischen Größen an den Bauteilen an. Die Skalierung der Zeigerinstrumente kann bei Bedarf geändert werden, um sie an den zu messenden Wertebereich anzupassen.
33
ELAB
©X
ELAB-l Notes
•A
V
T
Experimentation Field
mi m
1 I
1
1
RUN TI H E R
CONTINUE
JUUUL
NEW-CIRCUIT
Osci Uoscope
m
Abbildung 9.
Der Signalverlauf wird im Oszilloskop dargestellt.
Im Gegensatz zum Zeiger- und Digitalinstrument zeigt das Oszilloskop den zeitlichen Verlauf der elektrischen Größen in einem Koordinatensystem an. Mehrere Größen können dabei zum Vergleich überlagert dargestellt werden. Im vorliegenden Beispiel sind dies die Spannung am Kondensator und der Strom durch die Spule. Das An- und Abklemmen sowie die Anordung von Instrumenten auf dem Experimentierbrett kann vom Experimentator problemabhängig gewählt werden. Die Interaktion erfolgt dabei ausschließlich mit der Maus.
Systeme zur Entwurfsunterstützung
34 ELAB-l Notes
o>:
H l
"t
—. 1 *
IIII
L
TIHER
1
=
JUUUL
RUN CONTINUE NEU-CIRCUIT
Experimentation Field
-O-
—i—
: ® L_ Oscilloscope
5t ml
fr ft— Frequency Analyser
/v !
Abbildung 10.
1
Ein neues Eingangssignal wird an die Schaltung angelegt.
Durch Auswahl eines Rechtecksignals als neues Eingangssignal ändert sich auch das Ausgangsverhalten, das wieder im Oszilloskop beobachtet werden kann. Der Frequenzanalysator zeigt die aktuelle Übertragungsfunktion, die sich nach Änderung der Bauteile ebenfalls verändert hat. Die Analog- und Digitalmeßinstrumente wurden deaktiviert.
III
TRANSPLAN
Computerunterstiitzte Planung von Warentransporten Dieter Maier
Dieser
Beitrag
TRANSPLAN1.
beschreibt
das
nung von Warentransporten. für
prototypische
Planungsunterstützungssystem
Es unterstützt den Disponenten einer Spedition bei der PlaAnhand
Planungsunterstützungssysteme
dieses Beispiels werden
wesentliche
Eigenschaften
allgemeine, dargestellt:
Nach einem kurzen Beispieldialog wird auf Aspekte wie interaktives Planen, Uberwachen von Randbedingungen, paralleles Verfolgen alternativer
Lösun-
gen, Verfahren zur automatischen Plangenerierung und Simulation von erstellten Plänen
eingegangen.
Im weiteren
wird
die Verwendung
anwen-
dungsneutraler Werkzeuge zur Gestaltung der Benutzerschnittstelle beschrieben.
Die durch objektorientierte Implementierung erreichbaren Eigenschaf-
ten wie Modularität und Änderbarkeit werden aufgezeigt.
1. A u f g a b e n s t e l l u n g Warentransporte optimal durchzuführen bedeutet, Güter von ihren Standorten zu ihren Betimmungsorten so zu transportieren, daß für die Gesamtheit aller Transporte möglichst wenig Ressourcen verbraucht und außerdem bestimmte Randbedingungen eingehalten werden.
Die allgemeine
Zielsetzung,
den Nutzen zu maximieren und die Kosten zu minimieren, läßt sich dabei zu
Zielen
wie
z.B.
möglichst
viele
erledigte
Aufträge,
möglichst
kurze
Strecke und Fahrzeit, gute Einhaltung von Terminen und bevorzugter Einsatz von kostengünstigen Lkws konkretisieren.
1
T R A N S P L A N w u r d e von V . K e n n e r , S. R e i c h e r t e r u n d D. R e i n h o l d i m p l e m e n t i e r t . Eine d e t a i l l i e r t e B e s c h r e i b u n g der I m p l e m e n t i e r u n g f i n d e t sich in [ R e i c h e r t e r , R e i n h o l d 86] und [Kenner 86].
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter Sc Co. • Berlin • N e w York
36
Systeme zur Entwurfsunterstützung
1.1 Die , , W e l t " der
Transportplanung
Ein Disponent einer Spedition hat eine Menge von Transportaufträgen vorliegen. Solche Transportaufträge haben Eigenschaften wie Standort, Bestimmungsort, Gewicht, Raumbedarf, frühestmögliche Abholzeit, spätestmögliche Abholzeit, frühestmögliche Ankunftszeit, spätestmögliche Ankunftszeit, voraussichtliche Dauer der Be- und Entladung, Verpackungsart und Preis für die Transportleistung. Besonderheiten der zu transportierenden Waren können z.B. Eigenschaften wie giftig, explosiv oder zerbrechlich sein. Für das Transportmittel werden zur Erledigung der Transportaufträge Routen festgelegt. biets.
Grundlage der Routenbildung ist eine Straßenkarte des Ge-
Damit können die Lage von Orten, Verbindungen zwischen Orten,
Entfernungen und die durchschnittlichen Fahrzeiten bestimmt werden. Für gewisse Strecken können Einschränkungen der Befahrbarkeit existieren, wie beispielsweise ein maximal zulässiges Gesamtgewicht oder eine maximal zulässige Höhe des Fahrzeugs, zeitliche Sperrungen wegen Bauarbeiten oder ein Verbot des Befahrens mit wassergefährdenden Stoffen in Wasserschutzgebieten. Die Fahrzeuge des Fuhrparks haben neben Eigenschaften wie zulässigem Gesamtgewicht, maximaler Zuladung und Ladevolumen, Länge, Breite und Höhe des Laderaums weitere Merkmale wie durchschnittlicher Verbrauch, verursachte Kosten und andere mehr. Fahrzeuge stehen an bestimmten Standorten, Umladeplätze erlauben einen Wechsel von Gütern von einem Fahrzeug auf ein anderes. Den Fahrzeugen müssen Fahrer zugeordnet werden; dabei sind die maximal zulässigen Fahrzeiten, Urlaub, Krankheit etc. der Fahrer zu berücksichtigen.
1.2 T e i l p r o b l e m
Routenplanung
In ihrer allgemeinen Formulierung umfaßt die Aufgabe der Transportplanung neben Routenfestlegungen auch Umschlagabläufe und Zuordnungen von Ressourcen. Um die Aufgabe handhabbar zu machen, wurde die Aufgabenstellung für TRANSPLAN eingeschränkt. Dabei wird von folgendem Szenario ausgegangen: Fahrzeuge fahren in der Regel Tagestouren, d.h. sie starten morgens leer von ihrem Standort und kehren abends nach Erledigung ihrer Transportaufträge wieder leer zu ihrem Standort zurück. Der Aktionsradius der Fahrzeuge liegt bei etwa 100 bis 150 Kilometern. Dabei wird von einem Auftragsspektrum ausgegangen, das ein Zusammenfassen mehrerer Aufträge zu einer Tour erlaubt.
37
TRANSPLAN TRANSPLAN vernachlässigt städtischen
Bereich.
dabei
Die
die detaillierte R o u t e n p l a n u n g
automatische
im
Planungskomponente
inner-
unterstützt
auch keine a u t o m a t i s c h e Z u o r d n u n g von A u f t r ä g e n zu verschiedenen
Lkws,
d.h. sie b e t r a c h t e t zu j e d e m Z e i t p u n k t nur einen Lkw 2 .
1.3 Zielsetzung: ein u n t e r s t ü t z e n d e s
System
Bei der T r a n s p o r t p l a n u n g h a n d e l t es sich u m einen offenen Problembereich, d.h.
zu
jedem
Zeitpunkt
der
Planung
können
neue
Informationen
R a n d b e d i n g u n g e n wichtig werden, die nicht vorhersehbar sind. tomatischer
Planer
kann
unerwartete
nicht e n t s p r e c h e n d berücksichtigen. sen:
Informationen
und
D a d u r c h entstehen
Einschränkungen zwei
Problemklas-
v o m System u n t e r s t ü t z t e S t a n d a r d f ä l l e und mit d e m System nicht be-
a r b e i t b a r e Ausnahmefälle.
Die Möglichkeit zur Formalisierung neuer Infor-
mationen, Einschränkungen
und
Ziele f ü r eine a u t o m a t i s c h e P l a n u n g
Z e i t p u n k t ihres A u f t r e t e n s löst dieses P r o b l e m nur teilweise. könnten werden.
zwar der Bearbeitung
d u r c h den automatischen
zum
Ausnahmefälle
Planer
zugeführt
F ü r exotische, u n t e r U m s t ä n d e n nur einmal a u f t r e t e n d e Fälle ist
dies jedoch setzt
und
Ein vollau-
vom A u f w a n d her wenig sinnvoll.
vollständig
Ziele voraus.
Vollautomatische
Ein-
Planungssysteme
dar,
da w ä h r e n d eines Planungsvorganges oft neue Ziele angestrebt werden
und
f ü r die E r s e t z b a r k e i t
Dies stellt
Planung
eine s t a r k e
schränkung
vorgegebene
vollautomatischer
auf die Verfolgung ursprüglicher Ziele verzichtet wird. Aus diesen G r ü n d e n ist TRANSPLAN nicht als autonomes, sondern als unterstützendes
C o m p u t e r s y s t e m konzipiert.
vollautomatisches, Ein E x t r e m f a l l da-
bei ist die F u n k t i o n des Systems als Ersatz f ü r „ P a p i e r u n d Bleistift". P l a n e r ist dabei in seiner Arbeitsweise völlig frei.
Auf der anderen
Der Seite
soll TRANSPLAN nicht n u r Papier u n d Bleistift ersetzen, sondern Teile der Arbeit ü b e r n e h m e n .
Der E x t r e m f a l l hier ist die a u t o m a t i s c h e Erstellung ei-
nes Planes. Zwischen
diesen
beiden
Extremen
liegen
viele
mögliche
Arbeitsteilungen.
Das beste Ergebnis der Arbeit ist zu erwarten, wenn jeder P a r t n e r , Mensch u n d C o m p u t e r , seine besonderen Fähigkeiten einbringen k a n n u n d den Teil der A r b e i t verrichtet, den er a m besten verrichten k a n n .
Uber die Auftei-
lung der Arbeit sollte der Benutzer die Kontrolle haben; er sollte über das Maß an U n t e r s t ü t z u n g , das er jeweils vom System will, entscheiden können.
2
.
.
.
.
Eine Möglichkeit, in einer „Miniwelt" eigene Erfahrungen mit der Planung von Routen zur Erledigung von T r a n s p o r t a u f t r ä g e n zu sammeln, bietet das Spiel „Auf Achse" (Spieleverlag Schmid).
38
Systeme zur Entwurfsunterstützung
Ein unterstützendes Computersystem muß deshalb so ausgelegt sein, daß es flexibel ist und die Handlungsspielräume des Benutzers möglichst wenig einschränkt. Es muß robust gegenüber Inkonsistenzen sein, da es nicht von vollständigen und korrekten Informationen ausgehen kann, z.B. falls der Benutzer auf automatische Konsistenzüberprüfungen des Systems verzichten will, da es ihm leichter fällt, zuerst einen fehlerhaften Plan aufzuschreiben, den er später korrigiert.
2. TRANSPLAN aus der S i c h t des B e n u t z e r s Als Benutzer von TRANSPLAN ist der Disponent in einer Spedition Anwendungsexperte, aber EDV-Laie3. Er hat durch. seine bisherige Arbeitsweise einen individuellen Arbeitsstil, den er beibehalten und durch das System unterstützt haben möchte.
2.1 M a n i p u l i e r b a r e O b j e k t e in TRANSPLAN Um das Arbeiten mit TRANSPLAN einfach zu gestalten, werden Konzepte der realen Welt möglichst natürlich modelliert. Objekte wie Waren, Aufträge, Städte und Transportmittel werden durch Anwendungsobjekte repräsentiert. Ein Auftrag hat z.B. Eigenschaften wie Start- und Zielort sowie eine Beschreibung der zu befördernden Ware. Ein Tagesplan für ein bestimmtes Fahrzeug enthält Informationen über die Menge der zu erledigenden Aufträge, die Fahrroute, Auf- und Abladevorgänge sowie voraussichtliche Fahrzeit und Fahrstrecke. Anwendungsobjekte können vom Benutzer mit den entsprechenden Operationen, die er aus der realen Welt kennt, manipuliert werden. TRANSPLAN stellt Anwendungsobjekte, wie z.B. Landkarte, Aufträge und Pläne, auf dem Bildschirm graphisch dar. Diese können direkt durch Anklicken mit dem Zeigeinstrument manipuliert werden. Die Auswahl von Aktionen geschieht durch Menüauswahl, die Eingabe und Darstellung von Daten, z.B. Aufträgen, durch das Ausfüllen von Formularen. Zur Visualisierung von numerischen Größen verwendet TRANSPLAN Software-Anzeigeinstrumente (siehe Kapitel XIII).
3
Den Benutzer eines Computersystems gibt es im allgemeinen nicht. Die Beschreibung stellt deshalb ein grobe Charakterisierung der beim Systementwurf vorhergesehenen Benutzergruppe dar.
39
TRANSPLAN
2.2 B e i s p i e l d i a l o g Nachfolgend soll das Arbeiten mit TRANSPLAN d u r c h einen kurzen Dialog mit Bildschirmabzügen veranschaulicht werden. Der Benutzer beginnt mit der Eingabe von A u f t r ä g e n d u r c h das Ausfüllen von F o r m u l a r e n .
Einige A u f t r ä g e sind bereits eingegeben.
P l a n ist noch leer, d.h. es sind keine A u f t r ä g e eingeplant.
Der
aktuelle
Der Lkw steht
ohne L a d u n g an seinem S t a n d o r t , im Beispiel ist dies S t u t t g a r t . Der Benutzer erweitert den P l a n sukzessiv d u r c h H i n z u n a h m e noch eingeplanter A u f t r ä g e .
Nach der Auswahl eines A u f t r a g s zur
nicht
interaktiven
E i n p l a n u n g m u ß der Benutzer die Position der Be- u n d Entladestelle angeben, sofern die Position nicht eindeutig ist. seine
Zulässigkeit
bezüglich
der
formulierten
Der erweiterte P l a n wird auf Randbedingungen
überprüft.
Verletzte R a n d b e d i n g u n g e n werden d e m Benutzer angezeigt. Abbildung 1 zeigt einen Bildschirmabzug, der aus den bisherigen
Aktionen
des Benutzers resultiert: • Im linken oberen Fenster wird der gerade bearbeitete P l a n dargestellt. Die F a h r r o u t e im Überblick sowie eine Auflistung der geplanten Aktionen werden gezeigt. Fahrzeit, Fahrstrecke u n d noch einzuplanende H e i m f a h r t zum S t a n d o r t S t u t t g a r t werden visualisiert. Das Kontrollfeld „Vorschlag G e n e r i e r u n g " erlaubt die Aktivierung verschiedener Verfahren zur a u t o m a t i s c h e n Erzeugung von P l ä n e n . • Oben rechts befindet sich ein Kontrollfeld, u m die von TRANSPLAN zu aktivieren.
Grundfunktionen
• Im Fenster „ A u f t r a g s b e s t a n d " werden die vorliegenden A u f t r ä g e dargestellt. Durch ihre Darstellung ist ihr B e a r b e i t u n g s z u s t a n d e r k e n n b a r . Das rechts davon gerade sichtbare Menü „ E i n p l a n u n g s s t r a t e g i e n " erlaubt die Auswahl einer Strategie zur E i n p l a n u n g des zuletzt selektierten Auftrages. • Im u n t e r e n Teil des Bildschirms ist ein Ausschnitt aus einer schematisierten S t r a ß e n k a r t e zu sehen. Ist der Benutzer mit einem Teilplan unzufrieden, k a n n er ihn, z.B. d u r c h Ausplanen eines A u f t r a g s , modifizieren.
Ist er unsicher, ob die E i n p l a n u n g
eines A u f t r a g s zu einem akzeptablen Ergebnis f ü h r t , k a n n er eine alternative Lösung parallel entwickeln.
Er kann ebenso Teilergebnisse ablegen, u m
gegebenfalls später darauf zurückzugreifen.
Systeme zur Entwurfsunterstützung
40 Plan!
öSTransPlan
Fahrzeit
V o r s c h l a g Generierung
-»s
^
©&
L
m e n ->
UN - >
ES - >
GP - >
•
UL
Auftrag-1 Auf t r a g - 3
E:5
h
GP |*b UL |at'
D
Ende
einzelne Stationen ät :TWt S UN a b
iTir.d
P läne S i m u l a t ion
r?h :tr»nm i S
Aufträge
All ft r a g - 3 Auf t r a g - 1
1
Ikuf Uu *
r
Auftragsbestand
iT_.
_.
7
Einplanungsstrategien optimal einplanen an gegebene Route anhangen Angabe der E i n p l a m i n a s s i e l le Angabe der Be- und E n t l a d e s t e l l e Infos
Strassenkarte
Abbildung 1.
Interaktives Einplanen von Aufträgen.
Der Benutzer läßt sich ausgehend von seinem bisher erstellten Teilplan einen Lösungsvorschlag vom System generieren. Das System stellt seinen Vorschlag als alternativen Plan dar (Abbildung 2).
41
TRANSPLAN Plani
OlTransPlan
ü E3 ES3 c
Fahrzelt
^
Vorschlag Generierung
. n.iA : 8h 8n i r»
)
O
&
Auftrage
]
Pläne S imulation
""•th ?'jn i ri I S s
->
WN ->
tb ->
UP ->
UL -> WÜL ->
einzelne Stationen s •t5,rt WM r •ach ~
ES »t-
NI -> WDL ->
Auftrag-1 Auftrag-3
Auf trag-3 Auftrag-1 Auftrag-4 Auftrag-4 Planverwaltung
Plan2: Vorschlag fuer Plani
w
Fahrzelt
1 FhTTTT
5® 2 55888:
h.
iwEsrino«
1 HHHM
1I8888 ill.HHHH 'ig:
8 8
8
8 4/HUUH
Abbildung 1.
Finanzierungspläne für ein Projekt.
Ein mit FINANZ erstelltes System zum Ausfüllen von Finanzierungsplänen für einen Projektantrag beim Bundesministerium für Forschung und Technologie.
eher Formulare können durch Verwendung des elektronischen Mediums ausgeglichen oder in Vorteile umgekehrt werden. wirrend
und schwer verständlich.
wichtige Informationen.
Papierformulare sind oft ver-
Zum richtigen Ausfüllen fehlen häufig
Demgegenüber enthalten Formulare oft Felder und
Texte, die für den Ausfüllenden nicht relevant sind.
Ein
Computersystem
kann in diesen Beziehungen viel flexibler als Papier und Bleistift sein. Bildschirm
formulare
können
der jeweiligen
Aufgabe
angepaßt
werden.
Die
Flexibilität eines Computersystems macht es unnötig, Informationen für verschiedene Zwecke im selben Formular darzustellen.
In den
verschiedenen
Bearbeitungsstufen - vom Ausfüllen bis zur Verwendung des Formulars werden unterschiedliche Anforderungen an Aufbau und Inhalt gestellt. Bildschirm
formulare
Formularen
findet
können
dynamisch
erzeugt
werden.
In herkömmlichen
man häufig Abschnitte, die nur ausgefüllt werden müs-
sen, wenn bestimmte Voraussetzungen gegeben sind (z.B. „verheiratet/ledig/ geschieden").
In solchen Fällen können Bildschirmformulare dynamisch an-
gepaßt werden, d.h. der Benutzer sieht nur die für ihn zutreffenden Teile.
58
Systeme zur Entwurfsunterstützung
Berechnungen
werden
ren Formularfeldern Formularen
gibt
vom
System
abhängen,
es
üblicherweise
prozentuale Abhängigkeiten
Feldinhalte, die von
ausgeführt.
können
automatisch
Teilsummen,
zwischen Feldern.
berechnet
Produkte,
ande-
werden.
In
Uberträge
In wissensbasierten
und
Systemen
kann die „ B e r e c h n u n g " komplexe Entscheidungsprozesse beinhalten.
Abhän-
gigkeiten der Felder bleiben dann nicht auf arithmetische Beziehungen schränkt. kation
In einem Forschungsprojekt stehen z.B. die Anzahl
von
Mitarbeitern,
die
Aufgabenstruktur,
der
und
effektive
Qualifi-
Einsatz
Mitteln und die Gesamtlaufzeit des Projekts in einer komplexen
bevon
Beziehung
zueinander. Lokale
Uberprüfungen
während können
der Feldinhalte
der Eingabe auf
werden
unmittelbar
nach
oder
Mehrdeutige oder ungenaue
vorgenommen.
Grund des Wissens Uber die Funktion des Systems
werden (Abbildung 2).
schon
Eingaben verstanden
Darüber hinaus können unvollständige A n g a b e n
er-
gänzt und kleinere Fehler korrigiert werden.
Zeitraum
Zeitraum flnf a n g SiSEnde
A b b i l d u n g 2.
1 .3.1986 g
nlir?
III)
sä!
Rnfang 1 mir
..'.'.J
©X 1 3
l«JHf,
i:-;:. 1 . 3 . '
l'ton
Interpretation und Ergänzung von
Benutzereingaben.
Beim Ausfüllen eines Datumfeldes wird die Eingabe als Datum analysiert und mit plausiblen Werten ergänzt. A u f Grund des Wissens über die Funktion eines Feldes kann entschieden werden, welche Eingaben möglich und sinnvoll sind. Erwartungen über Benutzereingaben erleichtern die A n a lyse.
Systeme
können
von
ihren Benutzern o f t nicht beeinflußt und an ihre Bedürfnisse angepaßt
wer-
den.
mit
Diese
einer
ähnlich
großen
Modifizierbarkeit
ist aber von grundlegender
Funktionalität
wie
des Anwendungssystems
FINANZ durch
den
Benutzer
Bedeutung:
• Verschiedene, formularorientierte Anwendungen unterscheiden sich in wesentlichen Punkten, so daß Standardisierungen nur selten möglich sind. Systeme müssen daher den WUnschen der Anwender angepaßt werden. Ist die Anpassung nur auf der Ebene der Programmierung möglich, dann ist dazu ein Programmierexperte erforderlich.
59
FINANZ
• Aufgaben und damit Anforderungen an das System sind einem ständigem Wechsel unterworfen. In relativ kurzen Abständen müssen Änderungen aufgenommen und durch das System reflektiert werden. Die wechselnden Anforderungen können nicht vom Systemdesigner vorausgedacht werden. Deshalb ist die Modifizierbarkeit des Systems durch den Anwender selbst notwendig. • Die Expertise zur Anpassung des Systems liegt auf der Seite des Anwenders. Die Möglichkeit, eigenständig Veränderungen vornehmen zu können, vermeidet auch Kommunikationsprobleme mit Systemherstellern. Die Möglichkeit, Systeme zu gestalten und sie an veränderte Bedingungen anzupassen, macht sie zu Werkzeugen in den Händen der Anwender. Sie sind keine festgefügten Blöcke, die, so wie sie sind, akzeptiert werden müssen. Ihre Funktion und ihre Einsatzweise werden vom Anwender bestimmt. Dazu sind keine speziellen Kenntnisse Uber die Implementationssprache erforderlich. Die Kontrolle liegt damit beim Anwender des Systems. In den folgenden Abschnitten soll dies an Hand eines Beispiels verdeutlicht werden.
2.1 B e n u t z e r m o d i f i k a t i o n e n in FINANZ Im
Finanzierungsplan
für ein
Forschungsprojekt
werden
die
beantragten
Personalkosten in einem vorgegebenen Formular dargestellt (Abbildung 3). In der ersten Spalte werden die Anzahl der Personen einer bestimmten Gehaltsklasse aufgeführt.
Zusammen mit der Jahrespauschale ergeben sich die
Gesamtausgaben bezogen auf Gehaltsklassen. samten beantragten Personalmittel aus.
Die E n d s u m m e weist die ge-
Die Jahrespauschalen der einzelnen
Gehaltsstufen befinden sich auf einem zweiten Formular. Mit Hilfe dieser beiden Formulare kann ein weiteres Formular erzeugt werden, das einen einzelnen Personalposten aus einer anderen Sicht darstellt. Im Vergleich zum Papierformular stellt das Bildschirmformular von Abbildung 3 nur einen Ausschnitt dar. Dieser Ausschnitt zeigt die für das augenblickliche Bearbeitungsstadium relevanten Informationen. Es konzentriert sich auf die Personalkosten der Projektfinanzierung. In einem anderen Bearbeitungsstadium können weitere Informationen relevant werden. Mit FINANZ ist es möglich, neue Formulare zu erzeugen, die Daten unter einer anderen Perspektive zeigen. Allgemein beschreiben die Formulare in FINANZ Sichten auf Datenstrukturen.
Diese Datenstrukturen bilden die interne Repräsentation des Systems.
Sie enthalten Daten über Projekte, Laufzeiten, Zeitpunkte, Personen, Quali-
60
Systeme zur Entwurfsunterstützung
1.I.1986 I 1 1988
von
bis H V ') 0 H H H
Abbildung 3.
(»HHHH 55000: •IHHHH SSÖH0 30000: 2S0ÖÖ; ¿BSäfl
jBat i ;Öät ïa Bat I l a / I b Bat Ub líd Bat « -Uc •Jal I ohnenpf . i 'i
von 1 . 1 986 ifbfs^ij 1 . 1. l'Hill
? § Jahre :•:•:•: i nsge San t. : : : : 1 1 ;>HHHH
1 1 Hat I 90000 1 2 . Bat Id Ä^VjVOTBfS ? Uat f l â ' î b j H Hat Uh -IIa H ll.lt -ye 8 ./fi': 0 1 nilrienpf. o H 1 ritgel t e
©V
90000 •J8HHH fleld-menu
2000H0 :ii,HHHH H H ¡160000 i,fi: :
Abbildung 11.
Das Festlegen eines Feldes.
Mit der Festlegung des Monatsfeldes hat der Benutzer Kontrolle an das System abgegeben. geschränkt.
Dadurch wird seine Entscheidungsfreiheit jedoch nicht ein-
Diese Form der Aufgabendelegation kann jederzeit wieder zu-
rückgenommen werden.
In den erklärenden Texten Uber das Zustandekom-
men von Feldinhalten wird die zusätzliche Systemleistung reflektiert.
68
Systeme zur E n t w u r f s u n t e r s t ü t z u n g
3. D i e S y s t e m s t r u k t u r v o n FINANZ Die Systemstruktur von FINANZ ist in Abbildung 12 dargestellt. in die Benutzerumgebung des INFORM-Fenstersystems tet.
FINANZ ist
[Fabian 86]
eingebet-
F o r m u l a r e und Formularfelder sind Objekte von spezialisierten Klassen
des Benutzerschnittstellen-Baukastens
[Fischer, Lemke, R a t h k e 8 7 ] .
den die oberste,
sichtbare Ebene.
für den Benutzer
werden D a t e n s t r u k t u r e n der A n w e n d u n g dargestellt. ten Ebene als ein Netz von F r a m e s
In den
Sie bil-
Formularen
Diese ist auf der zwei-
[Minsky 75] realisiert, die Wissen aus
dem Bereich der P r o j e k t f i n a n z i e r u n g repräsentieren.
Sie beschreiben
zepte wie Qualifikationen, P r o j e k t e , die P r o j e k t d a u e r , Daten,
Kon-
Grenzwerte,«
Kosten, jährliche Steigerungsraten sowie Abhängigkeiten zwischen den Attributen dieser Konzepte.
F r a m e s sind auf der untersten Ebene mit Hilfe von
O b j T a l k - O b j e k t e n implementiert
Abbildung 12.
[ R a t h k e C. 8 7 ] ,
Die S y s t e m s t r u k t u r von FINANZ.
Die Benutzeroberfläche besteht aus erweiterten K o m p o n e n t e n des Benutzerschnittstellen-Baukastens. Diese erlauben die zugrundeliegenden S t r u k t u r e n des anwendungsspezifischen Wissen unter verschiedenen Perspektiven zu betrachten. Die framebasierten K o m p o n e n t e n der Wissensbasis sind mit Hilfe von O b j T a l k - O b j e k t e n realisiert.
69
FINANZ
In den vorangegangenen Abschnitten wurde FINANZ aus der Sicht der Benutzer dargestellt.
Die F u n k t i o n a l i t ä t von F o r m u l a r e n und F o r m u l a r f e l d e r n
ist d u r c h die Framebeschreibungen der zweiten Ebenen definiert. d u n g 13 ist die D a u e r eines P r o j e k t s mit zwei F r a m e s beschrieben. riod-Frame
werden
die A t t r i b u t e
und l e n g t h
definiert.
(englisch: slots)
Das A t t r i b u t
start-date,
f u n d i n g - p e r i o d spezialisiert
In AbbilIm p e end-date period,
indem es zusätzlich das A t t r i b u t p r o j e c t e i n f ü h r t .
period slots start-date end-date length
a date range(1,1) a date range(1,1) a time-span
constraints date-difference (length = end-date - start-date) later (end-date start-date) funding-period ako period slots project start-date
a project with funding-period range (l.nil) default a date with day 1 month 1 year
Abbildung 13.
F r a m e s f ü r die Zeitdauer eines P r o j e k t s .
Diese F r a m e s beschreiben die Konzepte f ü r die Zeitdauer eines P r o j e k t s . Sie e n t h a l t e n A t t r i b u t e , Restriktionen, A n n a h m e n und Relationen zwischen Attributen. Diese Eigenschaften werden von allgemeinen auf spezielle F r a mes vererbt. Mit den A t t r i b u t e n sind Restriktionen v e r b u n d e n . F r a m e t y p d a t e sein. belegt werden.
So müssen Daten
vom
Das p r o j e c t - A t t r i b u t k a n n nur mit p r o j e c t - F r a m e s
Zusätzlich genügen die A t t r i b u t e Restriktionen bezüglich der
Anzahl ihrer W e r t e .
Im f u n d i n g - p e r i o d - F r a m e wird als A n f a n g s d a t u m ei-
nes P r o j e k t s der erste J a n u a r des nächsten J a h r e s a n g e n o m m e n , falls dieses A t t r i b u t nicht a n d e r s l a u t e n d spezifiziert wird. Zusätzlich
zu den Restriktionen,
die sich auf
einzelne A t t r i b u t e
beziehen,
e n t h a l t e n F r a m e s Beschreibungen, die sich auf das Verhältnis zwischen den
70
Systeme zur Entwurfsunterstützung
Attributen beziehen. Im Beispiel von Abbildung 13 beschreiben sog. Constraints die Tatsache, daß das Ende eines Zeitraums nach dessen Anfang erfolgt und daß die Projektdauer die zeitliche Differenz zwischen Ende und Anfang ist. Die in diesem Beispiel dargestellten Frame-Eigenschaften werden in Systemverhalten umgesetzt [Rathke C. 87]. Restriktionen wie die Einschränkung der D a t u m s a t t r i b u t e auf d a t e - F r a m e s resultieren in der Interpretation von Benutzereingaben als Datumsangaben (vgl. Abbildung 2). Constraints bewirken deren Überwachung bei Veränderung der beteiligten A t t r i b u t e . Sie bewirken auch die Ergänzung fehlender Werte, soweit diese eindeutig bestimmbar sind. Die Frames aus dem Bereich der Projektfinanzierung werden konkretisiert, d.h. auf die gegebene Situation angewandt, wenn der Benutzer neue Objekte der Systemoberfläche erzeugt. Die Erzeugung eines Formularfeldes und dessen Charakterisierung als Dauer, d.h. als zeitliche Differenz zweier Daten, bewirkt die Etablierung des f u n d i n g - p e r i o d - F r a m e s . Die dort definierten Restriktionen werden überprüft und bei Verletzung dem Benutzer zur Entscheidung vorgelegt (vgl. Abbildung 9). Fehlende, aber durch die Framebeschreibung eindeutig bestimmbare Feldinhalte werden ergänzt.
4.
Schlußbemerkungen
Das Erstellen eines Formulars, die Definition einer neuen Sicht auf interne Strukturen und die Definition neuer Beziehungen zwischen Feldern machen die Prinzipien von FINANZ deutlich: • Durch Trennung von interner und externer Repräsentation können mehrere Sichten auf dieselben internen Strukturen erzeugt werden. • Interne und Beziehungen kann an der derungen an auf dieselben
externe Repräsentation sind über deklarativ beschriebene verbunden. Änderungen der internen Repräsentation Systemoberfläche unterschiedlich dargestellt werden. Änverschiedenen Teilen der Benutzerschnittstelle können sich internen Strukturen auswirken.
• Formulare und Formularfelder werden durch Kopieren und Editieren [Lenat, Prakash, Shepherd 86] erzeugt. Dies hat eine Reihe von Vorteilen: o Komplexe Eigenschaften der internen und externen Repräsentation werden übernommen, ohne daß sie explizit vom Benutzer spezifiziert werden müßten.
71
FINANZ
o Für das Erstellen von Feldern und Formularen ist die Kenntnis einer Spezifikationssprache nicht erforderlich. Die Definition erfolgt interaktiv durch direkte Manipulation [Hutchins et al. 86] von Bildschirmobjekten. o Die Konsistenz der Interaktionsform und der Objekteigenschaften wird aufrechterhalten. o Der Prozeß des Kopierens und Editierens wird durch Strukturen unterstützt.
ObjTalk-
• Durch Einrichten von Beziehungen zwischen Formularfeldern reichhaltige interne Strukturen aufgebaut: o Frames mit einer großen Zahl anwendungsbezogener nen werden instantiiert.
werden
Informatio-
o Inferenzprozesse werden zwischen Formularfeldern etabliert. o Informationsstrukturen zur Repräsentation von Begründungen für Feldinhalte werden eingerichtet. Dadurch können Werte auf ihre Ursachen zurückgeführt und Erklärungen für den Benutzer dynamisch erzeugt werden. o Der Benutzer beschreibt nicht mehr das „ W i e " der vom System zur Verfügung gestellten Funktionalität, sondern nur noch das ,,Was". Dies vollzieht sich auf einer höheren Abstraktionsebene und ist näher an den Problemen des Benutzers. • Die Aufteilung der Aufgaben und der' Kontrolle liegt beim Benutzer. Er entscheidet, welche Arbeit vom System übernommen werden soll. Mit FINANZ kann also eine formularbasierte Benutzerschnittstelle an Aufgabe und Benutzer angepaßt werden. Sowohl Aussehen wie S t r u k t u r der Formulare werden interaktiv gestaltet. Die so gestaltete Benutzerschnittstelle vermag den Benutzer bei seiner Aufgabe wirkungsvoll zu unterstützen. FINANZ erlaubt die prototypische Entwicklung von Formularen, die z.B. einen Fachmann im Bereich der Projektfinanzierung oder der Steuergesetzgebung bei der Konzeption und der Bearbeitung von Formularen unterstützen. FINANZ dient dabei als Bindeglied zwischen den Konzepten der Repräsentationssprache, also ObjTalk-Frames, und den Konzepten des Anwendungsgebiets. Die Beschränkung auf formularorientierte Anwendungen erlaubt eine zielgerichtete Unterstützung des Benutzers während der Entwurfsphase, so daß FINANZ auch von Personen benutzt werden kann, die keine Experten im Bezug auf die ObjTalk-Programmierung sind.
S y s t e m e zur Dialoguntersttitzung
PassiviBt
Wisybib
V
OTELLO
Einsatz eines T e x t f o r m a t i e r e r s als G r u n d l a g e eines passiven H i l f e s y s t e m s Joachim Bauer
In diesem Kapitel wird das „elektronische H a n d b u c h " OTELL0 1 vorgestellt, das Texte interaktiv präsentiert. Mit OTELLO k a n n der Benutzer einen Text nicht nur seitenweise lesen, sondern auch auf einzelne Kapitel, Abschnitte, Abbildungen, usw. direkt zugreifen. OTELLO wurde für die Präsentation von Benutzeranleitungen gebaut und kann somit als passives Hilfesystem betrachtet werden. Anhand von Bildschirmabzügen wird die Benutzerschnittstelle und die Funktionalität von OTELLO beschrieben. Die OTELLO zugrunde liegenden Strukturen und die Arbeitsweise von OTELLO werden erklärt. Wichtige beim Entwurf von OTELLO angewendete allgemeine Techniken werden diskutiert.
1. E i n l e i t u n g Heute werden sehr viele Benutzerhandbücher auf dem Rechner erstellt. Die dafür gespeicherten Informationen können zusätzlich genutzt werden, um dem Benutzer interaktiv Hilfe anzubieten. Das System OTELLO dient diesem Zweck. Aus einem für den Textformatierer SCRIBE erstellten Manuskript erzeugt OTELLO Beschreibungsdateien, die die Grundlage für ein „elektronisches H a n d b u c h " bilden. Die Verwendung eines solchen elektronischen Handbuchs hat verschiedene Vorteile. Der Zugriff auf bestimmte Referenzen oder Abbildungen kann beim elektronischen Handbuch sehr schnell erfolgen. Die textuelle Suche nach bestimmten Stichwörtern im Text ist bei gedruckten Büchern sehr aufwendig, bei elektronischen Handbüchern dagegen k a u m ein Problem. Dazu kommt die stete Verfügbarkeit des elektronischen Handbuchs für denjenigen, der am Terminal sitzt und somit auch das elektronische Handbuch zur Verfügung hat.
OTELLO steht für „an object-oriented implementation of an electronic book". Das System OTELLO wurde in großen Teilen von D. Holz implementiert und ist in [Holz 87] ausführlich beschrieben.
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter Sc C o . • Berlin • N e w York
76
Systeme zur Dialogunterstützung
2. D i e B e n u t z e r s i c h t v o n OTELLO Das Ziel von OTELLO ist, dem Benutzer sämtliche Möglichkeiten zu bieten, die ihm auch ein gedrucktes Buch bietet.
Solche Fähigkeiten sind beispiels-
weise das Blättern im Buch und das Aufsuchen von bestimmten Stellen aus dem Inhaltsverzeichnis oder dem Index.
Darüber hinaus sollen die besonde-
ren Fähigkeiten des Rechners genutzt werden.
Das ist in diesem
Zusam-
menhang vor allem die Fähigkeit, Textstellen zu finden, f ü r die es prinzipiell nötig wäre, ein Buch von vorne bis hinten durchzulesen. OTELLO stellt dem Benutzer folgende F u n k t i o n e n Leser auch auf ein gedrucktes Buch anwenden Springen
auf eine Seite, Nachgehen
zur Verfügung, die ein im
Text,
eines Verweises und Aufsuchen
kann:
Blättern
einer
Textstelle aus einem der Verzeichnisse. Eine Aufgabe, die bei Benutzung eines gedruckten Buches schwierig zu erledigen ist, ist die Suche nach einem bestimmten Begriff.
Es ist nicht mög-
lich, in vertretbarer Zeit alle relevanten Stellen zu finden.
OTELLO bietet
diese A r t der Suche an, und der Benutzer h a t die Gewähr, daß kein Vorkommen übersehen wird. Ein Vorteil gedruckter Bücher ist die Möglichkeit, mit dem Buch zu „arbeit e n " , d.h. beispielsweise Zettel hineinzulegen oder sich darin Notizen zu machen.
OTELLO bietet auf elektronischem Weg die Möglichkeit,
Lesezeichen
zu setzen, kurze A n m e r k u n g e n zu machen und etwas anzustreichen.
2.1 D a s
OTELLO-Fenster
Abbildung 1 zeigt, wie OTELLO sich d e m Benutzer präsentiert. LO-Fenster links oben ist in vier Bereiche unterteilt. links ist der Textbereich. mente.
Das OTEL-
Das große
Fenster
Rechts davon befinden sich die Bedienungsele-
Die beiden unteren Fenster bilden den Statusbereich.
Die Seitengröße der für OTELLO aufbereiteten D o k u m e n t e ist an die Größe des Textbereichs angepaßt. Seite gezeigt werden.
Es kann also zu einem Zeitpunkt genau eine
Der Statusbereich ist nochmals unterteilt:
ken Hälfte wird der D o k u m e n t e n s t a t u s angezeigt. Namen
des
gerade
inspizierten
Dokuments
und
Rechts davon ist der Systemstatus visualisiert.
In der lin-
Dieser besteht aus dem der
aktuellen
Seitenzahl.
Im Beispiel wird
f o r l n p u t angezeigt, d.h. es wird eine Eingabe erwartet.
waitlng
77
OTELLO
Content 8
2.3.3. Inserting
Tables
Text
Index 1
«.. >11 1 X — n b. n ui C»> u 1 2n» . n
Figures I
The simplest and most often used action while editing is inserting some text. Thus in BISY this is the most simple thing to d a It is done by typing in your text as with a typewriter.
The text typed in
appears to the right of the current position Text to the right of the current position is shifted right.
Xerox If you press the RETURN
key the current line is finished and a new
line created. Text to the right of the current position is taken down
Post It
Remind
to the new line.
2.3.4. Deleting
Mark
Text
You can delete text forward or backward, i.e. text right of the cursor or text left of the cursor. Deleting forward is done by pressing deleting backward by pressing the DEL key.
J,
Deleting characters can-
not be done beyond the end or beginning of a line. Lines can be deleted by pressing the line key on the numeric keypad
Turn
Document
: bisy
Abbildung 1.
actual
page
Turn
: 11
Das OTELLO-Fenster.
Die Bedienungselemente von OTELLO sind sogenannte Buttons. Selektiert der Benutzer einen Button mit der Maus, wird eine an den Button gebundene Aktion ausgelöst. Während des Ablaufs dieser Aktion färbt sich der Button dunkel und zeigt so den aktiven Zustand an. Die mit Turn und einem Vorwärts- bzw. Rückwärtspfeil beschrifteten Bedienungselemente dienen zum Vorwärts- und Rückwärtsblättern um eine Seite. Möchte der Benutzer auf eine bestimmte Seite springen, hat er eine direkte und mehrere indirekte Möglichkeiten. Nach Selektieren des Buttons Jump t o wird er zur Eingabe einer Seitenzahl aufgefordert (siehe Abbildung 2). Durch Auswahl des Buttons ok wird die Eingabe abgeschlossen und die entsprechende Seite im Textbereich angezeigt. Nach einer falschen Eingabe wird der Benutzer auf die möglichen Werte hingewiesen (siehe Abbildung 3). Eine Eingabe kann durch Selektieren des Buttons Abort abgebrochen werden, wodurch OTELLO wieder in den Eingabezustand übergeht.
78
S y s t e m e zur
DialogunterstUtzung
'Contents ¡dialog-window 2.3.3.
Inserting
T h e simplest and
Type the number of the desired page
most
some text. Thus in BIS1
page number : 75|
«lone by typing in your
Abort
appears to the right of current position is shift«*
Xerox If you press the RETURN
key the current line is finished and a new
line created. Text t o the right of the current position is taken down
Post It T Remind
to the new line.
2.3.4. Deleting
Mark
Text
You can delete text forward or backward, i.e. text right of the cursor or text left of the cursor. Deleting forward is dose by pressing deleting backward by pressing the DEL key.
d,
Deleting characters can
not be done beyond the end or beginning of a line. Lines can be deleted by pressing the fine key on the numeric keypad
Turn
Turn
actual page : 14
Document
A b b i l d u n g 2.
type a page-number
S e i t e n e i n g a b e bei OTELLO.
help-window The pagenumber is out of range . It must be a positive integer or zero
OK
A b b i l d u n g 3.
OTELLO weist a u f eine f a l s c h e E i n g a b e h i n .
2.2 D a s A r b e i t e n mit
OTELLO
I n d i r e k t e M ö g l i c h k e i t e n , auf eine Seite zu p o s i t i o n i e r e n , b i e t e n d i e V e r z e i c h nisse (die vier
Buttons
rechts
Contents, Index, Figures den
Index,
das
oben)
und
und
Tables
Abbildungsverzeichnis
und
der
Button
stehen das
Find.
für das
Die
Buttons
Inhaltsverzeichnis,
Tabellenverzeichnis.
Nach
79
OTELLO
Auswahl eines Verzeichnis-Buttons erscheint ein Menü, das die Einträge des Verzeichnisses enthält. Nach Auswahl eines Eintrags erscheint im Textbereich die Seite, auf der das zugeordnete Objekt zu finden ist. Wenn der Benutzer keinen Eintrag auswählt, bleibt der Textbereich unverändert. Die Menüs für das Inhaltsverzeichnis und den Index haben noch zwei Besonderheiten. Da bei langen Dokumenten das gesamte Inhaltsverzeichnis nicht auf eine Bildschirmseite paßt, wird am Anfang nur die höchste Ebene der Dokumentenstruktur angezeigt, d.h. man sieht nur die Kapitelüberschriften. Durch Auswahl eines Kapitels mit dem rechten Mausknopf wird das Kapitel expandiert, d.h. die nächste Ebene der Überschriftenhierarchie wird angezeigt. Die Abbildungen 4 und 5 illustrieren diesen Vorgang.
Table of Contents I 1. Introduct Ion 2. Editing With BISY 3. BISY tor Programmers I. Command Summary II . BISY Variables
Abbildung 4.
11 5 50 79 117
Inhaltsverzeichnis eines Dokuments.
Table of Contents 1. Introduction 2. Editing With BISV 2.. 1. Invoking BISY 2,.2. Finishing and Interrupting BISY 2 3. Simple Editing 2..4. Advanced Editing 2..5. Using the Mouse and the Menus 2..6. Getting Out of Trouble 2..7. Differences to EMftCS 3. BISY for Programmers I. Command Summary II. BISY Variables
Abbildung 5.
1 5 5 7 8 20 38 40 47 50 79 117
Inhaltsverzeichnis nach Expansion einer Uberschrift.
Das Indexmenü zeigt immer einen Ausschnitt aus dem Index, der durch Scrollen verändert werden kann. Da dies, wenn man beim Buchstaben ,,A" steht und einen mit ,,Z" beginnenden Eintrag sucht, sehr langwierig sein kann, kann der Benutzer den Button im Titel des Menüs auswählen, wodurch er zur Eingabe einer zu suchenden Zeichenfolge aufgefordert wird. Nach Eingabe der Zeichenfolge wird der Auswahlbalken über dem ersten Eintrag positioniert, der diese Zeichenfolge enthält, und der Benutzer kann
80
S y s t e m e zur D i a l o g u n t e r s t ü t z u n g dialog-window I lype the s e a r c h - s t r i n g . I f the s t r i n g [ is not found, nothing happens
67 16 28 28 28 59 60 62 8 50 79 79 24 53 79 28 79 79 43 12 80
string : loadf Abart
M?. A t t r i b u t e s - appearance on f i l e s BISY process - s t o p p i n g and resuming BISY user f u n c t i o n s Back-tab Bel 1 B i n d i n g a command t o a key B i n d i n g a f u n c t i o n t o a key Bobp Bold o v e r p r i n t Bold-overprint-p Bolp Bottom l i n e Break l e v e l Buff e r - 1 i s t Buffers - multiple Buffers Buttons o f the mouse CTRL Change t i t l e Change f i l e Change-f i l e Change-font Change-read-table Change-t i t l e Classes Clear-attribute CI ear-bo I d - o v e r p r i n t Clear-shadow-pr i n t CI ear-under 1ine
A b b i l d u n g 6.
1
32 38 11 23 23 80 80 81 81
72
81
82 82 82
Suche im Index eines D o k u m e n t s .
mit der n o r m a l e n M e n ü a u s w a h l f o r t f a h r e n .
A b b i l d u n g 6 zeigt den V o r g a n g
der S u c h e im Index. O f t finden sich im T e x t Verweise a u f a n d e r e T e x t s t e l l e n , beispielsweise pitelüberschriften
oder
sichtbar
indem
machen,
Abbildungen. er den
scheinen d a n n unterstrichen.
Diese
Textbereich
Verweise
kann
selektiert.
der
Ka-
Benutzer
Alle Verweise
er-
N a c h Selektieren eines unterstrichenen Verwei-
ses wird die Seite dargestellt, auf der sich d a s referenzierte O b j e k t
befindet.
Eine Möglichkeit, eine beliebige Stelle zu finden, bietet die Suche von chenfolgen mit d e m B u t t o n F i n d .
N a c h Selektieren des B u t t o n s F i n d
der B e n u t z e r zur E i n g a b e einer Zeichenfolge a u f g e f o r d e r t .
F a l l s schon
Zeiwird eine
OTELLO
81
f ind-keyword-window
Abbildung 7.
Eingabe einer zu suchenden Zeichenfolge bei OTELLO.
Zeichenfolge eingegeben wurde, k a n n auch durch Auswahl von Find
last
oder Find next das letzte bzw. nächste V o r k o m m e n der Zeichenfolge gesucht werden (siehe Abbildung 7). Falls der Benutzer den dargebotenen Text oder Teile davon lieber auf P a pier lesen möchte, kann er mit d e m B u t t o n Xerox das gesamte
Dokument
Mit d e m B u t t o n Pick k a n n
oder einzelne Seiten ausdrucken
lassen.
neues Buch „gegriffen" werden.
Die erste Seite dieses D o k u m e n t s erscheint
dann
neue
im
Textbereich,
und
das
Dokument
kann
inspiziert
werden.
Durch die Verwendung mehrerer OTELLO-Fenster können verschiedene k u m e n t e gleichzeitig angesehen werden. kument
entstehen,
wenn
ein
Do-
Mehrere Sichten auf dasselbe Do-
dieses gleichzeitig
in
mehreren
OTELLO-Fenstern
dargestellt wird. Die V e r w e n d u n g von Lesezeichen soll es ermöglichen, mit d e m Buch zu arbeiten:
Beliebige Stellen eines D o k u m e n t s können mit beschrifteten Zetteln
versehen werden (Post It) und so zu einem späteren Z e i t p u n k t wieder aufgefunden werden (Remind).
Mit dem T e x t m a r k e r (Mark) k a n n ein Benutzer
f ü r ihn wichtige Textstellen auf den einzelnen Seiten eines D o k u m e n t s anstreichen.
3. A r c h i t e k t u r und A r b e i t s w e i s e v o n OTELLO Die prinzipielle Arbeitsweise von OTELLO wird von der F o r d e r u n g b e s t i m m t , vorhandene Dokumente als
„Manuskriptdateien"
Walker 80] vor.
zu benutzen. für
das
Die vorhandenen
Dokumente
Textformatierungssystem
SCRIBE
liegen [Reid,
In den M a n u s k r i p t d a t e i e n sind die Texte so beschrieben,
daß aus ihnen (im Idealfall) Texte f ü r verschiedene Ausgabegeräte wie La-
82
Systeme zur Dialogunterstützung
serdrucker, Typenraddrucker usw. erzeugt werden können, ohne das Manuskript ändern zu müssen. Abbildung 8 zeigt oben ein Beispiel für eine Manuskriptdatei und unten das Resultat des Textes, nachdem dieser für einen Laserdrucker formatiert wurde.
8SubHeading(Verzelchnlsse
bei
OTELLO)
Das System OTELLO hat folgende Verzeichnisse: 8Begln 8I:§\das Inhaltsverzeichnis des Dokuments 0I:§\das §I:e\das
Abblldungsverzelchnls
des
Dokuments
Tabellenverzeichnis
des
Dokuments
SI:0\das Stichwortverzeichnis SEnd
des
Dokuments
V e r z e i c h n i s s e bei
OTELLO
Das System OTELLO hat folgende Verzeichnisse: Contents:
das Inhaltsverzeichnis des Dokuments
Figures:
das Abbildungsverzeichnis des Dokuments
Tables:
das Tabellenverzeichnis des Dokuments
Index:
das Stichwortverzeichnis des Dokuments
Abbildung 8.
Eine Manuskriptdatei für den Textformatierer das Resultat der Formatierung.
SCRIBE und
Mit Hilfe des P r o g r a m m s SCBG2 können für den Laserdrucker formatierte Dateien auf Bitgraph-Terminals visualisiert werden. Dieses P r o g r a m m wird benutzt, um die Texte darzubieten. Neben dieser textuellen Information benötigt OTELLO für die Verzeichnisse, den Index und das Verfolgen von Verweisen noch zusätzliche Information. Die Formatieranweisungen von SCRIBE wurden zu diesem Zweck um Anweisungen erweitert, die Informationen über die T e x t s t r u k t u r in eine Datei schreiben. Diese Datei wird während der Laufzeit von OTELLO geladen, um die für eine objektorientierte Repräsentation der Dokumentenstruktur nötigen Objekte zu erzeugen: das
2
SCBG s t e h t für „Scribe to B i t G r a p h " . Es wurde im R a h m e n P . K a h l h ö f e r [ K a h l h ö f e r 85] i m p l e m e n t i e r t .
einer S t u d i e n a r b e i t
von
83
OTELLO
Dokument
an sich, seine Kapitel und Abschnitte, seine Abbildungen
Tabellen, kurz alle Bestandteile des Dokuments.
und
Die Eigenschaften eines
Dokumentbestandteils sind im Objekt, das diesen Bestandteile repräsentiert, beschrieben.
So kann beispielsweise ein Abschnitt nach der Seite gefragt
werden, an der er beginnt, oder nach dem Kapitel, in dem er sich befindet. Die Benutzerschnittstelle von OTELLO wurde mit Bausteinen des in 86]
beschriebenen INFORM-Fenstersystems erstellt.
nutzereingaben
verarbeitet und
[Fabian
In ihr werden die Be-
mit Hilfe der Objekte, die das
repräsentieren, in für SCBG geeignete Eingaben umgesetzt.
Dokument
SCBG gibt d a n n
die Texte seitenweise im Textbereich aus. Zusammengefaßt besteht OTELLO aus SCRIBE-Erweiterungen, matierer
SCRIBE selbst,
dem P r o g r a m m
aus
objektorientierten
SCBG und einer Benutzerschnittstelle.
das Zusammenwirken dieser Bestandteile.
dem
Textfor-
Programmkonstrukten,
aus
Abbildung 9 zeigt
84
S y s t e m e zur D i a l o g u n t e r s t ü t z u n g
4. Angewendete Methoden Hier sollen noch e i n m a l wichtige in OTELLO a n g e w e n d e t e M e t h o d e n tert werden.
Als erstes wird hierzu OTELLO in einen größeren
hang gestellt: es w u r d e als Hilfesystem implementiert. allgemein
interessanten
Abschnitten
über
zwei bisher
nur
eingegangen.
die
Techniken
werden
„Buch-Metapher"
am
Rande
erwähnte
erläu-
Zusammen-
Die für Hilfesysteme in
den
und die B e n u t z e r f r e u n d l i c h k e i t
diskutiert.
auf
wichtige
Dann
Eigenschaften
wird von
OTELLO
Zuletzt wird die Wichtigkeit der o b j e k t o r i e n t i e r t e n
Program-
mierung für die I m p l e m e n t i e r u n g von S y s t e m e n wie OTELLO e r l ä u t e r t .
4.1 OTELLO als H i l f e s y s t e m Mit OTELLO k a n n
man
Absicht
Anleitungen
entworfen,
Bildschirm zu bringen.
zwar
beliebige T e x t e zur
lesen, es wurde aber
Benutzung
von
Programmen
in auf
der den
Wenn m a n diesen Sonderfall b e t r a c h t e t , ist OTELLO
ein H i l f e s y s t e m 3 u n d zwar ein passives, statisches Hilfesystem. Ein
wichtiger
Punkt
bei
passiven
ken, A n f r a g e n an sie zu stellen. zielte I n f o r m a t i o n
kommen.
Hilfesystemen
sind
angemessene
Techni-
Der F r a g e n d e soll möglichst schnell an ge-
Durch
die Verzeichnisse,
die S u c h e
von
Zei-
chenfolgen und d a s N a c h g e h e n von Verweisen bieten sich d e m B e n u t z e r von OTELLO mehrere Möglichkeiten, Hilfe zu erfragen.
Diese sind die A u s w a h l
aus M e n ü s
mit
bei
den
Verzeichnissen,
Stichwortsuche
dem
Button
Find
und N a v i g a t i o n d u r c h d a s N a c h g e h e n von Verweisen (siehe hierzu auch K a pitel X ) . Ein weiterer wichtiger P u n k t bei Hilfesystemen ist die P r ä s e n t a t i o n der Hilfeinformation. information
so
Wenn d a s Hilfesystem von Nutzen sein soll, muß die Hilfedargestellt
werden,
daß
sie
leicht
verständlich
ist.
OTELLO besteht diese D a r s t e l l u n g aus T e x t , der mit A b b i l d u n g e n sein k a n n .
Bei P r o g r a m m b e s c h r e i b u n g e n sind hier insbesondere
a b z ü g e nützlich.
Ein P u n k t ,
Q u a l i t ä t der Hilfetexte. ner Hilfesysteme botenen Ein
3
Bildschirm-
auf den OTELLO keinen Einfluß hat, ist die
Wie N . Borenstein in seiner E v a l u a t i o n
[Borenstein 8 5 ]
T e x t e s ein wichtiger
wesentliches
Kriterium
ist
Bei
gemischt
verschiede-
festgestellt hat, ist die Q u a l i t ä t des darge-
Maßstab dabei
. . . . . V e r g l e i c h e die D e f i n i t i o n v o n H i i f e s y s t e m e n P r o g r a m m b e z e i c h n e t w e r d e n , d a s bei der explizite E r k l ä r u n g e n h i l f t . "
für die Effizienz eines die G l i e d e r u n g
in [ B a u e r Benutzung
88]: eines
Hilfesystems.
des T e x t e s .
Weitere
, , A l s H i l f e s y s t e m soll j e d e s interaktiven Systems durch
OTELLO
85
Kriterien für eine gute T e x t g e s t a l t u n g gibt R . Houghton
[Houghton 84]
an:
Nach Hougthon sollten keine zu großen gleichförmigen Textblöcke verwendet werden.
Der T e x t sollte so angeordnet sein, daß das F o r m a t schon Hinwei-
se auf wichtige
und weniger wichtige P u n k t e
gibt.
Wenn
zu einem
s t i m m t e n P u n k t sehr viel Information vorhanden ist, sollten nicht Seiten
Hilfe gegeben
weitere U n t e r p u n k t e
werden, sondern
eine kurze Beschreibung,
zur richtigen Information führt.
be-
mehrere
die
durch
Die Hilfe sollte
auf
konsistente Weise dargeboten werden, d.h. T e x t e , die Sachverhalte desselben T y p s beschreiben, sollten immer dasselbe F o r m a t haben und in e t w a gleich detailliert sein. Bei OTELLO wird die Hilfeinformation als T e x t repräsentiert, dessen einzelne Teile d u r c h Anweisungen für den T e x t f o r m a t i e r e r k n ü p f t sind.
SCRIBE miteinander
möglich ist, Informationen aus dem K o n t e x t eines P r o g r a m m s den.
ver-
Diese A r t der R e p r ä s e n a t i o n hat den Nachteil, daß es nicht mitzuverwen-
Ihr Vorteil ist dagegen die A n w e n d u n g s u n a b h ä n g i g k e i t und die relativ
einfache Erstellung von Texten.
4.2 Die
Buch-Metapher
Ein wichtiges Ziel bei der Implementierung rung von OTELLO nach einem realen B u c h . die d e m
Benutzer
schon
von
wand erfordert: Modell,
sondern
Büchern
her
bekannt
Zu lernen ist nicht d a s der Interaktion nur
sind,
des elektronischen B u c h s weniger
die spezielle A r t
Dadurch wird die Desktop-Metapher deren Bereich:
Die Verwendung der K o n z e p t e ,
„normalen"
den Vorteil, daß die Benutzung
von OTELLO war die Modellie-
der
Interaktion
[ S e y b o l d 81]
es entsteht die , , B u c h - M e t a p h e r "
hat
Lernauf-
zugrundeliegende
mit
dem
Rechner.
übertragen auf einen an(vgl. hierzu die
„Labor-
M e t a p h e r " in K a p i t e l II). D. Holz hat in
[Holz 87]
die Verwendung des traditionellen B u c h s ,
sondere des Lehrbuchs, untersucht.
insbe-
Dabei sind neben dem eigentlichen se-
quentiellen Lesen eines Buchs oder von Teilen eines B u c h s die Informationssuche u n d begleitende Arbeiten wichtig.
Abbildung
10 zeigt, wie sich die
Bedürfnisse eines Lesers auf die verschiedenen S u c h f u n k t i o n e n von
OTELLO
abbilden. Die im wesentlichen durchgeführten begleitenden Arbeiten sind d a s Einlegen von Lesezeichen, von
Notizen.
Remind
d a s Markieren Diese
werden
von wichtigen
bei
OTELLO
und Mark d u r c h g e f ü h r t , wobei sich
den Lesezeichen notierten Stichworte
Stellen
mit
den
Notizen
beschränken.
und
das
Funktionen
Anfertigen Post
It,
bisher auf kurze,
auf
86
Systeme zur D i a l o g u n t e r s t ü t z u n g Wunsch des Benutzers
Vorgehensweise
Button
b e k a n n t e Seite lesen
Aufschlagen der Seite
Jump t o
Information über einen b e s t i m m t e n Begriff finden
Suche im Index
Index
grob umschriebene Information finden
Suche im Inhaltsverzeichnis
Contents
Seite mit u n g e f ä h r b e k a n n t e m Layout finden
Blättern
Turn
Schmökern
Ansehen der Verzeichnisse u n d Aufschlagen von interessanten Stellen
Contents, Figures, Tables
das ganze Buch lesen
Blättern
Turn
Abbildung 10.
A r t e n der Informationssuche in Büchern.
4.3 B e n u t z e r f r e u n d l i c h k e i t Neben der einfachen Bedienung auf der Ebene des zugrundeliegenden
Mo-
dells der Buch-Metapher war eine leicht zu erlernende I n t e r a k t i o n s f o r m ein Ziel beim E n t w u r f von OTELLO.
Alle F u n k t i o n e n können durch die Betäti-
gung eines B u t t o n s ausgelöst werden.
Kommandonamen,
an die sich
Benutzer erinnern muß und die er eintippen müßte, gibt es nicht.
der
Jede In-
teraktion k a n n d u r c h den Benutzer abgebrochen werden, ohne d a ß dies zu einem Fehler f ü h r t (siehe hierzu beispielsweise A b b i l d u n g 7). der Interaktion wird im Statusbereich ständig angezeigt. gen mit OTELLO haben gezeigt, daß es nach sehr kurzer
Der
Zustand
Unsere E r f a h r u n Einarbeitungszeit
möglich ist, mit diesem System zu arbeiten.
4.4 O b j e k t o r i e n t i e r t e
Programmierung
Die von SCRIBE definierten K o n z e p t e wie Kapitel, Abschnitte,
Abbildungen
etc. k a n n m a n im o b j e k t o r i e n t i e r t e n Sinne als Klassen, die d a r a u s zierten Texte als Instanzen dieser Klassen, b e t r a c h t e n . te es nahe, OTELLO o b j e k t o r i e n t i e r t zu implementieren.
produ-
Diese Sichtweise legZu j e d e m SCRIBE-
K o n z e p t gibt es eine O b j T a l k - K l a s s e , von der beim F o r m a t i e r e n eines Dokuments
Instanzen
erzeugt
werden.
Diese Instanzen
sind s t a r k
vernetzt.
Ein A b s c h n i t t h a t beispielsweise Wissen über das Kapitel, in d e m er vork o m m t , und die Seite, auf der er beginnt.
Diese A r t der V e r n e t z u n g
ist
eine charakteristische Eigenschaft objektorientierter Systeme (vgl. Kapitel X, Abschnitt 1).
87
OTELLO Die objektorientierte
Repräsentation
der
Dokumentenstruktur
hat die folgenden Vorteile:
Durch die direkte Abbildung der
zepte
während
auf
ObjTalk-Klassen
des
Formatierlaufs
bei
OTELLO
SCRIBE-Kon-
entfällt
ein
Pro-
grammlauf, bei dem die Dokumentenstruktur analysiert und in eine interne Struktur
umgesetzt werden muß.
Die explizite Repräsentation
ments als Objekt erlaubt einen natürlichen und erleichtert die Programmierung
des
Zugriff auf seine
wesentlich.
Die gleichzeitige
dung mehrerer Dokumente wird durch die Verwendung
von
Doku-
Bestandteile Verwen-
Objektnetzen
wesentlich vereinfacht, weil bei Wechsel des Dokuments nicht wie bei der prozeduralen werden
Programmierung
muß,
sondern
eine ganze Menge von Variablen
lediglich
das
Objektnetz
ausgetauscht
umgesetzt zu
werden
braucht.
5. Schlußfolgerungen und Ausblick OTELLO ist ein nützliches Werkzeug, um sich einen Überblick über ein Prog r a m m oder Information über das allgemeine Verhalten von Programmteilen zu verschaffen.
Uber das Verhalten eines P r o g r a m m e s in einer bestimmten
Situation
OTELLO
kann
keine A u s k u n f t geben,
zum laufenden P r o g r a m m hat. dungsunabhängigkeit:
weil es keine
Verbindung
D a f ü r hat es aber den Vorteil der Anwen-
Dokumentationen für jedes P r o g r a m m können so ge-
schrieben werden, daß sie mit OTELLO präsentiert werden können.
Darüber
hinaus ist es auch relativ einfach, schon bestehende T e x t e so aufzubereiten, daß OTELLO als Hilfesystem verwendet werden kann.
Die Verwendung des
gleichen Texts für eine gedruckte Dokumentation und d a s Hilfesystem bietet den Vorteil, daß die im Handbuch stehende Information und die Hilfetexte konsistent sind. OTELLO ist ein gutes Beispiel
für ein mit Methoden
Mensch-Computer-Kommunikation
der
implementiertes System.
wissensbasierten E s ist hat eine
ins sich konsistente, einfach zu bedienende Benutzerschnittstelle und auf
einer
vollständig
objektorientierten
Implementierung.
basiert
Daneben
ist
OTELLO auch ein Baustein für andere Systeme, in denen es eingesetzt werden kann, um dem Benutzer
Informationen über die Bedienung oder
den
inhaltlichen Hintergrund eines Anwendungssystemes zu präsentieren. Eine Weiterentwicklung bar.
Eine
davon
von OTELLO ist in verschiedene Richtungen
ist eine weitergehende
Charakters eines Dokuments. beitet
und
dieses
durch
Unterstützung
des
denk-
individuellen
Wenn ein Benutzer mit einem Dokument ar-
Lesezeichen
und
Anmerkungen
für seine
Zwecke
88
Systeme zur Dialogunterstützung
modifiziert, erhält es einen individuellen Charakter. Dieser individuelle Charakter sollte nicht nur für eine bestimmte Sitzung gelten, sondern aufbewahrt werden, so daß ein Benutzer bei der nächsten Sitzung denselben Zustand des Dokuments wieder vorfindet. Eine andere mögliche Weiterentwicklung ist die Integration von OTELLO in andere Systeme. Man k a n n sich beispielsweise vorstellen, daß eine aktive Hilfekomponente wie AKTIVIST (siehe Kapitel VII) aufspürt, welche Konzepte einem Benutzer nicht b e k a n n t sind, und die Beschreibung dieser Konzepte an OTELLO delegiert.
VI
PASSIVIST
Ein natürlichsprachliches für einen T e x t e d i t o r
Hilfesystem
Andreas Lemke
In diesem Kapitel wird ein passives natürlichsprachliches Hilfesystem für einen Texteditor vorgestellt. Besonderer Wert soll auf Erfahrungen gelegt werden, die für die Entwicklung ähnlicher Systeme wichtig sein können. Hilfesysteme basieren auf Wissen sowohl über das Anwendungsgebiet wie auch über das Anwendungssystem, bei dessen Gebrauch der Benutzer unterstützt werden soll. Inhalt und Bedeutung dieser Wissensgebiete für Hilfesysteme werden anhand des Anwendungsgebietes Texteditieren diskutiert. PASSIVIST ist implementiert als ein System, das im wesentlichen aus vier Komponenten mit den folgenden Aufgaben besteht: morphologische Analyse der Benutzereingabe, syntaktische Analyse, Problemlösen und Präsentation der Lösung. Die Eigenschaften und die Implementationsweise dieser Komponenten werden beschrieben. Die natürlichsprachliche Mensch-Computer-Kommunikation beruht auf dem Vorhandensein einer gemeinsamen begrifflichen und sprachlichen Basis. Da diese nicht immer im Idealzustand existiert (der Benutzer möchte j a von einem Hilfesystem lernen), müssen Methoden gefunden werden, um diese Probleme zu überwinden. In einem abschließenden Systems gegeben.
Abschnitt
wird eine Bewertung
des
vorgestellten
Es werden Anforderungen eines Hilfesystems an das An-
wendungssystem, zu dem es gehört, diskutiert, und es wird die Rolle von passiven Hilfesystemen für interaktive Systeme der Zukunft angesprochen.
1. E i n l e i t u n g Die Funktionalität moderner Computersysteme ist in ständigem Anstieg begriffen.
Fortschritte in der Softwaretechnologie und die Verfügbarkeit von
persönlichen Rechnern mit großer Speicherkapazität
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter & C o . • Berlin • New York
und einer Leistungsfä-
90
Systeme zur Dialogunterstützung
higkeit, die früher nur Großrechner boten, haben diese Entwicklung möglich gemacht. Diese zunehmende Funktionalität bringt allerdings auch Probleme mit sich. Kein Benutzer kann ein modernes Computersystem völlig beherrschen. Durchschnittsbenutzer kennen sich in den Teilbereichen des Systems relativ gut aus, die f ü r die tägliche Arbeit genutzt werden. Sobald aber eine Aufgabe gelöst werden muß, die etwas aus der Reihe fällt, entstehen Schwierigkeiten. Mag das System auch eine Eigenschaft haben, die gerade auf diese Aufgabe zugeschnitten ist, so ist es doch häufig der Fall, daß der Benutzer diese Eigenschaft nicht kennt oder nicht weiß, wie sie erfolgreich eingesetzt werden kann. Dieser Effekt wird sich verstärken, je weiter die Funktionalität von Computersystemen zunimmt. Eine Schlußfolgerung aus dieser Hypothese ist, daß moderne Computersysteme unter der Annahme entwickelt werden sollten, daß Lernen bei Bedarf die häufigste Lernstrategie sein wird. Es kann nicht mehr angenommen werden, daß Benutzer das meiste über ein System im voraus erlernen. Hilfesysteme sind eine Antwort auf dieses Problem. Außer den Systemkomponenten, die den Benutzer direkt bei der Bearbeitung seiner Aufgaben unterstützen (z.B. Ergebnisse berechnen), müssen auch Systemkomponenten vorhanden sein, deren Aufgabe es ist, bei der Benutzung des Systems selbst zu helfen (Metasysteme). Selbstverständlich muß die Benutzung der Unterstützungskomponenten so einfach sein, daß ein Teufelskreis vermieden wird, d.h. daß die Verwendung der Unterstützungskomponenten nicht neue Unterstützungskomponenten erfordert. Eines der Probleme passiver Hilfesysteme ist die Formulierung der Anfrage. Wie kann der Benutzer sein Problem dem Hilfesystem beschreiben? Natürliche Sprache in gesprochener oder geschriebener Form bietet sich dazu an; das hier beschriebene System PASSIVIST verwendet dieses Verfahren. Eine stark abgeschwächte Form natürlicher Sprache sind Stichwörter. Ein Problem kann durch ein oder mehrere Stichwörter beschrieben werden. Eine weitere Art von Hilfesystemen sind navigatorische Hilfesysteme. Hier bewegt sich der Benutzer schrittweise suchend immer näher an die gewünschte Information heran, kann aber auch explorativ die Eigenschaften des Systems kennenlernen. Der Informationsraum navigatorischer Hilfesysteme hat meist hierarchische oder netzartige Struktur. Hilfesysteme einfachster Art sollen funktionale Hilfesysteme genannt werden. Bei dieser Art von Hilfesystemen spezifiziert der Benutzer eine Operation und fordert die zugehörige Beschreibung an. Diese Hilfesysteme können heute in vielen Computersystemen gefunden werden.
91
PASSIVIST Das hier
beschriebene
System
PASSIVIST ist ein
sprachliches Hilfesystem f ü r den Texteditor BISY
prototypisches 1
[Bauer 8 4 ] .
natürlichU m einen
Eindruck von der Arbeitsweise des Systems zu vermitteln, folgen im nächsten A b s c h n i t t einige Beispieldialoge.
In Abschnitt 3 wird die Arbeitsweise
von PASSIVIST genauer dargestellt, Abschnitt 4 ist den P r o b l e m e n natürlichsprachlicher Hilfesysteme gewidmet.
Im letzten A b s c h n i t t folgt eine Kritik
des besprochenen Systems.
2. Beispieldialog Das naturlichsprachliche Hilfesystem PASSIVIST ist in der Lage, beim Editieren von T e x t , in den Problembereichen und ,,Löschen"
Hilfe zu geben.
„ P o s i t i o n i e r e n der
Schreibmarke"
Es k a n n F r a g e n b e a n t w o r t e n über das Po-
sitionieren der S c h r e i b m a r k e an b e s t i m m t e Stellen, wie zum Beispiel an den Anfang des Textes oder an das E n d e der aktuellen Zeile.
Löschungen kön-
nen sich auf W ö r t e r , Zeilen oder größere Textregionen beziehen. PASSIVIST t r i t t in A k t i o n , wenn der Benutzer einen Hilfewunsch äußert, indem er eine Hilfetaste b e t ä t i g t und seine F r a g e in ein auf d e m Bildschirm erscheinendes Hilfefenster eingibt.
Das System u n t e r s u c h t
zeigt an, welcher Teil der F r a g e verstanden wurde.
die Frage
und
D a r a u f h i n wird die Lö-
sung des P r o b l e m s d e m Benutzer in einer K o m b i n a t i o n aus V o r f ü h r - u n d E r k l ä r u n g s m o d u s vorgestellt.
U m eine bessere Verständlichkeit zu erreichen,
wird nach j e d e m Lösungsschritt der d a n n erreichte Zustand des Editors angezeigt.
Der Benutzer f ü h r t unter Kontrolle des Systems einen Schritt aus,
d.h. er b e t ä t i g t die angegebenen Tasten, und das System zeigt den nächsten Lösungsschritt usw.
Beispiel
1:
Der Benutzer m ö c h t e die Schreibmarke an das E n d e der editierten setzen.
Datei
E r betätigt die Hilfetaste, worauf ein Hilfefenster erscheint, in d e m
er a u f g e f o r d e r t wird, eine F r a g e zu stellen. Frage:
Wie Komme ich zum Ende der Datei?
Erkannte Wörter: zum Ende der Datei Ignorierte Wörter: Wie komme ich ?
^ PASSIVIST ist im R a h m e n einer Diplomarbeit in der Gruppe INFORM an der Universität Stuttgart entstanden [Lemke 84].
92
Systeme zur Dialogunterstiitzung
Das System zeigt an, was es v e r s t a n d e n hat. man
auch
in zwischenmenschlichen
Gesprächen
Dies ist ein V e r h a l t e n , finden
kann.
Es
das
erlaubt
d e m K o m m u n i k a t i o n s p a r t n e r , sich ein Modell über das Verstehen seines Gegenübers zu bilden (Dialogmodell) u n d , falls nötig, Mißverständnisse
aufzu-
klären. Das System u n t e r s u c h t
den Satz, kristallisiert das P r o b l e m des
heraus u n d berechnet eine Lösung, die aus den d e m Benutzer Editoroperationen
zusammengesetzt
ist.
Das W o r t
Benutzers
zugänglichen
„ D a t e i " wird
hier
als
der in den Editor geladene T e x t gedeutet, der nicht identisch m i t der entsprechenden auf Sekundärspeicher
liegenden Datei ist.
PASSIVIST versucht,
eine möglichst sinnvolle I n t e r p r e t a t i o n der Benutzeräußerung zu
finden.
Die Lösung des Benutzerproblems besteht hier aus einer einzigen Operation.
primitiven
Das Hilfesystem a n t w o r t e t :
Gib den Befehl: set-cursor-to-end-of-buffer Tippe dazu die Tastenfolge: ESC->
In Tastenfolgen sind die einzelnen Tasten durch Bindestriche getrennt. Beispiel: ESC-> bedeutet: drücke zuerst ESC und dann >. Getippte Taste: ESC Getippte Taste: > Zu diesem Zeitpunkt n i m m t das System an, daß der Benutzer A n f ä n g e r ist und noch keine E r f a h r u n g mit
Computertastaturen
hat.
Daher
Schreibweise von Tastenfolgen bei den ersten zwei Fragen e r k l ä r t .
Beispiel 2: Der Benutzer möchte eine Zeile löschen. Frage:
Wie kann ich die nächste Zeile löschen?
Erkannte Wörter: nächste Zeile löschen Ignorierte Wörter: Wie kann ich die ? Setze die Schreibmarke auf die gewünschte Zeile!
wird
die
PASSIVIST
93
Gib den Befehl: cursor-down Tippe die Taste: DOWN
Getippte Taste: ? Der Benutzer hat eine falsche T a s t e g e d r ü c k t .
D a s S y s t e m erklärt nun, wo
die richtige T a s t e zu finden ist, und fordert den Benutzer nochmals auf, die fehlende E i n g a b e zu machen. M i t UP, DOWN, LEFT und RIGHT sind die Pfeiltasten rechts oben gemeint. Tippe noch die Taste: DOWN
Getippte Taste: DOWN Der B e n u t z e r b e t ä t i g t nun die richtige T a s t e und sieht, wie die S c h r e i b m a r ke sich eine Zeile nach unten bewegt, dabei aber in derselben S p a l t e bleibt. Der
nächste
Schritt
v o m S y s t e m erklärt.
der
Lösung
ist
ziemlich
kompliziert
und
wird
D a s Hilfesystem kennt gewisse stereotypische
me, die einer E r k l ä r u n g bedürfen. Es g i b t keinen besonderen Befehl, um eine Zelle als Ganzes zu löschen. Man mup zuerst den Zeileninhalt und dann eine der beiden Zellengrenzen löschen. Zum Leeren einer Zelle geht man am besten an den A n fang der Zelle und löscht dann den Rest der Zelle. Gib den Befehl: set-cursor-to-beglnnlng-of-llne Tippe die Taste: ~A
~A wird eingegeben, indem man die CTRL-Taste herunterhält, die A-Taste drückt und dann die CTRL-Taste wieder losläpt. (Die CTRL-Taste b e f i n d e t sich ganz links auf der Tastatur) Getippte Taste: ~A
daher Proble-
94
Systeme zur D i a l o g u n t e r s t ü t z u n g
Auch die Eingabe von
CTRL-Tasten
wird d e m Benutzer a n f a n g s e r k l ä r t .
Der Benutzer t i p p t ~A, u n d das System erklärt den nächsten Schritt, n ä m lich den Rest der Zeile zu löschen. Gib den Befehl: rubout-line-right Tippe die Taste: ~K
~K wird eingegeben, indem man die CTRL-Taste herunterhält, die K-Taste drückt und dann die CTRL-Taste wieder losläßt. (Die CTRL-Taste befindet sich ganz links auf der Tastatur) Getippte Taste: ~K Der Benutzer t i p p t ~K und die Zeile wird leer.
Der letzte Schritt ist, eine
der Zeilengrenzen zu e n t f e r n e n . Gib den Befehl: rubout-line-left Tippe dazu die Tastenfolge: PF2-DEL
Das Kommando rubout-line-left verbindet, wenn die Schreibmarke am Zellenanfang steht, die aktuelle Zelle mit der vorhergehenden und löscht damit die aktuelle Zeile. Getippte Taste: PF2 Getippte Taste: DEL Nach dreimaliger E r k l ä r u n g , wie die C T R L - T a s t e b e n u t z t wird, n i m m t das System an, daß der Benutzer weiß, wie sie zu betätigen sind.
3. A r b e i t s w e i s e v o n
PASSIVIST
Hilfesysteme spielen eine Vermittlerrolle zwischen Benutzer, stem und Anwendungsgebiet. system Text.
der Texteditor
Anwendungssy-
Im Falle von PASSIVIST ist das Anwendungs-
BlSY, das Anwendungsgebiet
ist das Editieren
von
95
PASSIVIST
3.1 W i s s e n s b e r e i c h e v o n PASSIVIST PASSIVIST benötigt f ü r seine A u f g a b e Wissen sowohl über das A n w e n d u n g s gebiet als auch Uber das Anwendungssystem. Wissen Uber das Anwendungsgebiet Texteditieren beinhaltet z.B. die K e n n t nis von Konzepten
wie Buchstabe, W o r t , Zeile und Seite, Beziehungen
z.B. die, daß ein W o r t sich aus einer Folge von Buchstaben
wie
zusammensetzt
u n d d u r c h Leerzeichen von anderen W ö r t e r n g e t r e n n t ist, u n d
Vorgängen
wie z.B. das Erzeugen, Löschen, Kopieren u n d Suchen von Textteilen. K o n z e p t e aus d e m Anwendungsgebiet sind im Anwendungssystem auf Softwarekonzepte abgebildet.
In den meisten Fällen ist das keine eineindeutige
Abbildung, sondern eine Konkretisierung
und Spezialisierung.
„ W o r t " beispielsweise ist in d e m E d i t o r BlSY genauer definiert.
Der Begriff Es ist fest-
gelegt, welche Zeichen W ö r t e r bilden u n d welche nicht in einem W o r t e n t halten sein können. eines Wortes
O b z.B. ein Bindestrich oder ein A p o s t r o p h als Teil
betrachtet
werden
soll,
ist außerhalb
des T e x t e d i t o r s
nicht
festgelegt. Zusätzlich benötigt
das Hilfesystem weitere Begriffe, die spezifische Eigen-
schaften des Anwendungssystems
bezeichnen.
Ein ASCII-Zeichen
ist
zum
Beispiel ein wichtiger Begriff f ü r das Verständnis der T e x t d a r s t e l l u n g in einem Editor. Sonderzeichen
Ein ASCII-Zeichen ist entweder ein Buchstabe, eine Ziffer, ein oder
ein
Zwischenraum
M a n beachte, daß hier Zwischenräume
von
der
Größe
als diskrete
eines
Buchstaben.
Zeichen definiert
sind;
das widerspricht der intuitiven Vorstellung von Zwischenräumen als kontinuierliche geometrische A b s t ä n d e .
Dieses Verständnis h a t d a n n zur Folge,
daß zum Erzeugen u n d V e r ä n d e r n von Zwischenräumen dieselben
Operato-
ren angewendet werden können wie f ü r Buchstaben. Weiterhin
ist
Wissen
über
den
Benutzer
nützlich.
Informationen
über
Kenntnisse sowie über irrige Vorstellungen des Benutzers sind f ü r das Hilfesystem Voraussetzung, u m den Benutzer zu verstehen und ihm verständliche E r k l ä r u n g e n zu geben.
In PASSIVIST ist Wissen dieser A r t in einem einfa-
chen Modell des Benutzers repräsentiert
[Rieh 7 9 ] .
Eine der wichtigsten A u f g a b e n bei der Erstellung eines Hilfesystems ist die E r f a s s u n g der Hilfebedürfnisse der Benutzer. viele Benutzer
Schwierigkeiten?
Mit welchen P r o b l e m e n
Es m u ß vermieden
werden, einen
A u f w a n d in Teile des Hilfesystems zu stecken, die d a n n von den chen Benutzern nie in A n s p r u c h g e n o m m e n werden.
haben großen
tatsächli-
U m diese Bedürfnisse
96
Systeme zur Dialogunterstützung
zu ermitteln, k o m m t man nicht umhin, empirische Untersuchungen zu machen, Benutzer zu beobachten oder ein simuliertes Hilfesystem zu verwenden. Zu allgemeinem Hilfewissen gehört auch Wissen über Kommunikation und didaktisches Wissen. Was soll geschehen, wenn die Frage des Benutzers (teilweise) unverständlich ist? Wie detailliert sollen Fragen beantwortet werden? W a n n sollen zusätzliche Informationen gegeben werden, die nicht ausdrücklich erfragt wurden, die aber sehr wahrscheinlich vom Benutzer benötigt werden? Wie kann ein einfaches Modell des Anwendungssystems vermittelt werden, so daß geringfügige Details nicht erklärt werden müssen? PASSIVIST verfügt in diesem Gebiet über fest eingebaute Strategien, die nur eine Teilantwort auf diese Fragen darstellen.
3.2 S t r u k t u r v o n PASSIVIST PASSIVIST besteht aus vier wesentlichen Komponenten: morphologische Analyse der Benutzereingabe, syntaktische Analyse, Problemlösen und graphische Ausgabe der Problemlösung.
3.3 M o r p h o l o g i s c h e
Analyse
Die morphologische Analyse der Benutzeranfrage ist die erste Phase.
Hier
werden die in der Eingabe enthaltenen Wörter mit Hilfe eines Wörterbuchs in Wortstamm, Vorsilben und Endungen zerlegt.
Zusammengesetzte Wörter
werden erkannt und ihre Bestandteile identifiziert. Das Wörterbuch enthält die folgenden Klassen von Einträgen: • Verben: hat ein Verb einen zweiten S t a m m (geh - gib), so sind beide angegeben. Ebenso kann eine besondere Konjugation angegeben sein. • Vorsilben: in der morphologischen Wortstämmen getrennt. • Nomina • Adjektive
Analyse
werden
Vorsilben
können auch einen zweiten S t a m m besitzen (Wort -
von
Wörter).
werden wie Nomina behandelt.
• Abkürzungen
werden für verschiedene Sonderbehandlungen verwendet:
o Zahlwörter werden in Ziffern umgesetzt, o Synonyme werden vereinheitlicht. o Unregelmäßige Verben werden als Abkürzungen behandelt.
97
PASSIVIST
Die folgenden Beispiele zeigen, wie Wörter durch die morphologische Analyse in Komponenten zerlegt werden: des
Zeile-n-ende-s
Nominalstamm - n - Nominalstamm - Nominalsuffix Lös-ung-s-möglichkeit V e r b s t a m m - ung - s - Nominalstamm - Nominalsuffix (leer)
3.4 Syntaktische
Analyse
Die syntaktische Analyse in PASSIVIST wird von einem ausgeführt, das in OPS5
[Forgy 81]
det für seinen Anwendungsbereich die in Abbildung sche G r a m m a t i k .
Produktionensystem
implementiert ist.
In einer semantischen
Grammatik
PASSIVIST verwen-
1 dargestellte
semanti-
werden solche
Gram-
matikregeln formuliert, die direkt Konzepten aus einem bestimmten Anwendungsbereich entsprechen.
::= Buchstabe
I Zeichen
I Character
::= I Spalte I W o r t : := aktuelles
:nächst
::=
I vorherig
I Buffer
I vorvorherig
I
. I erst
I
I letzt
I vorletzt
I
I
der
::= Anfang
I Ende
::= der
::=
::=
I übernächst
I Zeile
: a n
I auf
I in
::= der
Abbildung 1.
I zu
::= löschen + G r a m m a t i k von PASSIVIST.
Nichtterminale Symbole erscheinen in spitzen K l a m m e r n . Der Operator + bedeutet, daß beide Operanden in der Eingabe an unspezifizierter Stelle vorkommen sollen.
Systeme zur Dialogunterstützung
98
Da auch die folgenden Phasen von PASSIVIST in OPS5 implementiert sind, können sie gut integriert werden. Das hat unter anderem den Vorteil, daß Mehrdeutigkeiten schon während der syntaktischen Analyse beseitigt werden können. Die Syntaxanalyse wird in einem bottom-up Verfahren durchgeführt. Immer wenn eine Folge von Wörtern gefunden wird, die einen Satzteil bilden können, wird diese Tatsache notiert. Wenn daraufhin passende Satzteile gefunden werden, die einen Satz bilden, dann wird dieser Satz gespeichert. Dieses Verfahren ermöglicht, eine Benutzereingabe in beliebiger Reihenfolge und nicht nur von links nach rechts abzuarbeiten. Dadurch ist das System in der Lage, auch unvollständige, teilweise inkorrekte oder dem System teilweise unverständliche Äußerungen zu bearbeiten. PASSIVIST e r k e n n t in S ä t z e n
wie
• Wie lösche ich die nächste Zeile? • Wie erreiche ich, daß die nächste Zeile gelöscht wird? • Ich möchte die nächste Zeile löschen. nur die entscheidenden Komponenten „löschen" und „nächste Zeile". Da die anderen Wörter ignoriert werden, erkennt PASSIVIST diese und viele ähnliche Formulierungen desselben Problems. Dabei besteht selbstverständlich die Gefahr der Mißinterpretation, die in der Praxis aber bislang keine entscheidende Rolle gespielt hat. Bei Positions- und Bereichsangaben wird allerdings eine genauere Analyse durchgeführt. PASSfVIST versteht Angaben wie • • • • deren
die drittletzte Zeile, das zweite Wort am Bufferanfang, an den Anfang der letzten Zeile, auf das zweite Zeichen des vorigen Wortes, Bedeutung
mit
einer
reinen
Stichwortanalyse
nicht
zu
bestimmen
wäre.
3.5 S e m a n t i s c h e
Analyse
Der nächste Schritt der Analyse ist, das Problem des Benutzers zu erkennen. Für die beiden Arten von Zielen Positionieren und Löschen werden folgende Heuristiken verwendet:
99
PASSIVIST
• E n t h ä l t der Satz eine der Präpositionen ,,auf", „ a n " , „ z u " oder „ i n " gefolgt von einer Ortsangabe, handelt es sich u m ein Positionierungsproblem. • E n t h ä l t der Satz an einer beliebigen Position das W o r t „löschen", so h a n d e l t es sich u m ein Löschproblem. Nach dieser P h a s e gibt PASSIVIST d e m Benutzer eine R ü c k m e l d u n g ,
welche
W ö r t e r e r k a n n t und welche ignoriert wurden (siehe Abschnitt 2).
3.6 L ö s u n g der
Benutzerprobleme
F ü r die von PASSIVIST behandelte A r t von P r o b l e m e n besteht eine Lösung aus einer Folge von Editorbefehlen, die den Editor in den gewünschten s t a n d bringen.
Zu-
F ü r die meisten einfachen P r o b l e m e existiert ein BISY-Be-
fehl, der das Ziel in einem Schritt erreicht.
F ü r diese Fälle e n t h ä l t PAS-
SIVIST eine große Zahl spezieller Regeln, die gleichzeitig die G r u n d l a g e f ü r die Lösung komplexerer, in Teilprobleme zerlegter P r o b l e m e bilden. Voraussetzung f ü r die Erzeugung von P l ä n e n f ü r die Lösung von Benutzerproblemen ist Wissen über den aktuellen Zustand des Editors (Modell über das Anwendungssystem).
Dieses Modell e n t h ä l t bei PASSIVIST verschiedene
A n g a b e n über die Position der Schreibmarke, z.B. ob sie sich a m A n f a n g oder a m E n d e des Textes, einer Zeile oder eines Wortes befindet.
Indirekt
sagt das Modell d a m i t auch einiges über den Inhalt des T e x t p u f f e r s aus: so ist z.B. die aktuelle Zeile leer, wenn die Schreibmarke
gleichzeitig
am
A n f a n g u n d a m Ende der Zeile steht. Viele P r o b l e m e können erst gelöst werden, n a c h d e m sie in Teilprobleme zerlegt w u r d e n .
U m zum Beispiel ein W o r t zu löschen, auf dem die Schreib-
m a r k e steht, müssen die folgenden Teilprobleme gelöst werden: 2 1. Bringe Schreibmarke an den A n f a n g des Wortes! 2. Lösche W o r t a b Position der Schreibmarke! W ä h r e n d der Lösungsphase werden auch die E r l ä u t e r u n g e n f ü r den zer generiert.
Benut-
Jedesmal wenn ein Schritt der Lösung gefunden wurde, wird
dieser d e m Benutzer zur A u s f ü h r u n g präsentiert.
2
In BISY existiert kein Befehl, der ein W o r t unabhängig von der Schreibmarkenposition löschen würde. Dafür gibt es Befehle, um den Teil des Wortes links bzw. rechts von der Schreibmarke zu löschen.
100
Systeme zur Dialogunterstützung
Lösungen der Benutzerprobleme werden zunächst auf der Ebene von BlSYBefehlen bestimmt. Die zugehörigen Funktionstastenfolgen, die der Benutzer zur Ausführung dieser Befehle eintippen muß, werden erst zur Laufzeit bestimmt. Da der Benutzer in BlSY Funktionstasten beliebigen Befehlen zuordnen und insbesondere auch die vordefinierten Bindungen verändern kann, ist so sichergestellt, daß immer die gerade gültigen verwendet werden. Sind mehrere Tastenfolgen definiert, so wählt PASSIVIST eine kürzeste aus. Erfahrungen mit Anfängern haben gezeigt, daß die Beherrschung der Tastatur und der Umgang mit Tastenfolgen für diese Benutzergruppe ein erhebliches Problem darstellt. Für diesen Zweck existiert ein einfaches Benutzermodell, das widerspiegelt, ob der Benutzer die Schreibweise von Tastenfolgen und die Eingabe von Kontrolltasten beherrscht. Das System geht davon aus, daß ein Benutzer, der das System zum erstenmal benutzt, diese Kenntnisse nicht besitzt und ein Anfänger ist. Nachdem die entsprechenden Erklärungen dreimal gegeben wurden, nimmt das System an, daß der Benutzer nun über die T a s t a t u r Bescheid weiß und gibt keine weiteren Erklärungen.
4. P r o b l e m e bei n a t ü r l i c h s p r a c h l i c h e n Hilfesystemen Ein grundlegendes Problem natürlichsprachlicher Hilfesysteme ist, daß eine gemeinsame Kommunikationsbasis zwischen Benutzer und Hilfesystem notwendig ist. Dies ist um so schwieriger, als ein Anwendungssystem, wie z.B. ein Texteditor, viele dem Benutzer unbekannte Konzepte enthält, die er folglich in seinen Anfragen auch nicht verwenden und erst nach und nach erlernen wird. Genauso muß das Hilfesystem sehr sorgfältig seinen Wortschatz auf den Benutzer abstimmen, um verständliche Antworten zu generieren. In zwischenmenschlichen Beratungsdialogen können solche Anpassungsvorgänge oft beobachtet werden. Das wichtigste Hilfsmittel des Hilfesystems ist hier das Benutzermodell. Für den A u f b a u eines Benutzermodells stehen im allgemeinen die folgenden Informationsquellen zur Verfügung: • Benutzeraktionen, • Hilfeanforderungen des Benutzers, • Fragen des Hilfesystems an den Benutzer. Aktionen des Benutzers können z.B. auf die Teilmenge der K o m m a n d o s hin untersucht werden, die der Benutzer verwendet.
Diese K o m m a n d o s stellen
101
PASSIVIST
das aktive Repertoire des Benutzers dar und ergeben einen ersten Uberblick über die Kenntnisse des Benutzers. Wenn später Hilfe erteilt wird, brauchen diese Kommandos nicht mehr erläutert zu werden. Im System AKTIVIST (siehe Kapitel VII) werden endliche Automaten verwendet, um zu erkennen, wie der Benutzer bestimmte Probleme aus dem Bereich Editieren löst. Problemlösungen des Hilfesystems können d a n n auf diese Lösungen abgestimmt werden, um den Benutzer nicht mit zuviel Neuem zu überlasten. Für ein natürlichsprachliches Hilfesystem bilden die Äußerungen des Benutzers eine wichtige Informationsquelle. Die Frage etwa ,,Wie kann ich dieses Wort weiter nach rechts schieben?" deutet an, daß der Benutzer vom Raummodell der Textdarstellung ausgeht (siehe unten). Spontane Mitteilungen des Benutzers und explizite Fragen des Systems (z.B. durch einen Fragebogen) können ebenfalls Informationen für ein Benutzermodell liefern. Anfänger haben oft unvollständige und irreführende Modellvorstellungen von Anwendungsgebiet oder Anwendungssystem. In zunehmendem Maße verwenden Benutzer Computersysteme für Aufgaben, für die sie nicht speziell ausgebildet sind. Ein aktuelles Beispiel ist der Schriftsatz. Mit modernen Computersystemen ist heute jeder in der Lage, druckreife Dokumente zu erstellen. Die technische Machbarkeit garantiert aber keineswegs, daß die vorhandene Funktionalität auch sachgerecht angewandt wird [Bentley 8 6 ] . Im die soll der und
Bereich des Texteditierens existieren verschiedene Modellvorstellungen, zu Verwechslungen und Mißverständnissen führen können. Als Beispiel hier die Wirkungsweise von Pfeiltasten betrachtet werden. Gegeben sei folgende Text aus drei Zeilen mit einer Leerzeile zwischen der zweiten dritten Zeile. e i ns zue i | v i er
Die Schreibposition befindet sich am Ende der zweiten Zeile. Wenn der Benutzer die Taste mit dem Pfeil nach unten betätigt, wohin wird sich die Schreibmarke bewegen? Es gibt mindestens drei vernünftige Zielpositionen, die von einer jeweils anderen Modellvorstellung nahegelegt werden.
102
Systeme zur Dialogunterstützung e i ns zue i Q g v i erßj
1. Die Schreibmarke bewegt sich zum linken Rand der Leerzeile. Dieses Verhalten folgt aus dem Sequenzkonzept der Textdarstellung. Hier wird der Text als eine Folge von durch spezielle Zeilentrenner getrennte Zeichen aufgefaßt. Eine Leerzeile entsteht folglich durch zwei direkt aufeinanderfolgende Zeilentrenner. Dieses Verfahren wird im Texteditor BISY angewendet. 2. Die Schreibmarke geht in die Leerzeile, behält aber ihre horizontale Position bei. Dieses Verhalten erwartet man bei einem Editor, der nach dem Raumkonzept arbeitet (Schreibmaschinenmodell). Die Annahme hier ist, daß die Pfeiltaste die Schreibmarke einfach um eine bestimmte geometrische Entfernung (eine Zeilenhöhe) nach unten bewegt. 3. Die Schreibmarke kommt hinter dem Wort ,,vier" zu stehen. Wenn man annimmt, daß die Leerzeile einfach „Zwischenraum" darstellt und die Schreibmarke sich nur vor oder hinter Buchstaben befinden kann, so ist auch diese Reaktion vernünftig. Um wirkungsvolle Hilfe zu geben, muß ein Hilfesystem über solche Modellvorstellungen Bescheid wissen. Wenn ein Benutzer ständig ein anderes Systemverhalten erfährt, als er erwartet, sollte ein Hilfesystem in der Lage sein, dies zu erkennen, und dem Benutzer ein besseres Modell nahebringen. Ein grundlegendes Problem natürlichsprachlicher Systeme ist die große Zahl gleichwertiger Formulierungen, die ein Benutzer zum Ausdrücken seines Problems verwenden kann. Die beiden Formulierungen „Wie setzt man die Schreibmarke „Wie komme
ich ans
an das Ende der
Zeile?"
Zeilenende?"
sind oberflächlich sehr verschieden. Beidesmal sucht der Benutzer aber nach derselben Information. Wenn ein Hilfesystem nicht in der Lage ist, die überwältigende Mehrheit dieser Formulierungen zu verstehen, ist es von geringem Nutzen und wird von Benutzern schnell abgelehnt. Für denjenigen, der ein natürlichsprachliches Hilfesystem erstellt, ist es nicht einfach, solche äquivalenten Formulierungen vorherzusehen.
103
PASSIVIST
5. S c h l u ß b e m e r k u n g e n PASSIVIST ist ein prototypisches System, das nicht den Anspruch alle Voraussetzungen für einen kommerziellen Einsatz zu erfüllen.
erhebt, Um die-
sen Schritt zu machen, müßte vor allem die Menge der Probleme, die PASSIVIST f ü r den Benutzer lösen kann, wesentlich erweitert werden. Ein Ziel dieser Arbeit war, die Hypothese zu überprüfen, daß eine natürlichsprachliche Schnittstelle für passive Hilfesysteme besonders geeignet ist. Für den beschränkten Anwendungsbereich personen diese Annahme bestätigt.
von PASSIVIST haben
Versuchs-
Informationen konnten mit Hilfe von
PASSIVIST mindestens so schnell oder schneller gefunden werden als mit herkömmlichen gedruckten oder on-line verfügbaren Beschreibungen. Unsere Beobachtungen mit einem simulierten System haben gezeigt, daß neben geradlinigen Fragen von der Art, wie sie PASSIVIST behandelt, gelegentlich sehr unklare Äußerungen vorkommen, die zu verstehen noch mit einem erheblichen Aufwand verbunden sein dürfte. Eine andere Frage ist, wie sich natürlichsprachliche Hilfesysteme, selbst wenn alle obengenannten Probleme gelöst wären, gegenüber anderen Arten von elektronischen Hilfesystemen (z.B. aktive, navigatorische oder stichwortorientierte Hilfesysteme) stellen würden. Würden Benutzer wirklich natürlichsprachliche Systeme vorziehen? Welchen Einfluß hat die Tatsache, daß Anfragen in geschriebener Sprache gestellt werden müssen anstatt in gesprochener Sprache? Unsere eigenen Erfahrungen mit Kommunikationssystemen haben gezeigt, daß Systeme, die geschriebene Sprache verwenden (electronic mail, Briefe), oft für andere Zwecke als Systeme mit gesprochener Sprache verwendet werden (Telephon). Hilfesysteme können nicht isoliert betrachtet werden. Bestimmte Eigenschaften eines Systems verursachen entsprechende Hilfebedürfnisse und typische Fehler [Norman 83]. Da ein Hilfesystem stark von der Konzeption des Anwendungssystems geprägt wird, sollte man erwägen, ob eine Verbesserung des Anwendungssystems nicht viele Hilfebedürfnisse eliminieren würde, anstatt Schwächen des Anwendungssystems mit einem raffinierten Hilfesystem gutzumachen. Direkte Manipulation mit einem Zeigegerät kann z.B. die Cursorpositionierung sehr vereinfachen. Das Streben, mit anderen Systemen kompatibel zu bleiben, steht der Modifizierung des Anwendungssystems jedoch oft entgegen.
104
Systeme zur Dialogunterstützung
Ein wirkungsvolles natürlichsprachliches Hilfesystem zu erstellen ist sicherlich heutzutage ein großer Aufwand. Man kann erwarten, daß ein solches System mindestens nocheinmal soviel Programmcode erfordert wie das Anwendungssystem selbst. Solche Systeme werden daher zuerst für relativ einfache Anwendungen mit sehr großer Verbreitung erscheinen. Das heutzutage meistverwendete passive Hilfesystem ist der Mensch.
Die
einfachste Möglichkeit, ein Problem zu lösen, ist, einen Expertenkollegen zu fragen, ob er nicht schon einmal auf ein ähnliches Problem gestoßen
ist.
Diese Möglichkeit kann aber nicht befriedigen, weil mit zunehmender Vielseitigkeit der Systeme die Wahrscheinlichkeit dafür sinkt und Experten oft einfach nicht verfügbar sind.
VII
AKTIVIST
Eine aktive Hilfekomponente für einen T e x t e d i t o r Thomas Schwab
Dieses Kapitel beschreibt die aktive Hilfekomponente AKTIVIST1, die dem Benutzer eines Texteditors Hinweise auf ihm unbekannte Kommandos gibt. Anhand eines Beispieldialogs wird ein typisches Szenario für A K T I V I S T gezeigt; anschließend wird die Arbeitsweise näher vorgestellt. Davon ausgehend wird die Problematik aktive Hilfe allgemein behandelt.
1. M o t i v a t i o n Mit der zunehmenden Funktionalität von Computersystemen steigt zwangsläufig auch deren Komplexität. Bedingt durch die Menge der Aufgaben, die ein Benutzer mit dem Anwendungssystem lösen kann, stellt ein solches System eine große Menge an Konzepten und Befehlen zur Verfügung 2 . Ein einzelner Benutzer verliert darüber oft den Uberblick und nutzt das System nicht optimal aus. So braucht auch ein geübter, j a sogar ein sehr gut mit dem System vertrauter Benutzer Hilfe bei bisher noch nicht oder nur selten durchgeführten Aktionen. In Abbildung 1 sind die Vorstellungen des Benutzers über ein System durch Ellipsen dargestellt, wobei ein Rechteck die Menge der tatsächlich im System realisierten Konzepte symbolisiert. Die Menge der vom Benutzer vermuteten Konzepte (große Ellipse) und die tatsächlich
im
System
realisierten
(Rechteck)
stehen
nicht in einer echten Ober- oder Untermengenrelation.
im allgemeinen
Fall
Der Benutzer ver-
mutet Konzepte und damit assoziierte Befehle im System, die in Wirklich-
1
A K T I V I S T e n t s t a n d als W e i t e r e n t w i c k l u n g des in
2
Konzept s t e h t f ü r einen Begriff aus d e m jeweiligen A n w e n d u n g s g e b i e t . Im A n w e n d u n g s s y s t e m r e a l i s i e r t e K o n z e p t e spiegeln sich in F o r m von Befehlen wieder (Beispiel: das K o n z e p t d e r Z e i l e n l ö s c h u n g k a n n in e i n e m E d i t o r d u r c h den Befehl r u b o u t - l i n e realisiert sein).
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter Sc Co. • Berlin . New York
[ S c h w a b 84] vorgestellten
Hilfesystems.
106
Systeme zur Dialogunterstützung vermutete Konzepte
Abbildung 1.
Nutzung komplexer Systeme.
keit nicht darin enthalten sind.
Andererseits existieren Befehle im System,
deren Existenz der Benutzer nicht vermutet. Für die kritischen Bereiche (in Abbildung 1 durch unterschiedliche Schraffur dargestellt) soll im folgenden kurz aufgezeigt werden, wie der Benutzer sinnvoll unterstützt werden kann. • Eine verbesserte Benutzerschnittstelle kann viel dazu beitragen, daß der Benutzer auch Befehle, die er nur gelegentlich benutzt (| |), zu einem späteren Zeitpunkt wieder richtig verwendet (z.B. Menüs, Propertysheets etc.). Hilfesysteme können den Benutzer insofern unterstützen, als er bei Unklarheiten dort nachfragen kann. • Realisierte Konzepte, die der Benutzer im System vermutet {Y///// >[), können gut durch ein Hilfesystem behandelt werden: da der Benutzer die Konzepte im System vermutet, ihm aber die zugehörigen Befehle und deren Verwendung nicht bekai.nt sind, wird er von sich aus nachfragen. • Ein Hilfesystem kann erkennen, wenn der Benutzer nach Operationen fragt, die das Anwendungssystem nicht bieten kann (jff||l|]), und entsprechend darauf antworten. Dazu benötigt das Hilfesystem Wissen über die Funktionalität des Anwendungssystems. • Bei den Konzepten, die im System realisiert der Benutzer aber nichts ahnt (|||||||||¡ij||), muß system zwangsläufig versagen. Der Benutzer te keine Fragen an das Hilfesystem richten.
sind, von deren Existenz ein konventionelles Hilfewird über solche KonzepHier ergibt sich die Not-
107
AKTIVIST
wendigkeit f ü r ein aktives Hilfesystem, das d e m Benutzer von sich aus Befehle aus diesem Bereich vorschlägt. Als Vorbild f ü r ein derartiges aktives Hilfesystem k a n n m a n sich folgende Situation vorstellen: Ein menschlicher Systemexperte zu. Der ihm beim Arbeiten über den Problembereich und Ausnutzung der Funktionalität
sitzt neben dem Benutzer und schaut Experte gibt aufgrund seines Wissens den Benutzer Ratschläge zur besseren des Systems.
Das hier beschriebene System AKTIVIST ist eine prototypische, aktive Hilfekomponente Bauer
für
86].
den
bildschirmorientierten
Sie soll dem E d i t o r b e n u t z e r
Texteditor Ratschläge
BlSY
[Bauer
84;
zu Positionier-
und
Löschaktionen geben.
2. E i n e B e i s p i e l s i t z u n g m i t AKTIVIST A b b i l d u n g 2 zeigt den Bildschirmaufbau zu Beginn der Editorsitzung. t e r h a l b des Editorfensters, in dem der zu editierende Text steht, sich das Dialogfenster f ü r den Editor.
Grundsätzlich können
Kommandos
in BlSY d u r c h Betätigen einer speziellen T a s t e und anschließender des K o m m a n d o n a m e n s
im Dialogfenster ausgelöst werden.
direkt ausgelöst werden.
Eingabe
Hierbei erfolgt
eine a u t o m a t i s c h e Vervollständigung des K o m m a n d o n a m e n s . m a n d o s sind d a r ü b e r hinaus an F u n k t i o n s t a s t e n
Un-
befindet
Einige
Kom-
gebunden und k ö n n e n
Diese T a s t e n b i n d u n g e n können auch v o m
so
Editor-
benutzer w ä h r e n d der Sitzung selbst u m d e f i n i e r t werden. Rechts
oben
AKTIVIST.
auf
dem
Bildschirm
befindet
sich
das
Kontrollfeld
Der Benutzer k a n n d a m i t die aktive Hilfe ein- und
(Auswahl von Glve
Hints
bzw. Be Q u i e t ) .
für
ausschalten
Ebenso k a n n er d u r c h
An-
klicken des Hilfekoffers mit der M a u s die Hilfestrategie von AKTIVIST beeinflussen (Abschnitt 3.5).
Durch Anklicken von Look At, U s e r Model
kann
das von AKTIVIST erstellte Benutzermodell inspiziert werden (Abschnitt 3.3). Für
die
Beispielsitzung
hat
der
Benutzer
die
aktive
Hilfe
eingeschaltet.
Uber d e m Editorfenster befindet sich nun das Ausgabefenster f ü r AKTIVIST (Abbildung 2).
Sämtliche Hinweise, die AKTIVIST w ä h r e n d
zung gibt, werden in diesem Ausgabefenster ausgegeben.
der
Editorsit-
Der Benutzer
hat
d o r t die Möglichkeit vor- u n d zuriickzublättern, so daß er auch weiter
zu-
rückliegende Hinweise nochmals inspizieren k a n n .
108
Systeme zur Dialogunterstützung
T r a n s i t i o n s n e t z , (Ins t i e s c h r e i b t , a u f w e l c n e v e r s c h i e d e n e n A r t e n } m i t h i l f e der e x i s t i e r e n d e n E d i t i e r k o m m a n d o s d u r c h g e f ü h r t w e r d e n [ M i t j e d e m J E d i t i e r k o m m a n d o , d a s der B e n u t z e r a u s l ö s t , f ü h r e n d i e I r a n s i t i o n s n e t z e s ä m t l i c h e r P l a n e , d i e g e r a d e ü b e r w a c h t werden, e i n e n ZustandsUbergang durch. Zu B e g i n n der E d i t o r s i t z u n g werden a l l e P l ä n e ü b e r w a c h t ; e r s t nach und n a c h werden e i n i g e a u s der Überwachung herausgenommen ( s i e h e A b s c h n i t t 0 r e f < S t e u e r u n g - d e r - B e o b a c h t u n g > ) . Die Eingabe für d i e T r a n s i t i o n s n e t z e @Beg i n < E n u m e r a t e > a u s g e f ü h r t e m E d i t i e r k o m m a n d o und
ist
rF®
eine Seguenz von Paaren aus
Z u s t a n d des E d i t o r s n a c h A u s f ü h r u n g d e s Komma l o s . Der E d i t o r z u s t a n d i s t hier durch die C u r s o r p o s i t i o n b e z ü g l i c h s mantisciier E i n h e i t e n d e f i n i e r t ( z . B . "am A n f a n g e i n e s W o r t e s " , "am nde e i n e r Z e i l e " e t c . ) .
m
font-name:
Abbildung 2.
::
: : :
german
Einschalten von AKTIVIST.
Nachfolgend soll die Wirkungsweise von AKTIVIST anhand zweier typischer Situationen im Umgang mit dem Editor erläutert werden.
2.1 H i n w e i s auf ein
Kommando
Im Beispiel kennt der Benutzer keine komplexen Löschkommandos. Er hat während des Editiervorgangs für Löschungen nur die primitiven K o m m a n d o s r u b o u t - c h - l e f t und r u b o u t - c h - r i g h t benutzt, die das Zeichen links bzw. rechts von der Schreibmarke löschen. Nachdem er auf diese Weise mehrmals längere Wortanfänge zeichenweise gelöscht hat, ertönt ein akustisches Signal und im Ausgabefenster von AKTIVIST erscheint der Hinweis auf das Kommando r u b o u t - w o r d - l e f t (Abbildung 3).
109
AKTIVIST
You may use rubout-word-left (Key binding: to delete the left part of the current word
PF1 DEL)
1 Trans 11 lonsnet z, [las beschreibt, auf welche verschiedenen Arten tlieser ^ Mithilfe der existierenden Editierkommandos durchgeführt werden kann. Mit jedem Editierkommando, das der Benutzer auslöst, fuhren alle Transitionsnetze der Plane, die gerade überwacht werden sollen, einen Zustandsüberyany durch Zu Beyinn der Editorsitzung werden alle Pläne überwacht und erst nach und nach einige aus der überwachuny genommen [ (siehe Abschnitt G>ref). nie Eingabe für die Transit ionsnetze ist eine Sequenz von Paaren atrs @Beg in ausgeführtem Fd itorkommando und Zustand des Editors nach Ausführung des Kommandos Der ¿zustand ist hier durch die Cursorposition bezüglich semantischer Einheiten definiert (z.ß "an Anfang eines Wortes", "am Ende einer Zeile" etc ). fr
—
T m ~ ~
Abbildung 3.
Hinweis auf
t. -r
rubout-word-left.
2 . 2 Hinweis a u f T a s t e n b i n d u n g Im Beispiel weiß der Benutzer nicht, daß das K o m m a n d o beginnlng-of-llne Funktionstaste
zum Positionieren
gebunden
ist.
Er
löst
durch Eingabe
des Kommandonamens
dies mehrmals
getan
hat,
an den
set-cursor-to-
Zeilenanfang
deshalb
dieses
im Dialogfenster
erhält er im Ausgabefenster
auch
Kommando aus.
an
eine
immer
Nachdem
von AKTIVIST
er den
Hinweis auf die Tastenbindung des Kommandos (Abbildung 4).
3. Die Arbeitsweise von AKTIVIST AKTIVIST ist Teil des integrierten Hilfesystems zum Editor BlSY 3 .
Der Be-
nutzer des Editors kann in folgenden Situationen Hinweise erhalten: 1. Der Benutzer kennt ein bestimmtes komplexes Editierkommando nicht und benutzt suboptimale Kommandos, um seine Editieraufgaben durchzuführen. Der Benutzer löscht z.B. eine Zeile zeichenweise, ans t a t t das entsprechende Kommando delete-line zu verwenden.
3
Eine B e s c h r e i b u n g des gesamten Hilfesystems
findet
sich in
[Bauer, Schwab
87].
Systeme zur Dialogunterstützung
110
r
Hints For Using The Editor You may use ruboot-word-left (Key binding: to delete the left part of the current word
PF1 DFL)
[
set-cursor-to-beg inning-of- 1 ine is also bound to '"'A 1
1•
¡Editor Window a b e K
P
l
a
n
b
e
w
e
r
t
u
n
g
>
©X? i
T
Nach erfolgter Erkennung eines Plans wird die Art und Weise bewertet, wie der Benutzer ihn ausgeführt hat. Dazu existiert zu jedem Editierplan ein Kommandovorschlag, der die optimale Kommandofolge für den Plan definiert Die Metrik für die Bewertung der Lösung des Benutzers der benötigten lastendrücke.
ist die Anzahl
|
PN(Aktivist) vergleicht die für die Planausführung benutzten Kommandos mit d e n abgespeicherten Vorschlägen zu dem jeweiligen Plan. Die bestmögliche Lösung wird also nicht für jeden konkreten fall berechnet, statische Kommandovorschlag für d e n Plan wird als Optimum angesehen. Bei der Bewertung können zwei Fälle unterschieden werden: Editor Dialog Window give COMMAND: set-cursor-to-beginning-of- 1ine
Abbildung 4.
Hinweis für
set-cursor-to-beginning-of-line.
2. Der Benutzer kennt zwar das Kommando, weiß aber nicht, daß es an eine Funktionstaste gebunden ist. Er löst deshalb das Kommando durch Eintippen des Kommandonamens aus. Derzeit können 20 verschiedene Editieraufgaben (sogenannte Pläne) aus den Bereichen Positionieren der Schreibmarke und Löschung von Textteilen von AKTIVIST behandelt werden. Wie das Beispiel gezeigt hat, greift AKTIVIST nicht direkt in die Arbeit des Benutzers mit dem Editor ein. Es werden nur Hinweise ausgegeben. Um sich näher über die vorgeschlagenen Kommandos zu informieren, genügt ein Anklicken des Kommandonamens mit der Maus. Das angeklickte Kommando wird dann mit Hilfe einer anderen Hilfekomponente des Hilfesystems weiter erklärt. Im folgenden sollen die einzelnen Phasen der Arbeitsweise von AKTIVIST näher erläutert werden.
111
AKTIVIST
3.1 E r k e n n e n v o n
Editierplänen
Mit Hilfe von Transitionsnetzen wird erkannt, welchen Plan der Benutzer gerade ausfuhrt. Zu jedem Editierplan existiert ein Transitionsnetz, das beschreibt, auf welche verschiedenen Arten dieser Plan mit den vorhandenen Editierkommandos durchgeführt werden kann. Abbildung 5 zeigt das Transitionsnetz zum Plan Löschen des Wortanfangs. Die Transitionsnetze werden durch Erkennungsautomaten abgearbeitet. Mit jedem Editierkommando, das der Benutzer auslöst, führen die Erkennungsautomaten sämtlicher Pläne, die gerade überwacht werden, einen Zustandsübergang durch. Zu Beginn der Editorsitzung werden alle Pläne überwacht; erst nach und nach werden einige aus der Überwachung herausgenommen (siehe Abschnitt 3.4). Die Eingabe für die Erkennungsautomaten ist eine Sequenz von Paaren aus ausgeführtem Editierkommando und Zustand des Editors nach Ausführung des Kommandos. Der Editorzustand ist hier durch die Position der Schreibmarke bezüglich semantischer Einheiten definiert (z.B. „ a m Anfang eines Wortes", „ a m Ende einer Zeile" etc.). Jedes Paar (Kommando - Position) stellt somit ein Eingabezeichen für die Erkennungsautomaten dar. Abhängig vom zugehörigen Transitionsnetz gehen sie in andere Zustände über und können dabei Aktionen ausführen. Drei Aktionen sind bei Zustandsübergängen möglich: • init: dies geschieht, wenn die Anfangsbedingungen für die Planausführung erfüllt sind. Das nächste vom Benutzer ausgelöste Editierkommando ist also potentiell Bestandteil des Planes. • match-all: diese Aktion wird ausgelöst, wenn die Planerkennung erfolgreich war. Alle Kommandos, die seit der irai-Aktion ausgelöst wurden, sind Bestandteil der Planausführung. • match-without-last: hat dieselbe Auswirkung wie match-all, nur wird das zuletzt ausgeführte Kommando nicht mit zur P l a n a u s f ü h r u n g gezählt. Diese Aktion wird bei Plänen nötig, zu deren Erkennung ein Look-Ahead-Mechanismus nötig ist; als Look-Ahead-Distanz gilt ein Eingabeschritt. Jedes
Transitionnetz
hat
mindestens
die
zwei
ausgezeichneten
Zustände
START und WAIT mit folgender Bedeutung: WAIT: die Anfangsbedingungen für den Plan sind nicht erfüllt. Das nächste ausgelöste K o m m a n d o kann sicher nicht zum Plan gehören.
Systeme zur D i a l o g u n t e r s t ü t z u n g (rubout-ch-left / onw)
Transition:
onw bow
( Command
/ Cursorposition )
= "on word" = "beginning of word"
Abbildung 5.
Transitionsnetz f ü r Löschen
des
Wortanfangs.
START: die A n f a n g s b e d i n g u n g e n f ü r den P l a n sind erfüllt. ste ausgelöste K o m m a n d o gehört möglicherweise zum P l a n . Löschen
des Wortanfangs
Schreibmarke
innerhalb
Das näch-
k a n n z.B. nur a u s g e f ü h r t werden, wenn sich die eines
Wortes
befindet.
Der
Erkennungsautomat
zum Transitionsnetz aus A b b i l d u n g 5 befindet sich d a n n im Z u s t a n d START. Steht die S c h r e i b m a r k e nicht innerhalb eines Wortes, befindet sich der Aut o m a t im Zustand WATT. Die A u s f ü h r u n g eines nicht zum P l a n
gehörenden
K o m m a n d o s f ü h r t ihn wieder in einen der beiden Zustände zurück.
In Ab-
bildung 5 sind das die Übergänge mit * an der K o m m a n d o p o s i t i o n . Zustände STATE 1 u n d STATE 2 werden v o m E r k e n n u n g s a u t o m a t e n laufen, wenn der Benutzer den P l a n d u r c h Markieren
eines
u n d anschließendes Löschen
ausführt.
des markierten
Textbereiches
Die durch-
Textbereiches
AKTIVIST
113
Als Ergebnis einer erfolgreichen
Planerkennung
liegen die b e n u t z t e
mandofolge u n d die T a s t e n , mit denen die einzelnen K o m m a n d o s wurden,
vor.
Dieses Ergebnis wird
anschließend
in der
Kom-
ausgelöst
Bewertungsphase
weiterverwendet.
3.2 B e w e r t e n der v e r w e n d e t e n AKTIVIST kennt
zu j e d e m
Editierplan
einen Vorschlag,
K o m m a n d o f o l g e f ü r den Plan definiert. bestmögliche Lösung wird also nicht Der
Vorschlag
für
Löschen
des
Kommandos der
die
optimale
Dieser Vorschlag ist statisch; die
f ü r jeden
Wortanfangs
konkreten ist
z.B.
Fall das
berechnet. Kommando
rubout-word-left. Die Metrik f ü r die Bewertung der Lösung des Benutzers ist die Anzahl der benötigten Tastenanschläge.
Dazu vergleicht AKTIVIST die f ü r die P l a n a u s -
f ü h r u n g benutzten K o m m a n d o s mit d e m abgespeicherten Vorschlag zu d e m jeweiligen P l a n .
Bei der Bewertung können d a n n zwei Fälle unterschieden
werden: 1. Der Benutzer h a t den optimalen K o m m a n d o v o r s c h l a g
benutzt.
2. Der Benutzer h a t andere K o m m a n d o s zur P l a n a u s f ü h r u n g b e n u t z t .
V e r w e n d u n g des V o r s c h l a g s AKTIVIST b e t r a c h t e t nun mit welchen Tasten der Benutzer das K o m m a n d o , bzw. die K o m m a n d o f o l g e , ausgelöst hat.
Die verwendete Tastenfolge wird
m i t der minimal möglichen Tastenfolge gemäß der gerade aktuellen
Tasten-
bindungen verglichen: • H a t der Benutzer nicht mehr Tastenanschläge benötigt, gilt der als optimal a u s g e f ü h r t .
Plan
• H a t der Benutzer mehr T a s t e n benötigt, so k e n n t er offensichtlich nicht die kürzeste Tastenfolge, u m das K o m m a n d o (bzw. die Kommandofolge) auszulösen.
Verwendung anderer
Kommandos
G e m ä ß der Metrik soll dies nur d a n n als „ u m s t ä n d l i c h " bewertet wenn er d a d u r c h zu viele Tastenanschläge benötigt h a t .
Auch hier werden
die benötigten Tastenanschläge mit der Minimallösung f ü r den vorschlag verglichen:
werden,
Kommando-
114
Systeme zur Dialogunterstützung • Hat der Benutzer mehr Tasten benötigt, so wird seine Lösung als „umständlich" bewertet. Er hätte durch die Benutzung des K o m m a n dovorschlags Tastenanschläge einsparen können. • Hat der Benutzer weniger (siehe Beispiel) oder gleich viel Tastenanschläge benötigt, so wird die Lösung nicht als „umständlich" bewertet. Die Benutzung des Kommandovorschlags hätte keine Ersparnis gebracht. Beispiel: Die Schreibmarke steht zwischen dem ersten und zweiten Buchstaben eines Wortes. Wenn der Benutzer nun den Wortanfang (in diesem Fall nur ein einziger Buchstabe) mit r u b o u t - c h - l e f t (Taste: DEL,) löscht, wird der Plan Löschen des Wortanfangs vom entsprechenden Erkennungsautomaten erkannt. Der Vorschlag für diesen Plan ist r u b o u t - w o r d - l e f t (Tastenfolge: PF1 DEL/ Der Benutzer hat also weniger Tastenanschläge benötigt, als mit dem Kommandovorschlag. Nach der Metrik kann dies nicht als negativ bewertet werden. Der Kommandovorschlag erweist sich nur bei längeren Löschungen als besser. Es kann aus diesem Beispiel allerdings nicht geschlossen werden, daß der Benutzer den Kommandovorschlag für den Plan beherrscht. Die Bewertung wird deshalb den Plan auch nicht als optimal ausgeführt betrachten.
3.3 D a s M o d e l l über den B e n u t z e r AKTIVIST besitzt ein Benutzermodell, in dem Information Uber die Arbeitsweise, den Wissensstand und die bisher an den Benutzer gegebenen Hilfeleistungen enthalten ist. Die Informationen zur Modellierung des Benutzers werden im wesentlichen aus der Erkennungs- und Bewertungsphase gewonnen. Zu jedem Editierplan werden für jeden Benutzer folgende Daten festgehalten: • wie oft der Editierplan während der Editorsitzung wurde,
schon
ausgeführt
• wie oft die P l a n a u s f ü h r u n g als optimal bewertet wurde, d.h., wie oft der Editierplan mit dem Kommandovorschlag und der dafür minimalen Tastenfolge ausgelöst wurde, • wie oft der Editierplan seit dem letzten Hinweis dazu auf umständliche Weise ausgeführt wurde und die Anzahl der dadurch unnötigen Tastenanschläge,
115
AKTIVIST
• wie o f t der Editierplan seit d e m letzten Hinweis dazu zwar m i t d e m Kommandovorschlag, aber nicht m i t der kürzesten T a s t e n b i n d u n g ausg e f ü h r t wurde. Hierzu wird ebenfalls die Anzahl der unnötigen T a stenanschläge abgespeichert. • Die Anzahl der Hilfemeldungen, die der Benutzer schon von AKTIVIST erhalten h a t .
zu diesem
Plan
Abbildung 6 zeigt beispielhaft d e n Teil des erstellten Benutzermodells z u m P l a n Löschen
des Wortanfangs.
Der Plan wurde insgesamt dreimal
f ü h r t , allerdings nie mit d e m optimalen K o m m a n d o . einen Hinweis dazu gegeben.
ausge-
AKTIVIST h a t schon
Seit diesem Hinweis h a t der Benutzer den
P l a n einmal m i t suboptimalen K o m m a n d o s ausgelöst u n d d a d u r c h sechs zusätzliche
Tastenanschläge
benötigt.
Der K o m m a n d o v o r s c h l a g
f ü r diesen
P l a n ist r u b o u t - w o r d - l e f t u n d kann als kürzeste Tastenfolge m i t P F l DEL ausgelöst werden.
DELETE l e f t p a r t o f word
USER
MODEL
iplan executed: ::900d d o n e : ¡wrong corinand u s e d : :;with u n n e c e s s a r y k e y s : connand with wrong keys th u n n e c e s s a r y keys: messages sent to user:
used:
3 A 1 6 A A 1
INTERNAL
I N F O R M A T I O N
proposed commands: tima I keys:
rubout-gord P F l DEL
left
A c t i v e Help
Be Qu let Give Hints +
G
tde
Abbildung 6.
User
Hödel
Benutzermodell zu Löschen
des
Wortanfangs.
Der Inhalt des Benutzermodells steuert d a s Verhalten von AKTIVIST.
Auf-
grund dieser Informationen wird entschieden, welche Pläne in Z u k u n f t wei-
Systeme zur D i a l o g u n t e r s t ü t z u n g
116
ter ü b e r w a c h t werden sollen (Abschnitt 3.4) u n d zu welchen P l ä n e n der Benutzer Hinweise erhalten soll (Abschnitt 3.5). Das Modell über den Benutzer ist lokal zu den einzelnen P l ä n e n tiert.
repräsen-
Es existiert keine globale I n f o r m a t i o n s s t r u k t u r , die die Beziehungen
der P l ä n e u n t e r e i n a n d e r berücksichtigt.
Das Benutzermodell wird bei j e d e r
Editorsitzung neu a u f g e b a u t .
3.4 S t e u e r u n g der w e i t e r e n A m A n f a n g einer Editorsitzung Ihre zugehörigen
Beobachtung
werden
Erkennungsautomaten
alle P l ä n e
gleichzeitig
überwacht.
sind eingeschaltet; sie a r b e i t e n
Erkennungsprozeß die Transitionsnetze parallel ab.
im
Dies ist bei einer gerin-
gen Zahl von zu überwachenden Editierplänen noch möglich. Im Verlauf der Editorsitzung schließt AKTIVIST a u f g r u n d des erstellten Modells über den Benutzer gewisse P l ä n e von der weiteren B e o b a c h t u n g Die zugehörigen E r k e n n u n g s a u t o m a t e n werden abgeschaltet.
aus.
Das Benutzer-
modell wird zu diesen Plänen nicht weiter aktualisiert; AKTIVIST gibt deshalb auch keine Hilfemeldungen m e h r zu den Plänen.
Die Kriterien
für
den Ausschluß von Plänen k a n n der Benutzer d u r c h V e r ä n d e r n der Hilfestrategie selbst einstellen (siehe Abbildung 7). Ein P l a n , der einmal aus der B e o b a c h t u n g genommen wurde, wird w ä h r e n d der weiteren Editorsitzung
bei
einer
neuen Editorsitzung zu Beginn wieder alle P l ä n e beobachtet werden,
nicht wieder eingeschaltet.
Da aber
kann
d a d u r c h d e m U m s t a n d Rechnung getragen werden, daß der Benutzer
viel-
leicht gewisse Systemeigenschaften
kann
wieder
vergessen
hat.
AKTIVIST
sich so bei jeder Sitzung auf den aktuellen Wissenstand des Benutzers neu einpendeln.
3.5 H i l f e s t r a t e g i e v o n AKTIVIST Die Hilfestrategie von AKTIVIST k a n n
individuell eingestellt werden.
Alle
P a r a m e t e r , die bestimmen, w a n n die Hilfekomponente Hinweise geben soll, können über ein P r o p e r t y s h e e t (vgl. A b b i l d u n g 7) v e r ä n d e r t werden. Zwei P a r a m e t e r
bestimmen die globale Strategie, nach der eine Hilfeinfor-
mation ausgegeben werden soll: • Die Zeit zwischen zwei Hinweisen soll mindestens q u i e t t i m e b e t w e e n two h l n t s Sekunden betragen, u m eine I n f o r m a t i o n s ü b e r f l u t u n g zu verhindern. Besonders f ü r einen A n f ä n g e r k a n n es sonst b e d e u t e n ,
AKTIVIST
117
Be
On i et
Give Hints
c Abbildung 7.
Look fit I Mode I
q u i e t t i n e b e t w e e n two h i n t s i g n o r e good u s a g e = 2 n.mlnat h i n t s per plan = 2
= 38
Propertysheet zum V e r ä n d e r n der Hilfestrategie.
d a ß er pausenlos von der aktiven Hilfekomponente Ratschläge bek o m m t . Ein Hinweis, der sich auf eine b e s t i m m t e Aktion bezieht, soll nur unmittelbar nach deren A u s f ü h r u n g durch den Benutzer erfolgen. N u r so ist der zeitliche u n d sachliche Z u s a m m e n h a n g zwischen Hinweis u n d Arbeiten im Editor gegeben. Falls nach diesem K r i t e r i u m ein Hinweis gegeben werden sollte, der letzte aber noch keine q u l e t t i m e b e t w e e n two h l n t s Sekunden zurückliegt, erfolgt keine Ausgabe. • Hinweise zur gleichen E d i t i e r a u f g a b e oder zum gleichen K o m m a n d o werden nur m a x i m a l h l n t s p e r p l a n mal gegeben. Dies gewährleistet, d a ß der Benutzer die Hinweise nicht akzeptieren m u ß u n d die Hilfekomponente nicht aufdringlich wird, wenn er auf seine eigene A r t u n d Weise weiterarbeitet. Dabei ist es sinnvoll, den W e r t von m a x i mal h l n t s p e r p l a n größer als 1 zu wählen. Es ist nicht anzunehmen, daß der Benutzer nach einmaliger Meldung den Hilfevorschlag schon gelernt h a t . U m die Hilfeaktivität auf die f ü r den Benutzer wesentlichen Teile zu richten und sporadische Umständlichkeiten nicht überzubewerten, wird die Ausgabe von Hinweisen d u r c h vier P a r a m e t e r gesteuert.
Ein Hinweis zu einer
speziellen E d i t i e r a u f g a b e erfolgt, • wenn sie mehr als t o l e r a t e u s a g e of bad commands mal mit suboptimalen K o m m a n d o s d u r c h g e f ü h r t wurde u n d der Benutzer d a d u r c h mehr als k e y s t r o k e l i m l t f o r bad commands u s a g e unnötige T a stenanschläge gegenüber d e m K o m m a n d o v o r s c h l a g des Hilfesystems benötigt h a t oder
Systeme zur D i a l o g u n t e r s t ü t z u n g
118
• wenn der K o m m a n d o v o r s c h l a g des Hilfesystems mehr als tolerate usage of bad keys mal auf nichtoptimale Weise ausgelöst wurde u n d d a d u r c h keystroke limit for bad keys usage mehr T a s t e n a n s c h l ä ge benötigt wurden. Die aktive Hilfekomponente soll nur Hinweise zu Systemeigenschaften geben, die f ü r den Benutzer neu sind.
Aus diesem G r u n d existiert ein
weiterer
Parameter: • Wird ein Editierplan mehr als i g n o r e good usage mal auf o p t i m a l e A r t u n d Weise v o m Benutzer ausgeführt, gibt AKTIVIST die Beobacht u n g d a f ü r auf. In Z u k u n f t erfolgen dazu keine Hinweise m e h r . Hier ist zu empfehlen, den Grenzwert i g n o r e good usage größer als 1 zu wählen; d a m i t wird ausgeschlossen, daß schon ein einmaliges versehentliches Auslösen des Kommandovorschlags als Beherrschung des P l a n s interpretiert wird.
4. A k t i v e Hilfe Allgemein lassen sich Hilfesysteme a u f g r u n d der Initiative zur Hilfeleistung in passive Aktive
und aktive
Hilfesysteme unterteilen (siehe Kapitel V u n d VI).
Hilfesysteme w a r t e n
sondern
werden
sich aus aktiv.
aufgrund
nicht eine Hilfeanforderung des Benutzers einer Analyse der
bisherigen
Dialoghistorie
ab, von
Es werden Hinweise gegeben, die d a n n allerdings w i e d e r u m
ein Einstieg zu einer w e i t e r f ü h r e n d e n A n f r a g e des Benutzers sein
können.
Dies wird vor allem d a n n wichtig, wenn der Benutzer zusätzliche I n f o r m a tionen zum gegebenen Hinweis will. passives Hilfesystem voraus.
Ein aktives Hilfesystem setzt ein gutes
Die internen Wissensstrukturen über den Pro-
b l e m r a u m , die S y s t e m f u n k t i o n a l i t ä t und den konkreten Benutzer müssen in beiden A r t e n
von Hilfesystemen vorhanden sein.
Ebenso benötigen
entsprechende Mechanismen, u m Informationen geeignet auf dem
beide
Bildschirm
darzubieten, m o m e n t a n irrelevante Informationsteile auszufiltern und
weite-
res Nachfragen des Benutzers zu ermöglichen. Man spricht deshalb besser von passiven und aktiven H i l f e k o m p o n e n t e n , die Teile eines integrierten Hilfesystems sind.
Beide K o m p o n e n t e n können
auf
dieselben Wissensstrukturen zugreifen und es können Synergie-Effekte ausgen ü t z t werden, indem eine K o m p o n e n t e Ergebnisse der anderen det.
mitverwen-
So kann beispielsweise ein umfassenderes Benutzermodell erstellt
wer-
den, wenn nicht nur die verwendeten K o m m a n d o s , sondern auch die A n f r a gen des Benutzers an die passive Hilfekomponente Berücksichtigung finden.
119
AKTIVIST
Ein solches Hilfesystem schafft eine Situation, die dem eingangs erwähnten Modell mit einem menschlichen Experten als Beobachter noch näher k o m m t : Ein menschlicher Beobachter kann nicht nur von sich aus dem Benutzer Hilfe anbieten, sondern dient auch als Ansprechpartner für Fragen. Ein Dialog zwischen Benutzer und Hilfesystem wird also ermöglicht, der zum Teil vom Benutzer (passive Komponente) und zum Teil vom Hilfesystem (aktive Komponente) initiiert wird.
4.1 S p e k t r u m a k t i v e r Hilfe Definiert man jede Art von Hinweisen, die der Benutzer eines Systems ohne explizite Anfrage erhält, als aktive Hilfe, dann lassen sich folgende Techniken im weitesten Sinne als aktive Hilfeleistungen betrachten. • Statuszeile: Sie zeigt den Zustand der Maschine oder eines bestimmten Systems (z.B. in EMACS [Gosling 82]: die Datei, die editiert wird - ob sie abgespeichert wurde - die relative Position innerhalb des Textes - den eingestellten Modus des Editors). • kontext-sensitive Menüs: Es werden nur die im jeweiligen des Anwendungssystems ausführbaren Kommandos angezeigt.
Zustand
• automatische Tippfehlerkorrektur: Schreibfehler bei der Eingabe von Kommandos oder Parametern können zum Teil vom System berichtigt werden. • Fehlermeldungen: Der Benutzer erhält einen Hinweis, wenn er eine unzulässige Aktion ausgelöst hat. Der Fehler wird näher erklärt. • Verzögerte automatische Menüs: Ein Menü mit momentan möglichen Kommandos erscheint, wenn der Benutzer eine gewisse Zeit keine Eingabe gemacht hat. • Hinweis auf folgenschwere Aktionen: Der Benutzer wird vor folgenschweren Schritten gewarnt oder bekommt nach Ausführung eines solchen Schritts die Möglichkeit, diese Aktion wieder rückgängig zu machen. • Uberbeantwortung von Fragen: Bei einer Anfrage an die passive Hilfekomponente werden dem Benutzer zusätzliche Dinge erklärt, die zum Verständnis wichtig sind. • Hinweis auf ihm mit dem z.B. von
auf unbekannte nützliche Kommandos: Der Benutzer wird unbekannte Kommandos hingewiesen, die ihm seine Arbeit System erleichtern können. Diese Art der aktiven Hilfe wird AKTIVIST und WIZARD [Finin 83] angeboten.
Systeme zur Dialogunterstützung
120
• Verbesserungsvorschläge zum Arbeitsstil: gehensweisen aus dem Anwendungsgebiet fensichtlich umständlich arbeitet (mehr Hilfe). Das aufgezeigte Spektrum
Dem Benutzer werden Vornähergebracht, wenn er ofanwendungsbezogene aktive
reicht von relativ leicht
zu
implementierenden
Techniken, die in vielen Computersystemen auch ohne eigene aktive Hilfekomponente realisiert sind, bis zu Techniken, die nur mit einer aufwendigen aktiven Hilfekomponente möglich sind.
Solche Komponenten sind zur Zeit
noch nicht Teil kommerzieller Computersysteme.
4.2 A u f g a b e n einer a k t i v e n
Hilfekomponente
Die Teilaspekte von aktiven Hilfekomponenten, die in Abschnitt 3 am Beispiel von AKTIVIST aufgezeigt wurden,
sollen hier allgemeiner
betrachtet
werden.
4.2.1 P l a n e r k e n n u n g Eine der Hauptschwierigkeiten für eine aktive Hilfekomponente ist die Notwendigkeit, zu erkennen, was der Benutzer gerade tut, das heißt, in welchem Kontext er sich gerade befindet. Der Benutzer arbeitet frei, ohne Steuerung des Hilfesystems, mit dem Anwendungssystem. Das Hilfesystem muß also von selbst erkennen können, in welchem Bereich der Benutzer gerade arbeitet und welche Probleme er zu lösen versucht. Dies ist umso komplexer, je vielfältiger die Aufgaben sind, die mit dem Anwendungssystem gelöst werden können. Während des Erkennungsprozesses soll nun festgestellt werden, was der Benutzer tut und welche Mittel er dafür verwendet. Dabei soll das Verständnis über die rein syntaktische Ebene der Kommandos des Anwendungssystems hinausgehen zu einem mehr semantischen Verständnis in Begriffen des jeweiligen Anwendungsgebietes. Der Benutzer führt während dem Arbeiten mit dem Anwendungssystem Pläne aus. Robertson und Black [Robertson, Black 83] weisen dies bei Editoren nach. Allgemeine Beschreibungsmechanismen für Pläne und darauf aufbauende Planerkennungsverfahren werden in [Carver, Lesser, McCue 84; Genesereth 82; Schwab 88; Wilensky et al. 84] vorgestellt. Das Erkennen von komplexeren Plänen kann außer für den anschließenden Bewertungsvorgang auch direkt für Hilfeleistungen benutzt werden: das Ergebnis des Erkennungsprozesses nicht nur intern verwendet,
Wenn sondern
AKTIVIST
121
auch für den Benutzer offengelegt wird, ermöglicht dies eine zusätzliche Art von Hilfe. In Situationen, in denen der Benutzer unsicher ist, kann er auf die Frage „Was habe ich gerade getan?" eine eher dem Anwendungsgebiet angepaßte Antwort bekommen, als nur die Folge der von ihm benutzten Kommandos. Wenn ein Undo-Mechanismus (siehe Kapitel VIII) nicht nur auf der Ebene der Kommandos aufsetzt, sondern zusätzlich auf den erkannten Plänen, wird es möglich, auch komplexere Aktionen als Ganzes zurückzunehmen anstatt nur Einzelkommandos. In Zweifelsfällen ist es denkbar, daß sich das Hilfesystem beim Benutzer nochmals versichert, ob er einen bestimmten Plan ausgeführt hat. So kann sich ein Dialog entwickeln, der dazu dient, den Erkennungsvorgang sicherer und gleichzeitig einsichtig für den Benutzer zu gestalten. Das Hilfesystem kann ihm offenlegen, weshalb es der Ansicht ist, daß ein bestimmter Plan ausgeführt wurde. Allerdings kann durch zu häufiges Nachfragen des Hilfesystems der Benutzer beim Arbeiten erheblich gestört werden.
4.2.2
Bewertungsprozeß
Wenn eine P l a n a u s f ü h r u n g erkannt worden ist, kann die Beurteilung erfolgen, auf welche Art und Weise der Benutzer die Aufgabe bearbeitet hat. Dazu wird seine Lösung mit der eines Experten des Anwendungssystems verglichen. Das bedeutet, daß das Hilfesystem einen Expertenteil enthalten sollte, der zu einem vorgegebenen Problem aus dem Anwendungsgebiet die beste Lösung findet. So kann für den konkreten Zustand des Anwendungsprogramms die Vorgehensweise gefunden werden, die eine Aufgabe am besten ausführt. Das zu lösende Problem ist hierbei in Konzepten aus dem Problembereich beschrieben. Dabei soll die Lösung mit der des Benutzers verglichen werden, d.h. der Experte soll optimale Lösungen bezüglich gewisser Kriterien finden. Um überhaupt eine Bewertung angeben zu können, muß ein Maßstab oder eine Metrik vorhanden sein. In einfachen Bereichen ist eine Metrik meist relativ gut definierbar. So ist z.B. die Metrik für die Bewertung eines Spielerzuges bei [Burton, Brown 76] durch die Spielumgebung von „How The West Was W o n " noch leicht zu finden. In komplexen Bereichen lassen sich die Kriterien, die ein optimales Verhalten ausmachen, meist nicht in meßbaren Formen definieren.
Systeme zur Dialogunterstützung
122
Beispiel: Ein guter Skifahrer zeichnet sich durch Merkmale wie Schnelligkeit, Sicherheit und Eleganz aus. Hierbei sind Sicherheit und Eleganz schwer meßbare Kriterien. Gleichzeitig zeigt dieses Beispiel, wie sich Kriterien für eine Metrik selbst zum Teil widersprechen. So kann Schnelligkeit zum Teil nur auf Kosten von Eleganz erreicht werden. Welcher ist nun der bessere Skiläufer, der Schnellere oder der Elegantere? Ein Hilfesystem muß versuchen, eine meßbare und für den Computer leicht repräsentierbare Metrik zu verwenden. Bei AKTIVIST wurde die Anzahl der benötigten Tastenanschläge gewählt, was in einigen Fällen nicht unproblematisch sein kann. Besser wäre es, physische und kognitive Belastungen gleichermaßen zu berücksichtigen. Eine aktive Hilfekomponente kann vom Benutzer als aufdringlich empfunden werden, wenn sie immer wieder gleiches Benutzerverhalten kritisiert. Dies liegt oft an der bestehenden Diskrepanz zwischen der Metrik, die das Hilfesystem zur Bewertung der Benutzeraktionen heranzieht und dem Maßstab, den der Benutzer selbst zugrunde legt. Dieser Konflikt tritt auch bei einem hartnäckigen menschlichen Beobachter auf, wenn dieser gänzlich andere Vorstellungen davon hat, wie man etwas „ g u t " macht. Beispiel: Bevor der Fosbury Flop bekannt war, wurde im Hochsprung der Straddle als einzige richtige Technik angesehen. Ein Anfänger im Hochsprung wurde also von vorneherein auf diese Technik hin trainiert. Es wäre ihm nicht möglich gewesen, eine eigene Technik zu entwickeln. Inzwischen hat sich jedoch gezeigt, daß erst das Mißachten der traditionellen Lehrmeinung zu einer Leistungsverbesserung im Hochsprung geführt hat. Um dies etwas abzuschwächen, sollte die aktive Komponente ihre Kriterien zur Bewertung offenlegen, so daß der Benutzer weiß, weshalb er wird.
kritisiert
Es ist auch denkbar, daß der Benutzer aus einer Menge von fest
vorgegebenen Kriterien selbst auswählen kann.
4.2.3
Benutzermodellierung
Die meisten konventionellen Hilfesysteme ziehen Besonderheiten des individuellen Benutzers nicht in Betracht.
Vom Systemdesigner wird häufig ein
bestimmtes Benutzerbild in die Konstruktion eingebracht, welches dann bewirkt, daß das Hilfesystem auf verschiedene Benutzer immer gleich reagiert.
AKTIVIST
123
Ähnlich einem guten menschlichen Ratgeber sollte ein Hilfesystem sich den Eigenheiten des konkreten Benutzers anpassen. Um ein solches Verhalten erreichen zu können, muß sich das Hilfesystem nach und nach ein Modell über den Benutzer aufbauen. Dann wird es möglich individuelle Hilfe [Bauer, Schwab 87] anzubieten, die zum Beispiel das Vorwissen des Benutzers berücksichtigt. Für eine aktive Hilfekomponente können in einem Modell über den Benutzer folgende Wissensstrukturen enthalten sein: • Das konzeptionelle Verständnis des Benutzers vom System. • Die Aufgaben, die der Benutzer mit Hilfe des Anwendungssystems löst (ein Texteditor kann beispielsweise für so verschiedene Tätigkeiten wie Briefeschreiben oder Erstellung eines Programms in einer Programmiersprache benutzt werden). • Die dem Benutzer geläufigen Kommandos (die er ohne Probleme beherrscht). • Die Art und Weise, wie der Benutzer die problembereichspezifischen Aufgaben löst (z.B. ob er die Funktionalität des Anwendungssystems zu seinem Vorteil nutzt). • Die Fehler, die der Benutzer am häufigsten macht. • Die Hinweise, die das Hilfesystem dem Benutzer bisher gegeben hat. • Die Akzeptanz, auf die die vom Hilfesystem gegebenen Verbesserungsvorschläge beim Benutzer gestoßen sind. • Die Situationen, in denen der Benutzer von sich aus das Hilfesystem um Rat gefragt hat. Die Ergebnisse aus dem Erkennungs- und Bewertungsprozeß liefern wichtige Informationen, um das Benutzermodell aufzubauen. Ebenso können die fehlerhaften Aktionen des Benutzers zum Wissenserwerb herangezogen werden: ,,A user does not make arbitrary errors; all Operations are iterations towards a goal." [Norman 82]. Die Fragen, die der Benutzer an eine passive Hilfekomponente stellt, können dazu dienen, die Bereiche aufzuzeigen, in denen noch Unsicherheiten seitens des Benutzers vorhanden sind. Eine falsch gestellte Frage läßt unter Umständen auch Rückschlüsse auf ein falsches konzeptionelles Verständnis zu.
124
Systeme zur Dialogunterstützung
Nicht alle Merkmale, die im Modell über den Benutzer enthalten sind, müssen auch aus seinem Verhalten beobachtet worden sein. Durch Klassifizierung kann mit Hilfe von Stereotypen von einigen typischen Merkmalen auf andere geschlossen werden [Rieh 79; Reicherter 88].
4.2.4
Beobachtungssteuerung
In realistischen Anwendungen wird die Anzahl der potentiell zu erkennenden und bewertenden Pläne und Aktionen des Benutzers schnell die Grenze der verfügbaren Rechenleistung übersteigen. Es wird dann unmöglich, alle dem System bekannten Pläne gleichzeitig zu überwachen. Aus diesem Grund muß eine Vorauswahl der für die spezielle Situation und den speziellen Benutzer relevanten Pläne getroffen werden. Folgende Kriterien können hierzu herangezogen werden: • Pläne, die der Benutzer auf optimale Art und Weise ausführt, brauchen in Zukunft nicht mehr überwacht zu werden. • Sehr komplexe Pläne werden von Anfängern meist noch nicht ausgef ü h r t . Aufgrund der Klassifizierung des Benutzers [Rieh 79] können einige Pläne aus der Überwachung ausscheiden. • Durch Wissen über die Benutzerklasse, der der Benutzer angehört, kann auf typisches Fehlverhalten besonders geachtet werden. Dazu muß das Hilfesystem eine Sammlung von typischen Fehlern enthalten, die aufgrund von empirischen Untersuchungen festgestellt werden können. PROUST [Johnson, Soloway 84] zeigt einen Ansatz in diese Richtung, indem Pascal-Programme auf die für Anfänger typischen Fehler hin untersucht werden. • Der Benutzer kann seine Unsicherheit in einem bestimmten Bereich signalisieren, indem er von sich aus Fragen an eine passive Hilfekomponente richtet. Die Pläne, die diesen Bereich betreffen, können d a n n gezielt überwacht werden. Hier zeigt sich wiederum die Notwendigkeit, daß eine aktive und eine passive Komponente in ein Hilfesystem integriert sein sollten. • Dem Benutzer kann selbst die Auswahl überlassen werden, bei welchen Plänen er gezielt beobachtet werden soll. Er wäre dann in der Situation, mehr Kontrolle über die Hilfeaktivitäten zu haben, was zu einer erhöhten Akzeptanz des Systems führen kann. Es ist auch denkbar, daß er im voraus angibt, welchen der vorgegebenen Pläne er ausführen will, und das System seine Aktionen dann nur noch bewertet. Die Erkennungsphase wird dadurch stark vereinfacht.
125
AKTIVIST
4.2.5
Hilfestrategie
Da die aktive Hilfekomponente nicht auf direkte Anforderung durch den Benutzer tätig wird, muß die Hilfestrategie Kriterien enthalten, wann eingegriffen werden soll und was dann zu sagen ist. Diese Strategie wird sich neben globalen pädagogischen Gesichtspunkten hauptsächlich auf das erstellte Benutzermodell stützen. Dabei sind folgende Gesichtspunkte zu berücksichtigen: • Das System soll die Initiative dann Ubernehmen, wenn Schwächen des Benutzers offensichtlich werden. • Nicht jede suboptimale Aktion, die der Benutzer ausführt, soll zu einer Meldung des Systems führen. Nur häufig auftretendes suboptimales Verhalten soll eine Meldung des Hilfesystems auslösen. • Das Eingreifen des Systems soll für den Benutzer einsichtig sein. Es soll ein zeitlicher und sachlicher Bezug zu dem bemängelten Verhalten erkennbar sein. Die Offenlegung desjenigen Teils des Benutzermodells, der die Reaktion des Systems ausgelöst hat, kann als Begründung dienen. • Die Informationen sollen in einer dem Benutzer angemessenen dargeboten werden. • Informationen, die für die spezielle sind, sollen ausgefiltert werden.
Situation
nicht
von
Form
Bedeutung
• Das Hilfesystem soll den Benutzer bei einem schrittweisen Wachsen seiner Systemkenntnisse unterstützen. Einem Anfänger werden die komplexen Kommandos erst erklärt, wenn er die Grundlagen einigermaßen beherrscht. Grundsätzlich sollte der Benutzer die Möglichkeit haben, bei Meldungen der aktiven Hilfekomponente weiter nachfragen zu können.
Es sollte ein einfa-
cher Ubergang zur passiven Hilfekomponente vorhanden sein.
5. A b s c h l i e ß e n d e
Bemerkungen
Gerade bei aktiver Hilfe durch Rechnersysteme spielt die Frage der Akzeptanz eine große Rolle.
Der Benutzer kann sich z.B. durch die Hinweise in
seinem normalen Arbeitsfluß gestört fühlen. zuviel dazwischen.
Der „Beobachter" redet
ihm
Um dies zu verhindern, sollten die Hinweise der aktiven
Hilfekomponente auf eine Weise erfolgen, daß man sie auch ignorieren kann und erst später anschaut.
Bei AKTIVIST wurde dies dadurch erreicht, daß
126
Systeme zur Dialogunterstützung
die Hinweise in einem separaten Fenster ausgegeben werden, das der Benutzer auch später durch Zurückblättern inspizieren kann. Außerdem wurden die Hinweise so kurz wie möglich gehalten, um eine längere Unterbrechung zu vermeiden. Will der Benutzer mehr Information zu den vorgeschlagenen Kommandos, so kann er dies durch Anklicken mit der Maus erreichen. Er beginnt damit einen Dialog mit der passiven Hilfekomponente. Ebenso sollte das Verhalten der aktiven Hilfekomponente voll in der Kontrolle des Benutzers liegen. Dies reicht vom Einstellen, wie häufig m a n überhaupt Hinweise erhalten will, bis zum Grad, wie „kritisch" sich der Beobachter verhalten soll. Ein Experte legt an sich selbst oft strengere Maßstäbe an als ein Anfänger. Bei AKTIVIST hat der Benutzer mittels des Propertysheets (siehe Abbildung 7) die Möglichkeit, derartige Einstellungen vorzunehmen. Um einen Anfänger mit solchen Stellschrauben allerdings nicht zu überfordern, ist es sinnvoll, mit Voreinstellungen zu arbeiten, die durch empirische Untersuchungen zu ermitteln sind. Die Kontrolle des Benutzers soll natürlich auch soweit gehen, daß er die aktive Hilfeleistung zu jeder Zeit während des Dialogs an- und
abschalten
kann. Grundsätzlich sollte sich die aktive Hilfekomponente nicht aufdringlich verhalten. Es darf nie zu einer Situation kommen, in der die aktive Hilfekomponente den Benutzer zu einem bestimmten Verhalten zwingt. Ihre Aufgabe ist, den Benutzer auf gewisse Dinge aufmerksam zu machen. Ob der Benutzer dies in Zukunft auch befolgen will, muß in seiner alleinigen Entscheidung liegen. Ein Nichtbefolgen der Ratschläge darf nicht zu einem immer hartnäcker werdenden, besserwisserischen Verhalten des Hilfesystems führen. Sonst wäre der Name Hilfe-system nicht mehr angebracht.
VIII
WISYBIB
Einsatz von Undo/RedoM e c h a n i s m e n bei der V e r w a l t u n g einer L i t e r a t u r d a t e n b a n k Martin Rathke
Die Bearbeitung einer komplexen Aufgabe erfolgt im allgemeinen durch deren Zerlegung in mehrere Teilaufgaben, die - sukzessive angewandt - die Gesamtaufgabe lösen. Wenn Aufgaben in dieser Weise interaktiv mit einem Computersystem bearbeitet werden, kommt es gelegentlich zu Situationen, in denen der Rechner dem Benutzer ein Ergebnis präsentiert, das nicht dessen Erwartungen entspricht. Um einen solchen „Fehler" zu beheben, kann es notwendig sein, in den Zustand vor Ausführung der zuletzt bearbeiteten Teilaufgabe zurückzukehren oder bereits ausgeführte Teilaufgaben mit evtl. geänderten Parametern zu wiederholen. Diese Situation ist Ausgangspunkt für den Einsatz von Undo, dem Stornieren ausgeführter Aktionen, und Redo, dem Wiederholen ausgeführter Aktionen. Dieser Beitrag beschreibt ausgehend von zwei Beispielen für den Einsatz von Undo und Redo deren Verwendung im Rahmen des Literaturverwaltungssystems WISYBIB1. Von der speziellen Anwendung losgelöst werden Prinzipien zur Realisierung von Undo und Redo dargestellt.
Diese geben einen Einblick in Probleme
und technische Realisierungen im Zusammenhang mit der Stornierung und Wiederholung von Aktionen.
1. Spieler sind auch nur M e n s c h e n Welchem Schachspieler ist folgendes nicht schon passiert? Stundenlang spielt man mit einem ebenbürtigen Gegner. Irgendwann im Verlauf des Spieles glaubt man, einen entscheidenden Vorteil erzielt zu haben, den man aber gleich im nächsten Zug mit einem „ d u m m e n " Fehler wieder verspielt.
^ Window based System for maintaining BibUographies.
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter & Co. • Berlin • N e w York
128
Systeme zur Dialogunterstützung
Der Gegner gewinnt die Partie, obwohl er sie - wie er anschließend feststellt - eigentlich vor zehn oder zwölf Zügen hätte verlieren müssen. Man versucht dann, die Stellung vor zehn oder zwölf Zügen zu rekonstruieren, d.h. die letzten zehn oder zwölf Züge rückgängig zu machen. Wenn sich die Spieler nicht mehr genau an die damalige Stellung erinnern können, können sie die Stellung nur dann rekonstruieren, wenn sie ein Protokoll ihres Spiels geführt haben. Je nachdem, wie ausführlich dieses Protokoll ist, muß die Partie entweder von Anfang an nachgespielt werden, oder Zug für Zug läßt sich zurücknehmen. Ein derartiges Protokoll wird üblicherweise in der Zugnotation der Abbildung 1 geführt; es wäre zu aufwendig, nach jedem Zug die erreichte Spielstellung zu notieren.
1 4 Iii • 4 1 1 1 ! H i i n • l i lIIIi l í IIQIIl i l i l í A 83 IA II A tu IBI IBI A II IIA ¡II II 1 IIIIIIIIIIII III IDI I i i
Rossetto
-
Cardoso
40. Ld5 e:d5. Beim letzten Zug vor der Zeitkontrolle ist eine solche automatische Reaktion leicht verständlich, zumal 40. ... Sf8 nutzlos wäre: 41. T:e6 S8:e6 42. T:e6 und gewinnt. 41. D:g7tü Eines der schönsten schichte! Es folgte: 41. 42. 43. 44. 45. 46. 47.
Opfer der modernen
Schachge-
... K:g7 Sf5t Kg6 T e 6 t Sf6 T : f 6 t K:g5 Tle6 Tg2t K:g2 Dd8 Se7 aufgegeben.
Abbildung 1.
Schachnotationen.
Entnommen aus A. Koblenz „Schach lebenslänglich: Erinnerungen eines Erfolgstrainers", DeGruyter 1987
129
WlSYBIB
Ganz
anders sieht
ein Protokoll
bei der Lösung von
dem b e k a n n t e n Eisenbahnproblem
Spielproblemen
(vgl. Abbildung 2) aus.
wie
An einer engen
Ausweichstelle einer einspurigen Eisenbahnstrecke begegnen sich zwei Züge, die aus je einer Lokomotive u n d zwei Wagen bestehen. können
nicht
direkt
aneinander
vorbeifahren, da
auf
Die beiden dem
Züge
Ausweichstück
nur Platz f ü r eine Lokomotive u n d einen W a g e n oder f ü r zwei W a g e n ist. Die Lösung dieses Problems wird durch Angabe aller Zwischenzustände dargestellt.
/
rm rm rrfl
/
rm rm
\
itn rm rm
\
f^rmrm
fmm\
Itnrmrm
rrn rrn Fhi
/
\
rm rm
Hfl W! FFT!
/
\
imrmnil
Abbildung 2.
Die Lösung des Eisenbahnproblems.
Das P r o b l e m selbst wird in der Weise gelöst, daß m a n von einem gegebenen
Zustand
ausgehend wird,
Spielzüge die
dem
generiert, gewünschten
nach
deren
Zielzustand
Ausführung
eine
möglichst
nahe
Stellung
erreicht
kommt.
Wenn m a n deswegen in Sackgassen gerät, ist es erforderlich, einen
a u s g e f ü h r t e n Spielzug wieder z u r ü c k z u n e h m e n - eine F o r m eines U n d o wie sie auch bei der Analyse von Schachspielen Abstrahiert
vorkommt.
man von den Beispielen in bezug auf U n d o / R e d o ,
lassen sich
zwei Ergebnisse ableiten: 1. U m - mit Undo - zu einem früheren S y s t e m z u s t a n d ist es erforderlich, ein Protokoll zu führen.
zurückzukommen,
130
Systeme zur Dialogunterstützung
2. Ein solches Protokoll besteht aus einer Folge ausgeführter Aktionen (wie beim Schachspiel) oder einer Folge erreichter Systemzustände (wie bei der Lösung des Eisenbahnproblems). Angenommen, ein Rechner sollte solche Protokolle führen. Was müßte ihm mitgeteilt werden? Und in welcher F o r m müßte dies mitgeteilt werden? Im weiteren soll ein Rahmen für Protokolle entwickelt werden, der das Rückgängigmachen und Wiederholen von Aktionen erlaubt. Abschnitt 2 stellt mit WISYBIB ein Literaturverwaltungssystem vor, an dem exemplarisch Aktionsprotokolle und darauf aufbauend Undo/Redo-Möglichkeiten implementiert wurden. Abschnitt 3 erläutert den strukturellen A u f b a u und Besonderheiten der Implementierung für die Undo/Redo-Komponente. Abschnitt 4 ordnet die Lösung in einen allgemeinen Rahmen für U n d o / R e d o ein. Abschnitt 5 gibt eine Zusammenfassung. Die Protokollierung von Aktionen mit dem Ziel, Aktionen rückgängig machen zu können und Aktionen wiederholen zu können, wird eine wichtige Rolle spielen, wenn zukünftig Planungen und Analysen von Vorgängen fast ausschließlich über den Computer abgewickelt werden. Der vorliegende Beitrag gibt einen Einblick in dabei zu lösende Probleme und skizziert eine anwendungsneutrale technische Realisierung.
2. E i n e D a t e n b a n k für L i t e r a t u r wird
bearbeitet
Verschiedene Textverarbeitungssysteme im wissenschaftlichen Bereich ermöglichen es, bei der Zitierung von Literatur auf eine Literaturdatenbank rückzugreifen
und
vereinfachen
dadurch
das
Erstellen
eines
zu-
Literaturver-
zeichnisses zu einem Text erheblich. Bis ein Benutzer
auf
eine solche Literaturdatenbank
„einfache" Weise
zugreifen
kann,
hat
er
jedoch
auf
für
ihn
Einarbeitungsschwierigkeiten
zu
überwinden, weil die Literaturdatenbank in einer für das System geeigneten, jedoch
für den
Benutzer
Weise aufgebaut ist.
zunächst
nur
schwer
durchschaubar
gehaltenen
Die Folge ist, daß der Benutzer neben Editor
und
Textformatierer ein drittes System erlernen muß, das ihn bei der Erstellung von Texten mit Literatur unterstützt.
Das nachfolgend vorgestellte System
WISYBIB zur Verwaltung einer Literaturdatenbank bei dieser Arbeit entlastet werden kann.
zeigt, wie der
Benutzer
Es bietet ihm neben einem menü-
gesteuerten Zugang beim Eintragen neuer bzw. Löschen nicht mehr benötigter
Literaturzitate
die
Möglichkeit,
inkrementell
unter
Verwendung
Undo und Redo nach interessierenden Literaturstellen zu suchen.
von
131
WlSYBIB
Die Visualisierung erreichter Systemzustände bei der M a n i p u l a t i o n der Dat e n b a n k gestattet eine R ü c k k e h r in f r ü h e r erreichte S y s t e m z u s t ä n d e
durch
direkte Manipulation.
2.1 D i e
Eingabeschnittstelle
U m eine Ü b e r e i n s t i m m u n g
zwischen L i t e r a t u r z i t a t e n
im T e x t
u n d der
im
zugehörigen Literaturverzeichnis gesammelten L i t e r a t u r zu gewährleisten, sehen
Textverarbeitungssysteme
NROFF/TROFF
in V e r b i n d u n g
wie etwa mit
SCRIBE
REFER
[Reid,
[Tuthill
Walker
83]
eine
80]
oder
Möglichkeit
vor, T e x t und Literaturverzeichnis in einem Formatierlauf gemeinsam zu erstellen. gibt
Der Benutzer h a t getrennte Dateien f ü r Text u n d
innerhalb
seines
Textes
lediglich
mnemotechnische
Literatur
und
Kürzel
(z.B.
, , R a t h k e l 9 8 7 " ) an, mit deren Hilfe er auf E i n t r ä g e innerhalb der Literaturdatei Bezug n i m m t .
Die L i t e r a t u r d a t e i selbst e n t h ä l t die vollständigen Lite-
r a t u r z i t a t e in V e r b i n d u n g
mit
d e m Kürzel.
Besonders ökonomisch
kann
diese Technik verwendet werden, wenn an zentraler Stelle ein Literaturverzeichnis über die gesamte f ü r eine A r b e i t s u m g e b u n g
wesentliche
Literatur
g e f ü h r t wird u n d m e h t e r e Benutzer sich d a r a u s „ b e d i e n e n " . Systemspezifische Besonderheiten ergeben sich bei der E r f a s s u n g neuer Literatur.
So m u ß z.B. im F o r m a t i e r s y s t e m SCRIBE der Benutzer bei der Über-
t r a g u n g eines Zitats in die L i t e r a t u r d a t e n b a n k D o k u m e n t k l a s s e n
berücksich-
tigen wie „InProceedings",
usw.
jede Dokumentklasse füllt werden.
„TechReport",
„Article",
„Manual"
dürfen dabei jeweils nur b e s t i m m t e A t t r i b u t e
Abbildung 3 zeigt ein ausgefülltes F o r m u l a r der
klasse „InProceedings".
Für ausge-
Dokument-
D o k u m e n t e anderer Klassen können a n d e r e Attri-
b u t e e n t h a l t e n (z.B. „ J o u r n a l " bei „Article"). D a m i t ein Benutzer bei der Eingabe von neuer L i t e r a t u r nicht f ü r jede Dokumentklasse die auszufüllenden A t t r i b u t e im H a n d b u c h nachschlagen
bzw.
auswendig lernen muß, bietet ihm das System WlSYBIB die auszufüllenden A t t r i b u t e einer D o k u m e n t k l a s s e in F o r m eines F o r m u l a r s an, in d e m
der
Benutzer die notwendigen A t t r i b u t e in beliebiger Reihenfolge editieren k a n n . Gegenüber einer E r f a s s u n g von L i t e r a t u r ohne S y s t e m u n t e r s t ü t z u n g
ergeben
2
sich folgende Vorteile :
o
WlSYBIB löst nicht das Problem, daß der Benutzer sich bei der Erfassung von Literatur für eine Dokumentklasse entscheiden muß. Insofern lassen sich noch weitere ,Verbesserungen" am SCRIBE-Literatursystem denken.
132
Systeme zur D i a l o g u n t e r s t ü t z u n g
Dokument RathkeM1987c ••
.
©cfll:ia>-+?E Slots vvvvv
methods
rules
corefs constraints )) class-slots subclasses instances
4 1 J Iii fc €>X
v Abbildung 5.
Die Subklassen von menu.
Mit d e m Wechsel in die Klasse a c t l v e - m e n u erhält der Benutzer wieder ein leeres Textfenster - die Ausgaben werden also objektweise g e t r e n n t . zuvor u n t e r s u c h t er die A t t r i b u t e i n s t a n c e s 5, oberer Teil).
und s u b c l a s s e s
Wie
(Abbildung
Da a c t l v e - m e n u weder Instanzen noch Subklassen
besitzt,
Systeme zur P r o g r a m m i e r u n t e r s t ü t z u n g
176 kehrt
der Benutzer
zur
Klasse menu
zurück.
klicken des Backstep-Buttons erreichen.
Dies läßt sich d u r c h
An-
INSPECTOR reproduziert d a r a u f h i n
die Situation, die beim Verlassen der Klasse menu vorlag (vgl. A b b i l d u n g 4). Die zweite Subklasse ist p o p - u p - m e n u .
Hier findet der Benutzer u n t e r den
Instanzen ein O b j e k t n a m e n s i n s p e c t o r - t o p - m e n u Teil), das er im nächsten Schritt untersucht. Instanz
handelt,
fehlen im
Filtermenü
(Abbildung 5,
unterer
Da es sich hierbei u m eine
die E i n t r ä g e
Descr
und
Methods
(Abbildung 6).
Inspector f o r inspector-top-aenu ¡Filter Text
< El J Iii fr) ® X
Slots
(title = "inspector-menu") 1
islots
vvvvv Center-items? contents items last-sel pnaac-selector pointer-char redraw-pointer shadow-shift
Abbildung 6.
(contents * (move reshape newshape kill hury tobottoin totop nil input objects backstep path restep refresh shrink)) (last-sel = refresh) (pname-selector » (lambda (element) (or element " ")))
Die Instanz
inspector-top-menu.
Durch Ausgabe verschiedener um
das
gesuchte
"inspector-menu"
Objekt
Slots stellt der Benutzer sicher, d a ß es sich
handelt.
SPECTOR-Menüs wieder.
title
legt
den
String
gibt den Inhalt des IN-
Man sieht, daß die im Fenster erscheinende Leer-
zeile intern d u r c h das Symbol n i l enthält das zuletzt
Das A t t r i b u t
als Fenstertitel fest, C o n t e n t s
repräsentiert wird.
ausgewählte Menüelement,
Der Slot
pname-selector
last-sel spezifiziert
eine F u n k t i o n , die das Symbol n i l in einen leeren String umsetzt. Der anfängliche Mißerfolg bei der Suche läßt sich also darauf z u r ü c k f ü h r e n , daß das INSPECTOR-Menü nicht, wie e r w a r t e t , u n t e r d e m N a m e n tor-menu,
sondern
unter
inspector-top-menu
abgelegt
ist.
Ein
Sachverhalt stellt keine konstruierte Situation dar, sondern ist im mit C o m p u t e r n eher alltäglich.
inspecsolcher Umgang
Viele I n f o r m a t i o n e n , die auf einem Rechner
gespeichert sind, befinden sich nicht an der Stelle, an der man sie vermutet.
zuerst
Mit Hilfe von INSPECTOR war es im vorliegenden Fall möglich,
das gesuchte O b j e k t ohne allzu großen A u f w a n d ausfindig zu m a c h e n .
177
INSPECTOR
2.2 INSPECTOR als Teil e i n e r
Programmierumgebung
Im gerade gezeigten Beispieldialog w u r d e die Verwendung des INSPECTOR u n a b h ä n g i g von anderen Werkzeugen beschrieben.
Bei der Erstellung
S o f t w a r e k o m m t es jedoch nicht n u r auf die F u n k t i o n a l i t ä t einzelner
von Pro-
grammierwerkzeuge, sondern auch auf deren Zusammenspiel an. Abbildung
7 zeigt eine M o m e n t a u f n a h m e der objektorientierten
m i e r u m g e b u n g OBJENV [Schneider-Hufschmid 8 6 ] . „Desktop"
des O b j T a l k - P r o g r a m m i e r e r s
Program-
Dieses System k a n n als
angesehen werden.
Es
beinhaltet
ein Fenster n a m e n s „toplevel-pane", in dem der Lisp-Interpreter läuft, ein Fenster
namens
„break-pane",
das
der
Lisp-Interpreter
im
Fehlerfall
be-
n u t z t , sowie eine G r u p p e von Icons, aus der Werkzeuge zur Definition und Analyse von O b j e k t e n abgerufen werden können.
In der abgebildeten
Si-
t u a t i o n ist neben einem INSPECTOR-Fenster ein CLASSNET-Window aktiv. CLASSNET-Windows tionswerkzeugen. interne
[ R a t h k e C. 86a] bilden eine zweite F o r m von Naviga-
Im Gegensatz zu INSPECTOR, der den Zugriff auf o b j e k t -
Informationen
Struktur
des
ermöglicht,
Objektnetzes,
stellen
speziell
die
CLASSNET-Windows Klassenhierarchie,
die
äußere
graphisch
dar.
Jede Klasse wird d u r c h ein Icon repräsentiert, die Pfeile geben die Relation „ist Subklasse v o n " wieder.
Ausgehend von einer b e s t i m m t e n Klasse k a n n
der
Super-
Benutzer
sukzessive
die
bzw.
Subklassen
auf
den
Bildschirm
bringen 2 . F ü r das Z u s a m m e n w i r k e n der Werkzeuge gibt es in OBJENV eine einheitliche
Schnittstelle,
über
die
Objekte
ausgetauscht
werden
können.
Der
G r u n d g e d a n k e besteht darin, daß jedes Werkzeug ein „aktuelles O b j e k t " im F o k u s h a t , das entweder über die T a s t a t u r eingegeben oder mit der Maus selektiert werden k a n n - vorausgesetzt, daß es in irgendeiner F o r m auf d e m Bildschirm
repräsentiert
ist.
Für
die Auswahl mit der Maus werden
die
A n w e n d u n g s m e n ü s der einzelnen Werkzeuge u m folgende O p e r a t i o n e n erweitert: • select-window-with-mouse liefert zeigt (Fenster sind O b j e k t e ) . • select-window-class-with-mouse auf das der Benutzer zeigt.
das gibt
Fenster, die
Klasse
auf des
2 Zur Visualisierung hierarchischer S t r u k t u r e n siehe auch Kapitel XIV.
das
der
Fensters
Benutzer zurück,
178
Systeme zur Programmierunterstützung
toplevel-pane
© Commands 1 history redo last redo any
t 12:(ask simple-menu subclasses) TIME NI E DIO: 16 (setoli-menu menu) 13: 13:(ask popup-menu-mixin blerarchie) no object: popup-menu-mixin
opurnLfsrtprep
pause
Et'I rot
CJÊP
FX1T
Inspector for pop-up-menu-mix in Filter Slots Descr Methods
PP-U1HP0U
re» e nnUHijFE
i
B e a
Iii
Q>©::
«Text (refresh: =>=> , ¡(refresh: ) ,!(bury:)>
ref resh: select-with-«« save-be low: restore-below :
(select-with-mouse: ,*pos »>=> (prog2 , !(save-below: ) , ! ( se 1 ect-wi til-mouse :. pos) ,!(restore-below:))> Class-Net-W i ndow
( nEMi.t ) S
/ iCri'JE-nEHuj
(sirm-nEKu-i fiJiiaiUidBIg I ni xi h ) ^pßjjyp^
V
\
|VûF"-UF'-HENU*J i firrivE-l'OF-'l ( UP-HEMU J
>> break-pane
nil : Break return an object : pop-up-menu-mixin|
Abbildung 7.
« © Commands 1 message return return t retbrk abort f ancy
INSPECTOR in der Programmierumgebung OBJENV.
179
INSPECTOR
• select-object-with-mouse liefert das von einem Fenster repräsentierte Objekt. Bei Icons ist dies ein Verweis auf das dargestellte O b j e k t , bei Werkzeugen das aktuelle O b j e k t , bei Fenstern mit sensitiven Elem e n t e n k a n n eines dieser Elemente angeklickt werden. • select-object-class-with-mouse f u n k t i o n i e r t analog, nur d a ß anstelle des O b j e k t s die übergeordnete Klasse zurückgegeben wird. Hierzu ein Beispiel.
In Abbildung 7 hat der Benutzer mit Hilfe des CLASS-
NET-Windows die Hierarchie der Menüfenster u n t e r s u c h t .
Sein nächstes Ziel
war, die Klasse p o p - u p - m e n u - m i x i n im INSPECTOR genauer zu b e t r a c h t e n . Dazu h a t er aus d e m erweiterten
INSPECTOR-Menü
object-with-mouse
im
ausgewählt
und
die O p e r a t i o n
CLASSNET-Window
klickt, das p o p - u p - m e n u - m i x l n repräsentiert.
das
select-
Icon
ange-
Da sich diese Klasse im Fo-
kus des CLASSNET-Windows befindet, h ä t t e der Benutzer auch auf das Ges a m t f e n s t e r zeigen können.
3. F u n k t i o n a l i t ä t v o n INSPECTOR Bis j e t z t wurden die Eigenschaften des INSPECTOR a n h a n d von
Beispielen
demonstriert.
Die folgenden Abschnitte geben einen tieferen Einblick in die
Funktionalität
des Werkzeugs u n d
auf.
In diesem Z u s a m m e n h a n g
zeigen die zugrundeliegenden
Konzepte
wird beschrieben, wie das Verhalten
von
INSPECTOR erweitert werden k a n n .
3.1 A n f r a g e s p r a c h e n v e r s u s Betrachtet
man
INSPECTOR
von
der
Navigationswerkzeuge Implementierungsseite,
so stellt
man
fest, d a ß alle Informationen, die das Werkzeug nach außen gibt, über die reguläre
ObjTalk-Sprachschnittstelle
gewonnen
werden.
Damit
steht
IN-
SPECTOR im Gegensatz zu Stepping- und Tracewerkzeugen, die in das interne V e r h a l t e n von O b j T a l k eingreifen.
W ä h r e n d ein Stepper beispielswei-
se nach jeder Anweisung oder Nachricht die P r o g r a m m a u s f ü h r u n g
anhält,
sendet INSPECTOR in konventioneller Weise Nachrichten an O b j e k t e , so wie es der Benutzer im Lisp-Toplevel auch t u n k a n n .
Unter diesem Gesichts-
p u n k t stellt sich die Frage „ B r a u c h t m a n ein solches Werkzeug ü b e r h a u p t ? " Zur B e a n t w o r t u n g
dieser Frage
betrachten
wir
zunächst
die
Nachrichten,
die der Benutzer im vorher gezeigten Beispieldialog h ä t t e eingeben müssen: (ask inspector-menu a l l - s l o t s : )
==>
no o b ] e c t :
inspector-menu
(ask menu i n s t a n c e s ) ==> n i l (ask menu s u b c l a s s e s ) ==> (active-menu pop-up-raenu . . . )
180
Systeme zur P r o g r a m m i e r u n t e r s t ü t z u n g (ask active-menu instances) ==> nil (ask active-menu subclasses) ==> nil (ask pop-up-menu Instances)
==>
(inspector-top-menu
(ask inspector-top-menu all-slots:) (ask inspector-top-menu title) ==>
... )
==> (pname ... title "inspector-menu"
. . . )
Diese Schnittstelle h a t s t a r k e Ähnlichkeiten mit Anfragesprachen, wie sie bei D a t e n b a n k s y s t e m e n eingesetzt werden.
Anfragesprachen sind jedoch f ü r die
interaktive Informationssuche n u r bedingt geeignet: • Bei V e r w e n d u n g einer Anfragesprache m u ß der Benutzer in j e d e m Zugriffsschritt die gewünschten Informationen vollständig beschreiben. Das heißt, er f ü h r t mit jeder A n f r a g e einen Direktzugriff aus und k e h r t anschließend zu seiner Ausgangsposition zurück (Abbildung 8). Auf diese Weise ist es unmöglich, lokale S u c h u m g e b u n g e n zu bilden. • A n f r a g e s p r a c h e n sind an t a s t a t u r o r i e n t i e r t e Schnittstellen gebunden u n d erfordern deshalb einen hohen A u f w a n d bei der Spezifikation der Anfrage. E n t s p r e c h e n d häufig k o m m t es zu Eingabefehlern (z.B. d u r c h Vertippen). • A n f r a g e s p r a c h e n bieten von sich aus wenig U n t e r s t ü t z u n g . Der Benutzer m u ß sich auf die F o r m u l i e r u n g von A n f r a g e n konzentrieren und befindet sich d e m C o m p u t e r gegenüber stets in der Rolle des Sprechers. D a r ü b e r hinaus m u ß er sich frühere A n f r a g e n selbst merken, sofern sie nicht zufällig noch auf dem Bildschirm stehen. Dies bedeutet eine zusätzliche Belastung des Gedächtnisses.
Informationsmenge
Abbildung 8.
Informationszugriff mit einer Anfragesprache.
Im Vergleich
dazu
werden:
können
Navigationswerkzeuge
wie folgt
J
charakterisiert
181
INSPECTOR
• Der Benutzer bleibt nicht vor der Informationsmenge stehen, sondern er bewegt sich auf inkrementelle Weise d u r c h die I n f o r m a t i o n s m e n g e h i n d u r c h (Abbildung 9). Bei j e d e m Navigationsschritt gibt er lediglich die Spezifikationen an, die die augenblickliche Position von der Zielposition unterscheiden. Im Dialog mit INSPECTOR lauten diese Spezifikationen „gehe zur ersten Subklasse", „zeige davon die I n s t a n z e n " , „gehe zurück zum letzten O b j e k t " usw. • D u r c h den Einsatz eines Zeigeinstruments läßt sich der E i n g a b e a u f w a n d wesentlich herabsetzen. Bei INSPECTOR benötigt m a n n u r im ersten Schritt, d.h. beim Einstieg in das O b j e k t n e t z die T a s t a t u r . • Das Formulieren von A n f r a g e n wird d u r c h Menüauswahl ersetzt. Damit zeigt das Werkzeug dem Benutzer mögliche Suchrichtungen auf u n d versetzt ihn gleichzeitig von der schwierigen Rolle des Sprechers in die des Hörers [Fischer 8 3 b ] . Daneben können Dialogprotokolle g e f ü h r t u n d graphische Ausgaben erzeugt werden, u m die Orientierung bei der Informationssuche zu erleichtern (siehe Abschnitt 3.2).
! Abbildung 9.
Informationszugriff mit einem Navigationswerkzeug.
Anfragesprachen und
Navigationswerkzeuge unterscheiden sich also
weniger
darin, welche I n f o r m a t i o n e n sie liefern, sondern wie m a n zu den I n f o r m a t i o nen gelangt.
A n f r a g e s p r a c h e n sind immer
Suchziel von
vornherein
genau
beschreiben
dann läßt.
geeignet, wenn Diese Situation
sich
das
ist
bei-
spielsweise beim Formulieren von Algorithmen, d.h. beim Erstellen von P r o g r a m m e n gegeben. Bei der i n t e r a k t i v e n Fällen a n d e r s aus. sung
er
irgendwo
3
.
.
.
.
.
Informationssuche sieht die Situation
in den
meisten
Der Benutzer h a t ein b e s t i m m t e s Problem, dessen Löin
den
vorhandenen
.
Informationsstrukturen
vermutet3.
Siehe v o r i g e r Beispieldialog: die A u s g a n g s f r a g e h ä t t e a u c h l a u t e n k ö n n e n „ W i e t i e r t m a n Leerzeilen in einem M e n ü ? "
repräsen-
182
Systeme zur Programmierunterstützung
Dabei läßt sich zu Beginn der Suche weder sagen, auf welchem Weg man zur Lösung kommt, noch, ob m a n überhaupt eine Lösung findet. In einem solchen Kontext sind Navigationswerkzeuge besser geeignet. Sie machen es dem Benutzer einfacher, zuerst diesen, dann jenen Ausschnitt der vorhandener! Informationsmenge zu untersuchen. Der im englische Sprachraum gebräuchliche Ausdruck Browser beschreibt die angewandte Vorgehensweise in einer bildlichen Form: das Verb ,,to browse" bedeutet wörtlich übersetzt soviel wie „in einem Buch schmökern" oder „eine Wiese abgrasen".
3.2 O r i e n t i e r u n g i m
Objektnetz
Bei Navigationswerkzeugen, die zu jedem Zeitpunkt nur ein Element aus der vorhandenen Informationsmenge darstellen, besteht die Gefahr, daß der Benutzer nach einigen Positionsveränderungen die Orientierung verliert. Um dem entgegenzuwirken, protokolliert INSPECTOR den Weg, auf dem sich der Benutzer durch das Objektnetz bewegt. Dieses Protokoll liefert die Grundlage für folgende Funktionen: • Backstep bringt das zuvor eingestellte Objekt in den Fokus von INSPECTOR. Mit dieser Operation kann der Benutzer in Einzelschritten bis zum Ausgangsobjekt zurückgehen. Die Backstep-Operation stellt eine spezielle Ausprägung der allgemeinen Undo-Funktionalität dar 4 . • Path bringt ein Menü auf den Bildschirm, das den bisher zurückgelegten Weg aufzeigt. Eine Auswahl aus diesem Menü entspricht einer mehrstufigen Backstep- bzw. Restep-Operation. • Restep macht eine Backstep-Operation rückgängig, d.h. der Benutzer bewegt sich wieder in Richtung seines ursprünglichen Suchziels. Restep kann nur nach einem vorausgegangenen Backstep ausgeführt werden. Die Einschränkung hinsichtlich der Restep-Operation beruht darauf, daß der aufgezeichnete P f a d keine hierarchische Struktur darstellt, sondern nur den direkten Weg vom Ausgangsobjekt zum aktuellen Objekt angibt.
Schlägt
der Benutzer nach einem Backstep eine neue Richtung ein, so wird der bisherige Ast abgeschnitten 5 .
Das Abschneiden geschieht unter zwei Aspekten:
Zum einen soll der P f a d als solches übersichtlich gehalten werden (die Darbietung durch ein Menü erlaubt nur eine lineare Form), zum anderen ist
4
Z u m T h e m a U n d o / R e d o siehe K a p i t e l VIII.
5
Diese V o r g e h e n s w e i s e ist eine M i s c h f o r m aus sog. T r a v e l - u n d R e t r a c t - U n d o (Seite 140.)
183
INSPECTOR
die Backstep-Operation in erster Linie dazu gedacht, u m aus Sackgassen zurückzukehren (wie im vorigen Beispieldialog bei der Klasse a c t l v e - m e n u ) . Da t r o t z d e m der Fall eintreten k a n n , daß der Benutzer zu einem
Objekt
zurückkehren will, das nicht mehr im P f a d e n t h a l t e n ist, f ü h r t INSPECTOR eine zweite Liste, in der alle untersuchten O b j e k t e e n t h a l t e n sind - in der Reihenfolge, in der sie erstmals angesprochen w u r d e n .
Hierzu existiert ein
zweites Menü, das der Benutzer über den O b j e c t s - B u t t o n aktivieren
kann.
Abbildung 10 zeigt dieses Fenster zusammen mit d e m P a t h - M e n ü - die Einträge entsprechen der Situation, die a m E n d e des Beispieldialogs von Abschnitt 2.1 vorlag.
In beiden Menüs erscheint das gerade b e t r a c h t e t e
Ob-
jekt in p u n k t i e r t e r Schrift (um anzudeuten, daß eine Selektion keinen Sinn macht).
obj ects
menu active-menu pop-up-menu
menu pop-up-menu
ìnspector-top-aonu
ins pect or-to|i-»enu
Abbildung 10.
Protokollierung der u n t e r s u c h t e n O b j e k t e u n d des Pfades.
Eine andere Möglichkeit, sich im O b j e k t n e t z zurechtzufinden, besteht d a r i n , parallel zu INSPECTOR einen sog. „ N e t z b r o w s e r " einzusetzen, der eine graphische Darstellung der N e t z s t r u k t u r erzeugt.
In A b s c h n i t t 2.2 w u r d e m i t
CLASSNET-Windows ein derartiges Werkzeug bereits vorgestellt.
D a CLASS-
NET-Windows auf Klassen spezialisiert sind, k a n n der Benutzer mit diesem Werkzeug einen ersten Überblick Uber den A u f b a u u n d die Bestandteile eines objektorientierten P r o g r a m m s y s t e m s gewinnen.
Interessiert er sich f ü r
Details, so benötigt er einen Netzbrowser, der passend zu INSPECTOR u n t e r schiedliche nen kann.
Objektarten
und
verschiedenartige
Objektbeziehungen
aufzeich-
Ein entsprechendes Werkzeug wird in K a p i t e l XI mit d e m Sy-
stem ZOO beschrieben.
3.3 Die Rolle der
Filter
Im zurückliegenden Beispieldialog k o n n t e m a n sehen, d a ß die E i n t r ä g e
im
Filtermenü des INSPECTOR nicht von statischer A r t sind, sondern mit d e m betrachteten O b j e k t wechseln. u n d Methods
So werden z.B. bei Klassen die Filter
angeboten, die bei gewöhnlichen Instanzen fehlen.
Descr
Hinter die-
184
Systeme zur P r o g r a m m i e r u n t e r s t ü t z u n g
ser Tatsache, die zunächst nur beiläufig e r w ä h n t wurde, s t e h t ein grundlegendes Prinzip:
Das Verhalten von INSPECTOR soll nicht bei allen O b j e k -
ten dasselbe sein, sondern vom T y p des O b j e k t s abhängen.
D a m i t wird es
möglich, spezielle Eigenschaften der O b j e k t e zu berücksichtigen. Zur Realisierung des objektspezifischen Verhaltens k a n n jede O b j T a l k - K l a s s e mit einer Anzahl von Filtern versehen werden. stanzen dieser Klasse a n w e n d b a r O b j e k t e in den V o r d e r g r u n d .
Jeder Filter ist auf die In-
u n d stellt einen b e s t i m m t e n
Aspekt
Gleichzeitig findet eine V e r e r b u n g
der
entlang
der Klassenhierarchie s t a t t , d.h. der Filter s t e h t auch f ü r die Instanzen der Subklassen zur Verfügung.
So wird beispielsweise der Filter Slots
se o b j e c t zugeordnet, die sich an der Spitze der befindet.
Slots
der Klas-
ObjTalk-Klassenhierarchie
ist d a m i t als elementarer Filter f ü r alle O b j e k t e v e r f ü g b a r .
Die Darstellung der einzelnen Filter geschieht wiederum in F o r m von jekten.
Ob-
F i l t e r o b j e k t e sind d u r c h folgende A t t r i b u t e gekennzeichnet:
pname
Filter mit gibt den im F i l t e r m e n ü erscheinenden N a m e n a n . gleichem N a m e n werden bei der Vererbung ersetzt, wobei der mit der Subklasse assoziierte Filter Vorrang h a t .
owner
b e s t i m m t die Klasse, f ü r die der Filter definiert wird.
items
spezifiziert eine Funktion, mit der die Einträge für das zweite INSPECTOR-Menü berechnet werden (in Abhängigkeit vom aktuellen Objekt).
entry
spezifiziert eine F u n k t i o n , mit der das Ergebnis f ü r das T e x t fenster erstellt wird (in Abhängigkeit vom aktuellen O b j e k t und d e m ausgewählten Menüeintrag).
printer
legt die F o r m a t i e r u n g des Ergebnisses fest. Als Voreinstellung dient eine dem L i s p - P r e t t y - P r i n t e r ähnliche F u n k t i o n .
Mit der Realisierung der Filter d u r c h weitere interessante Gesichtspunkte.
O b j T a l k - O b j e k t e ergeben sich
Zum einen können diejenigen
zwei
Mecha-
nismen, die das Verhalten des Werkzeugs steuern, mit d e m W e r k z e u g selbst inspiziert werden. Filterobjekte
an
Zum a n d e r n k a n n INSPECTOR durch Definition weiterer neue A n f o r d e r u n g e n
angepaßt
werden.
Damit
wird
das
Verhalten des Werkzeugs nicht v o m Systementwickler allein b e s t i m m t , sondern k a n n von jedem O b j T a l k - P r o g r a m m i e r e r erweitert und v e r ä n d e r t werden. Hierzu ein Beispiel.
Mit Hilfe der Klasse a r r a y wurde eine o b j e k t o r i e n t i e r -
te R e p r ä s e n t a t i o n von Vektoren erstellt.
Instanzen von a r r a y besitzen die
Slots s i z e u n d c o n t e n t s , in denen die Größe bzw. die Elemente des Vek-
185
INSPECTOR
tors gespeichert werden.
Mit der Methode g e t - e l e m e n t :
Elemente abgefragt werden.
können einzelne
Um den Inhalt eines Vektors mit INSPECTOR
zu untersuchen, wird der Filter Elements
definiert:
(ask inspector-filter Instantiate: (pname = "Elements") (owner = array) (items = (lambda (object) (list-of-array-indices (ask .object size)))) (entry = (lambda (object n) (list 'element n '= (ask .object get-element:
Inspector for test-array Filter Slots
Eleaents
,n)))))
4 ED «0 III lb ©M
IText (size = 8) (contents = ARRAYC81)
Elements
(element 0 = "Element Nummer null") (element 1 - "Element Nummer eins") (element 2 = "Element Nummer zwei") (element 3 = nil) (element 4 = nil)
Abbildung 11.
Definition und Anwendung des Filters
Elements.
4. Z u s a m m e n f a s s u n g und Ausblick Mit der Implementierung von INSPECTOR wurde das Ziel verfolgt, ein Werkzeug bereitzustellen, das den ObjTalk-Programmierer bei der Untersuchung von Objektstrukturen unterstützt. Während Netzbrowser die Verbindungen zwischen Objekten sichtbar machen, ermöglicht INSPECTOR den Zugriff auf objektinterne Informationen. Zusätzlich bietet das Werkzeug dem Benutzer die Möglichkeit, durch das Objektnetz zu navigieren. INSPECTOR kann daher in Kombination mit einem Netzbrowser, aber auch unabhängig eingesetzt werden. Durch die Verwendung von Filtern wird ein flexibles Verhalten des Werkzeugs erreicht.
Zum einen können Objekte unter verschiedenen
Aspekten
betrachtet werden, zum andern läßt sich die Funktionalität des Werkzeugs durch Definition neuer Filter erweitern.
Das Filterkonzept ist gleichzeitig
186
S y s t e m e zur
Programmierunterstützung
der P u n k t , an d e m sich INSPECTOR von anderen W e r k z e u g e n dieser gorie - wie e t w a d e m S m a l l t a l k - I n s p e c t o r der S y m b o l i c s L i s p - M a s c h i n e
Kate-
[ G o l d b e r g 84] oder d e m I n s p e c t o r
[ S y m b o l i c s 8 6 ] - unterscheidet.
Hinsichtlich des F i l t e r k o n z e p t s sind verschiedene Weiterentwicklungen bar.
denk-
Im A u g e n b l i c k werden F i l t e r o b j e k t e unter V e r w e n d u n g eines gewöhnli-
chen E d i t o r s erstellt.
Hier wäre es sinnvoll,
dem Programmierer
ein
sog.
, , F i l t e r - C o n s t r u c t i o n - K i t " zur V e r f ü g u n g zu stellen, mit dessen Hilfe er neue Filter über eine f o r m u l a r o r i e n t i e r t e Schnittstelle definieren könnte (vgl. d a z u die S y s t e m e vorstellbar,
TRISTAN u n d
TRIKIT
in G r u p p e n
in K a p i t e l
XIV).
Des weiteren
ist
es
einzuteilen, so daß INSPECTOR j e n a c h
Be-
nutzer oder j e nach A n w e n d u n g m i t einem speziellen S a t z von F i l t e r n
ar-
beitet.
Filter
XI
ZOO
E i n W e r k z e u g zur G e s t a l t u n g von Anwendungssystemen durch den E n d b e n u t z e r Wolf-Fritz Riekert
Jeder arbeitende Mensch besitzt einen ganz persönlichen Stil, der sich darin zeigt, nach welchen Abläufen er seine Aufgaben erledigt und wie er dabei Arbeitsgeräte und Arbeitsgegenstände einsetzt. Damit sich ein solcher Stil auch entfalten kann, braucht der Mensch Handlungsspielräume, innerhalb deren er seine Arbeit frei gestalten kann. An Rechnerarbeitsplätzen ist dieser Spielraum weitgehend durch die verwendete Software bestimmt. Damit auch hier ein individueller Arbeitsstil möglich ist, muß der Computerbenutzer in die Lage versetzt werden, die von ihm benutzten Software-Systeme selbständig umgestalten zu können. Software-Systeme sind jedoch im Normalfall durch Programme definiert, deren Code der durchschnittliche Benutzer nicht durchschaut. Nur Programmierer sind imstande, den A u f b a u eines solchen Systems zu verstehen und gegebenenfalls zu verändern. In diesem Kapitel wird eine alternative Software-Architektur vorgestellt, in der die F a k t e n und Konzepte des Anwendungsgebiets nicht in Programmen kodiert, sondern in einer Wissensbasis repräsentiert sind. Diese Wissensbasis erscheint für den Benutzer als eine Netzstruktur; dabei repräsentieren die Knoten dieses Netzes die O b j e k t e des Anwendungsgebiets, die Kanten des Netzes stehen für die Beziehungen zwischen den Objekten. Zur Anpassung des Software-Systems an neue Bedürfnisse muß nicht mehr programmiert werden, es muß lediglich die Netzstruktur modifiziert werden. Hierfür sind neue, benutzerorientierte Software-Werkzeuge erforderlich. Ein derartiges Werkzeug ist der Wissenseditor ZOO1, der im folgenden vorgestellt werden soll. ZOO ist ein Software-System, mit dessen Hilfe Wissensnetze graphisch dargestellt und durch direkte Manipulation verändert werden können.
1
Der Name ZOO steht für „ZOO ordnet O b j e k t e " .
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter & Co. • Berlin • N e w York
188
Systeme zur Programmierunterstützung
Dies soll am Beispiel eines elektronischen Kommunikationssystems verdeutlicht werden, das den Vorgang des Schreibens, Versendens, Empfangens und Lesens von Briefen unterstützt. Wir gehen auf die genaue Ausgestaltung der Benutzerschnittstelle des Kommunikationssystems hier nicht ein; für die folgenden Betrachtungen ist es nicht von Bedeutung, ob die Benutzung des Postsystems auf direkter Manipulation von Bildschirmobjekten wie im Büroinformationssystem STAR der Firma Xerox [Smith et al. 82] oder auf einer Kommandosprache wie im Betriebssystem UNIX [UNIX 83] beruht. Der entscheidende Unterschied zu den herkömmlichen Systemen liegt im Inneren des Kommunikationssystems. Dort ist alles Wissen über Briefe, Postfächer usw. in einem Netz von Objekten repräsentiert. Dies gilt sowohl für die Fakten, mit denen das Postsystem umgeht, wie auch für die Konzepte, die dem Postsystem zugrundeliegen. Diese netzartige Repräsentation von Wissen ist Voraussetzung für die Anwendbarkeit des Wissenseditors ZOO. Mit Hilfe von ZOO ist es möglich, das Wissensnetz, das dem Postsystem zugrundeliegt, in einer graphischen Form zu bearbeiten.
1. ZOO als Benutzerschnittstelle zum Faktenwissen Unter Faktenwissen verstehen wir das Wissen um konkrete Objekte der Anwendungswelt und um ihre Beziehungen zueinander. In herkömmlichen Software-Systemen ist dieses Wissen durch Daten repräsentiert, die in einer Datenbank verwaltet werden. Was die Repräsentation von Fakten anbetrifft, ist der in unseren Systemen gewählte, auf Wissensnetzen basierende Formalismus den klassischen Datenbankmodellen gleichwertig. Er hat darüber hinaus den Vorteil, daß er besonders anschaulich ist, weil er eine graphische Interpretation nahelegt. In Abbildung 1 ist demonstriert, wie das Faktenwissen unseres Postsystems durch das System ZOO in einem Bildschirmfenster graphisch angezeigt wird. Konkrete Objekte, wie der Posteingangskorb m a i l - i n , der Brief L-26 und der Postteilnehmer John, sind durch Icons mit quadratischem Umriß dargestellt. Objekten desselben Typs sind dabei die gleichen graphischen Symbole zugeordnet. Der Name des Objekts erscheint als Inschrift im zugeordneten Icon. Relationen zwischen Objekten, wie z.B. die Absenderbeziehung der Person Michael zum Brief L-25 oder das Enthaltensein des Briefes L-25 im Posteingang m a l l - l n , werden durch Pfeile dargestellt. Diese Pfeile verbinden
189
ZOO
mail »«« v i s i t i n g
letter
1-25
@ CEj
^RECEIVER" —SENDER— ^—DATE— 3
Abbildung 1.
Die Fakten aus dem Anwendungsgebiet des elektronischen Postverkehrs werden durch Objektnetze dargestellt.
die entsprechenden Objekte miteinander und sind mit dem Namen der betreffenden Relation (hier s e n d e r bzw. c o n t e n t s ) beschriftet. Die Funktionen des Systems ZOO können durch Anklicken der Funktionssymbole am rechten Rand des Bildschirmfensters ausgelöst werden. Die meisten dieser Funktionen beziehen sich auf den momentan „besuchten" Ort im Wissensnetz. Dieser Ort erscheint auf dem Bildschirm durch Inversdarstellung deutlich herausgehoben. Man kann einen Ort im Wissensnetz besuchen, indem man mit der Maus auf ihn zeigt. In Abbildung 1 wird gerade der Brief L-25 besucht. Mit Hilfe der Funktion EDIT kann der Brief L-25 inspiziert werden. Die Eigenschaften des Objekts erscheinen in einem Property-Sheet (siehe Abbildung 2). Außer den Namen der Objekte, die mit dem Brief in einer Relation stehen, werden zwei elementare Attribute des Briefes sichtbar, nämlich der Betreff ( s u b j e c t ) und der textuelle Inhalt ( t e x t ) des Briefes. Eigenschaften, die nicht in einer Zeile des Property-Sheets Platz haben, werden abgekürzt dargestellt und können in voller Länge nur mit Hilfe eines Texteditors betrachtet werden. Durch die Selektion des Funktionssymbols STEP kann eine Navigation durch die Wissensbasis begonnen werden. Unter Navigation verstehen wir das Durchwandern des Wissensnetzes längs von Kanten. Dabei werden schrittweise Nachbarpositionen im Netz besucht. Wenn der Benutzer Teile
190
Systeme zur P r o g r a m m i e r u n t e r s t ü t z u n g
mall *** v i s i t i n g
Abbildung 2.
letter
1-Z5
Die Eigenschaften des Briefs £,-26 werden in einem P r o p e r t y Sheet angezeigt.
des Netzes a n s t e u e r t , die noch nicht auf d e m Bildschirm sichtbar sind, so erscheint das betreffende O b j e k t bzw. die b e t r e f f e n d e Relation an einer v o m System
bestimmten
Bildschirmposition
und
kann
von
dort
mit
F u n k t i o n MOVE v o m Benutzer nach Belieben wegbewegt werden.
Hilfe
der
Abbildung
3 zeigt das Ergebnis einer Navigation ausgehend v o m Brief L-24 in Richtung des Absenders des Briefes. Thomas erschienen.
Als neues O b j e k t war dabei die P e r s o n
Eine weitere Navigationsaktion
in R i c h t u n g
des
Em-
nur
gra-
pfängers des Briefes wird gerade begonnen. Mit
ZOO können
wir
das
Netz
von
Wissensbasisobjekten
nicht
phisch darstellen, wir können es auch modifizieren: • Wir können die Eigenschaften eines O b j e k t s v e r ä n d e r n , indem wir die E i n t r ä g e im betreffenden P r o p e r t y - S h e e t überschreiben. • Wir können die Relationen zwischen O b j e k t e n v e r ä n d e r n , indem wir K a n t e n zwischen den O b j e k t e n löschen oder neue K a n t e n h i n z u f ü g e n . Das Herstellen u n d das Lösen von Relationen geschieht mit Hilfe der Maus und des F u n k t i o n s s y m b o l s LINK. • Durch Kopieren von existierenden O b j e k t e n können wir mit Hilfe der F u n k t i o n COPY neue O b j e k t e erzeugen. • Mit Hilfe der F u n k t i o n DEL können wir ganze O b j e k t e aus der Wissensbasis löschen.
Zoo
191 Step t o . . .
Abbildung 3.
Durch Navigation im Wissensnetz u n d Relationen e r k u n d e t werden.
können
Alle diese Operationen haben sofortige Auswirkungen gende Wissensnetz.
weitere
auf das
Auf diesem Wissensnetz operiert auch das
Objekte
zugrundeliebetrachtete
Postsystem, deshalb werden bei dessen Benutzung die v o r g e n o m m e n e n
Än-
derungen u n m i t t e l b a r sichtbar.
2. ZOO als B e n u t z e r s c h n i t t s t e l l e z u m k o n z e p tuellen W i s s e n Das Faktenwissen, das einem Anwendungssystem
zugrundeliegt, ist Wissen,
das sich bei der Benutzung des Systems f o r t w ä h r e n d ä n d e r t und an schiedlichen Einsatzorten gen besitzt.
des Systems gänzlich unterschiedliche
unter-
Ausprägun-
So sind unserem Postsystem abhängig von der Zeit oder
dem
O r t der Installation jeweils a n d e r e Postfächer, Briefe und P o s t t e i l n e h m e r bekannt.
Es gibt jedoch auch invariantes Wissen, also solches, das sich bei
der normalen B e n u t z u n g des Systems nicht ä n d e r t . seres Postsystems ist beispielsweise d a d u r c h
Die F u n k t i o n a l i t ä t
un-
festgeschrieben, daß es P o s t f ä -
cher, Briefe und Postteilnehmer repräsentieren kann, wobei jeder Brief einen Absender, einen Adressaten u n d einen Inhalt besitzt, und d a ß m a n versenden k a n n .
Hingegen ist es unmöglich, mit dem P o s t s y s t e m
Briefe Meßda-
tenerfassung zu betreiben oder Tabellenkalkulationen v o r z u n e h m e n .
Mit ei-
nem W o r t : das f ü r das System invariante Wissen b e t r i f f t Konzepte.
Dabei
192
Systeme zur Programmierunterstützung
verstehen wir unter Konzepten ganz allgemein die verschiedenen darstellbaren Typen von Objekten sowie die Prädikate und Funktionen, die auf diese Objekte anwendbar sind. Das Wissen um diese Konzepte bezeichnen wir als konzeptuelles Wissen. Es stellt eine Abstraktion des potentiell vorhandenen Faktenwissens dar, es ist Wissen über Faktenwissen.
Abbildung 4.
Auch konzeptuelles Wissen wird in F o r m von Netzen dargestellt.
In den meisten Anwendungssystemen ist das konzeptuelle Wissen im Programmcode verschlüsselt. In seiner ursprünglichen F o r m existiert es lediglich im Kopf des Entwicklers oder bestenfalls in der P r o g r a m m d o k u m e n t a tion. In der Wissensbasis unseres Postsystems ist das konzeptuelle Wissen jedoch explizit repräsentiert, und zwar ebenso wie das Faktenwissen in Form eines Netzes. Mit dem Wissenseditor ZOO können wir auch diese Art von Wissen inspizieren. Zu diesem Zweck vergrößern wir das Bildschirm-
Zoo
193
fenster.
Dabei wird die graphische R e p r ä s e n t a t i o n des konzeptuellen
Wis-
2
sens sichtbar (Abbildung 4) . Die K o n z e p t e des Postsystems sind als O b j e k t e repräsentiert, sie erscheinen ähnlich wie die konkreten
O b j e k t e des Anwendungsgebiets
lassen sich drei A r t e n von Konzepten
unterscheiden:
als Icons.
Klassen,
Es
Methoden
u n d Slots. Klassen
sind a b s t r a k t e
Objekte, die die gemeinsamen
Menge gleichartiger konkreter O b j e k t e repräsentieren. sentiert die Klasse l e t t e r
Eigenschaften einer Beispielsweise
reprä-
die gemeinsamen strukturellen und f u n k t i o n a l e n
Eigenschaften von Briefen.
O h n e die Existenz dieser Klasse wäre es
möglich, in d e m Postsystem Briefe zu speichern u n d zu bearbeiten. stellt Klassen
als quadratische Icons dar, die zur Unterscheidung
wöhnlichen O b j e k t e n mit einem kräftigen R a n d versehen sind. sche Symbol
im
Icon wird
von einer Klasse auf
unZOO
von
ge-
Das graphi-
alle k o n k r e t e n
Objekte
So erhalten die Briefe L - 2 3 , L - 2 4
ü b e r t r a g e n , die der Klasse angehören.
u n d L - 2 5 dasselbe graphische Symbol wie die Klasse l e t t e r , der sie angehören. Die gemeinsamen f u n k t i o n a l e n Eigenschaften einer Klasse von O b j e k t e n werden mit Hilfe von Methoden
dargestellt.
M e t h o d e n sind O b j e k t e , die Ope-
rationen repräsentieren, die auf eine ganze Klasse von O b j e k t e n werden k ö n n e n .
angewandt
In unserem Beispiel sind Versenden, Löschen u n d Editieren
( s e n d , d e l e t e u n d e d i t ) Methoden, die der Klasse Brief ( l e t t e r ) net sind. knüpft. Slots jekten oder
zugeord-
M e t h o d e n sind über die Relation m e t h o d s mit ihrer Klasse verM e t h o d e n erscheinen im System ZOO als pfeilförmige Icons.
sind O b j e k t e , die die strukturellen Eigenschaften einer Klasse von Obbeschreiben. Attributen.
Jeder
Slot
Slots werden
repräsentiert im
System
eine Klasse ZOO als
dick
von
Relationen
ausgezeichnete
Rechtecke dargestellt, die den N a m e n eines A t t r i b u t e s oder einer umschließen. den.
Slots sind über die Relation s l o t s
In der A b b i l d u n g 4 e r k e n n t m a n die Slots t e x t
d a f ü r sorgen,
daß jeder Brief die gleichnamigen
Die Slots r e c e i v e r ,
sender
und d a t e
Relation
mit ihrer Klasse v e r b u n und s u b j e c t ,
Attribute
erhalten
die
kann.
definieren mögliche Relationen,
in
Daß das konzeptuelle Wissen im Gegensatz zum Faktenwissen bereits in graphischer Aufbereitung vorliegt, ist keine Zauberei. Da sich das konzeptuelle Wissen bei der normalen Benutzung des Anwendungssystems nicht verändert, zeigt es sich in derselben Darstellung wie zum Zeitpunkt seiner letzten Bearbeitung mit dem System ZOO. Zum Faktenwissensnetz hingegen kommen bei jeder Benutzung des Postsystems neue Objekte hinzu, die noch nicht mit dem Wissenseditor visualisiert wurden.
194
Systeme zur P r o g r a m m i e r u n t e r s t ü t z u n g An der type-Beziehung
denen O b j e k t e zu Briefen stehen können.
dieser
Slots zu den Klassen person bzw. date erkennt man, daß diese Slots keine einfachen
Attribute,
sondern
Relationen
zu anderen
Objekten
definieren,
wobei nur bestimmte Arten von O b j e k t e n zugelassen sind, nämlich Personen bzw. Kalenderdaten. Obwohl konzeptuelles Wissen a b s t r a k t e r e r N a t u r ist als Faktenwissen,
läßt
es sich mit den gleichen Mitteln, nämlich Objektnetzen, darstellen.
Deshalb
ist es möglich,
wir
das
Postsystem
wesentlich
umzugestalten,
indem
das
konzeptuelle Wissen, das ihm zugrundeliegt, mit Hilfe direkter Manipulation verändern.
U m dies zu demonstrieren,
werden wir im folgenden
mittels
graphischer Methoden ein neues Konzept definieren und auf diese Weise die F u n k t i o n a l i t ä t des Postsystems erweitern.
3. M o d i f i k a t i o n v o n K o n z e p t e n des A n w e n d u n g s systems Wir wollen in unserem Postsystem die Möglichkeit vorsehen, Briefe in (elektronischen) Ordnern definieren,
und
aufzubewahren.
zwar
im
wesentlichen
Deshalb die
müssen
wir neue
Objektklasse
Konzepte
folder,
die
das
Konzept eines Ordners repräsentiert, sowie den Slot i n - f o l d e r , der die Relation zwischen einem Brief und seinem Ordner beschreibt. Ein Ordner h a t Ähnlichkeiten
mit einem Postfach:
Er h a t einen
der aus einer Menge von Briefen besteht, und es sind ähnliche mit einem Ordner möglich wie mit einem Postfach.
Inhalt,
Operationen
Deshalb wollen wir ei-
nen Ordner als eine Spezialisierung des Konzepts P o s t f a c h definieren: heißt, die Klasse f o l d e r soll eine Subklasse der Klasse mailbox sein.
Das Dazu
besuchen wir die Klasse m a l l b o x und rufen über das Symbol MAKE und ein Menü, das d a r a u f h i n erscheint, die F u n k t i o n MakeSubclass auf. stehende Klasse hat zunächst noch keinen Namen. men f o l d e r .
Die ent-
Wir geben ihr den Na-
Die Klasse f o l d e r besitzt zunächst noch dasselbe graphische
Symbol wie ihre Superklasse.
Mit Hilfe der F u n k t i o n ICON können wir der
Klasse ein anderes Symbol zuordnen.
Das Ergebnis all dieser Aktionen ist
im oberen Teil der Abbildung 5 zu sehen.
Die Relation superc zeigt die
Superklassenbeziehung zwischen den Klassen m a l l b o x und f o l d e r . Bei diesen Aktionen operiert das System ZOO wie auch sonst „ a m Objekt".
setzungs- oder Generiervorgang sofort verfügbar. der
lebenden
Das neu definierte Konzept eines Ordners ist ohne weiteren Uber-
definiert ist, k a n n
N a c h d e m die Klasse
über das Funktionssymbol MAKE und eine
fol-
weitere
Zoo
195
mail *** visiting class folder
BErHODS-"^; » DELETE ) < S >•> EDIT )
LEITER IXI
/
I PEtEKE 't HI
^H
-rvpE-type-"
SENDEE SUBJECT I
9
nniL-iN dtüü^
K
Abbildung 5.
Die Wissensbasis nach Definition des Klasse f o l d e r und des Objekts p r i v a t e .
Menüselektion ein Exemplar dieser Klasse erzeugt werden. neuerzeugten
Ordner den Namen
private.
Wir geben dem
Sein Icon hat ohne
weiteres
Zutun das graphische Symbol der Klasse f o l d e r erhalten; es wird so die Klassenzugehörigkeit des Objekts bildlich dargestellt (Abbildung 5 unten). Um einen Brief einem Ordner zuordnen zu können, müssen wir eine entsprechende Relation vorsehen. Wir kopieren einen beliebigen Slot, geben ihm den Namen i n - f o l d e r und verbinden ihn über die Relation s l o t s mit der Klasse l e t t e r . Durch die Relation t y p e verbinden wir den Slot mit der Klasse f o l d e r . Ab diesem Moment ist für jeden Brief die Relation i n - f o l d e r definiert, die eine Beziehung zu dem Ordner herstellt, der den Brief enthält. Die i n - f o l d e r - B e z i e h u n g ist die Inversrelation zur c o n t e n t s - B e z i e h u n g , die für jedes Postfach und speziell für jeden Ordner
196 definiert ist.
Systeme zur Programmierunterstützung Diese Inversbeziehung der beiden Relationen deklarieren wir
durch Erzeugen eines weiteren Slots mit dem Namen C o n t e n t s , der als invers zu i n - f o l d e r gekennzeichnet ist (Abbildung 6 oben).
m a i l * * * visiting letter 1-25
OELEfS EDIT ) \ RECEV I ER H rVPE-I E INDER ~1—rypE^ —SLOTS^'—-—>1 TEXT I '^"-•'-'Z'~I suehei:r "1 1 DfT ìE ~ 1 rVPE^-TVPE N
SL0rs
1 IN-FOLOERH CONTENTA K INVERSE
a
step to.. . in-folder
text subject sender receiver date
o H
^-S .ENDER -RECEIVER—
?0HN —>
-.RECEIVERS SENDER— OftTE--^.
m Abbildung 6.
Die Wissensbasis nach Definition der Relation i n - f o l d e r .
Wenn wir den Brief L-25 besuchen und mit Hilfe der Funktion STEP das Menü der Relationen abrufen, die von dem Brief ausgehen, so erscheint jetzt auch der Name der Relation l n - f o l d e r . Wir können nun unseren Brief L-25 im Ordner private ablegen, indem wir im Bildschirmfenster die entsprechende Verbindung ziehen. Da der Slot l n - f o l d e r als invers zum Slot contents von f o l d e r definiert wurde, ist das System zur Bildung einer Inferenz fähig: Automatisch wurde vom System die Relation contents zwischen dem Ordner private und dem Brief L-25 hergestellt. Das Ergebnis ist in der Abbildung 7 zu betrachten.
Zoo
Abbildung 7.
197
Die Relation Contents zwischen dem Ordner p r i v a t e dem Brief L-25 wird automatisch inferiert.
und
Wissensnetze haben also eine Syntax. Es können nur solche Relationen zwischen Objekten hergestellt werden, die durch entsprechende Slotobjekte definiert sind. Die Syntax des Faktenwissensnetzes ist durch das übergeordnete konzeptuelle Wissensnetz gegeben. Durch Modifikation des konzeptuellen Wissensnetzes läßt sich die Syntax des Faktenwissensnetzes unmittelbar verändern. Der dazu erforderliche Editiervorgang ist von der Interaktionsform her derselbe wie bei der Bearbeitung des Faktenwissensnetzes. Die Manipulation des konzeptuellen Wissens hat somit die Wirkung einer Datendefinition in herkömmlichen Datenbankmodellen. Da das konzeptuelle Wissen in unserem System in gleicher Art wie das Faktenwissen (in herkömmlicher Sicht: die Daten) dargestellt ist, besteht im System ZOO kein wesentlicher Unterschied zwischen der Datenmanipulation und der Datendefinition. Datenmanipulationssprache und Datendefinitionssprache sind identisch. Das konzeptuelle Modell, das die Struktur der Daten definiert, ist selbst Teil der Datenbasis (sprich: Wissensbasis). Unsere Beispielsitzung am System ZOO zeigte, daß es möglich ist, sowohl die Fakten als auch die Konzepte des Postsystems zu bearbeiten und dadurch Inhalt, Struktur und Funktion des Systems zu verändern. Insbesondere die Änderungen im konzeptuellen Bereich wären bei einem nicht wissensbasierten System nur durch Programmänderungen möglich gewesen. Was noch fehlt, ist die Anpassung der Benutzerschnittstelle des Systems. Wenn die Relationen und Attribute eines Briefes in unserem Postsystem beispielsweise durch Formularfelder dargestellt sind, muß jetzt ein weiteres Formularfeld definiert werden, in das der Name eines Ordners eingetragen werden kann. Die Liste aller vorhandenen Ordner sowie die in einem Ordner enthaltenen Briefe könnten jeweils durch ein Menü dargestellt werden.
198
Systeme zur Programmierunterstützung
Diese Anpassungsarbeiten können mit Hilfe eines Benutzerschnittstellen-Baukastens (vgl.
[Fischer, Lemke, R a t h k e 87]) oder wiederum mit Hilfe des
Systems ZOO vorgenommen werden.
4. D i e I n t e r a k t i o n m i t d e m S y s t e m ZOO Die Interaktion mit dem Wissenseditor erfolgt in den meisten Fällen durch Zeigehandlungen, muß.
wobei
nur
der
linke Knopf
der
Maus betätigt
werden
Dies macht den Umgang mit dem System sehr einfach.
Dabei er-
folgt die Interaktion mit dem System nach der Noun-Verb-Syntax:
Es muß
zuerst ein Objekt bezeichnet („besucht") werden und dann erst die Operation, die auf das Objekt angewandt werden soll.
Dies hat den Vorteil, daß
die Interaktion weitgehend ohne besondere Systemmodi
[Tesler 81] erfolgt.
Nach der Selektion eines Objektes gerät man nicht in einen besonderen Systemzustand, der die Angabe einer Operation zwingend erfordert; auf eine irrtümliche Selektion eines Objektes kann jederzeit eine weitere folgen.
Selektion
Umgekehrt kann nach dem Auslösen einer Anwenderfunktion sofort
eine zweite betätigt werden, wenn sie sich auf das bereits selektierte O b j e k t bezieht. Die angebotenen Natur.
Funktionen
des Wissenseditors sind alle von
elementarer
Komplexe Operationen, die die Spezifikation einer Vielzahl von Pa-
rametern erfordern und dadurch den Benutzer in eine systemgesteuerte Dialogsequenz zwingen, sind nicht vorgesehen.
Stattdessen legt das System bei
der Ausführung der Kommandos Voreinstellungen zugrunde und konfrontiert den Benutzer sofort mit dem ermittelten Ergebnis.
Wenn der Benutzer mit
dem Ergebnis nicht gleich zufrieden ist, kann er es durch Auslösen weiterer Funktionen korrigieren.
Dadurch ist die Interaktion für den Benutzer
beliebiger Stelle unterbrechbar.
an
Die Interaktion mit dem System ist den-
noch nicht umständlich, da die angebotenen Defaults dem Benutzer häufig ausreichen.
Nur in seltenen Fällen entsteht ein Mehraufwand, der sich aber
meistens auf einen
zusätzlichen
Mehraufwand wird
aber dadurch
Mausklick mehr
beschränkt.
als ausgeglichen,
steuerung unter der Kontrolle des Benutzers bleibt.
Dieser
potentielle
daß die
Dialog-
Zoo
199
5. Zusammenfassung Objektnetze als Formalismus der Wissensrepräsentation ermöglichen die einfache Konstruktion von Wissenseditoren, mit denen F a k t e n und Konzepte eines Anwendungssystems visualisiert und vom Benutzer modifiziert werden können. Modifikationen des Anwendungssystems erfolgen durch direkte Manipulation von Graphiken. F ü r die Anpassung von Software-Systemen an neue Anforderungen und individuelle Arbeitsstile sind keine besonderen Programmierkenntnisse erforderlich. Der graphische Wissenseditor ZOO erlaubt die direkte Manipulation von Wissensbasen und operiert „ a m lebenden O b j e k t " . Es wird keine Textrepräsentation editiert, sondern die aktiven Wissensbasisobjekte eines Anwendungssystems in geladenem Zustand. Dadurch kann die Interaktion mit dem System wissensgesteuert erfolgen: Das bereits im System repräsentierte Wissen wird genutzt, um die Vorgänge der Visualisierung und Modellierung von Wissensstrukturen zu unterstützen. Das Untersuchen von Wissensbasen wird erleichtert durch Hilfen, die sich aus den vorhandenen Wissensstrukturen ableiten, so etwa durch automatisch erzeugte Menüs zur Navigation und defaultmäßig vorgegebene Icons für die darzustellenden Objekte. Der Vorgang der Modellierung von neuem Wissen geschieht ebenfalls wissensgestützt: Vom System wird die Konstruktion von genau den Objekten und Relationen angeboten, die sich im aktuellen Kontext aus den im System repräsentierten Konzepten ableiten lassen. Der objektorientierte wissensbasierte Ansatz, verbunden mit fortgeschrittenen Techniken der Mensch-Computer-Kommunikation ermöglicht so die Konstruktion besser durchschaubarer und in weiten Teilen vom Benutzer gestaltbarer Anwendungssysteme und gewährt dem am Computer arbeitenden Menschen dadurch einen größeren Handlungsspielraum als in herkömmlichen Lösungen.
XII
OBJBASE
Ein S y s t e m zur S t r u k t u r i e r u n g und Verwaltung von Wissen Dorothea Bauer
Integrierte wissensbasierte Systeme sind eine Vorstellung der Zukunft. In ihnen sollen sämtliche Komponenten wissensbasiert programmiert sein, d.h. das enthaltene Wissen soll mit Hilfe von Wissensrepräsentationssprachen dargestellt werden. Das vom Benutzer verwendete Fakten- und Regelwissen wird mit den gleichen Mitteln repräsentiert wie die von ihm verwendete Benutzerschnittstelle, wie die Entwicklungswerkzeuge, mit denen Benutzerschnittstellen und Anwendungssysteme erstellt werden, wie die Konzepte der Wissensrepräsentationssprache selbst. Dadurch kann das gesamte im System enthaltene Wissen auf uniforme Weise vom Benutzer bzw. Programmierer verändert und so an die eigenen Bedürfnisse angepaßt werden. Eine Anstrengung in Richtung auf ein integriertes wissensbasiertes System stellt die Softwareumgebung der Forschungsgruppe INFORM dar. Im Laufe mehrerer Projekte wurden wissensbasierte Benutzerschnittstellen und wissensbasierte Anwendungsysteme mit Hilfe der objektorientierten Wissensrepräsentationssprache O b j T a l k [Rathke C. 86a] entwickelt. Mittlerweile umfaßt die Softwareumgebung mehr als tausend Objekte und an die hundert Wissensbasen. Zur Verwaltung von ObjTalk-Wissensbasen und der darin enthaltenen Objekte wurde das Wissensbanksystem OBJBASE entwickelt. Es koordiniert den Zugriff auf Wissensbasen und unterstützt das Verändern von Wissensbasen. Damit erleichtert es die Fehlerkorrektur sowie die Adaption von Wissensbasen an neue Anforderungen ebenso wie die Individualisierung von Wissensbasen entsprechend spezieller Benutzerwünsche. In diesem Beitrag wird dargestellt, wie ein Benutzer beim Einbringen von neuem Wissen in ein objektorientiertes System unterstützt werden kann, indem Veränderungen unter Einsatz von Heuristiken auf geeignete Wissensbasen verteilt und abgespeichert werden.
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter & C o . • Berlin • New York
Systeme zur Programmierunterstützung
202
1. Einleitung Objektorientierte Sprachen fördern das modulare Programmieren, indem sie erlauben, Information in F o r m von wiederverwendbaren Bausteinen - den Objekten - zu repräsentieren. Objekte sind Datenstrukturen in denen Informationen gespeichert werden können. In diesem deklarativen Charakter entsprechen sie den Datensätzen einer Datenbasis. Darüber hinaus können sie jedoch auch prozedurales Wissen enthalten. Die Aufgabe von Objekten ist es also nicht nur, Informationen zu speichern und damit a b r u f b a r zu machen, sondern mit ihrer Hilfe können auch „Berechnungen" durchgeführt werden. Wissensbasen fassen einzelne ihrer Funktion nach zusammengehörende Objekte zu einer Einheit zusammen. Die in einer Wissensbasis enthaltenen Objekte modellieren ein gemeinsames Anwendungsgebiet. Bei Datenbanken legt das Datenbankschema die S t r u k t u r der in den einzelnen Datenbasen enthaltenen Datensätze fest. Die Objekte einer Wissensbasis haben demgegenüber keine einheitliche S t r u k t u r . Es existiert kein Schema, das abhängig vom Typ eines Objektes festlegt, welcher Wissensbasis es zuzuordnen ist, sondern der Ersteller des Objekts entscheidet dies entsprechend der beabsichtigten Funktion des Objekts. Wissensbasen sind ebenso wie Objekte wiederverwendbare Bausteine.
Wie
Klassen zu Subklassen verfeinert werden können, um ein spezielleres Verhalten
zu
erzielen,
können
auch
gesamte
Wissensbasen
verfeinert
werden.
Durch das Verändern oder Hinzufügen von Objekten können sie neuen Bedürfnissen angepaßt werden.
O f t wird jedoch nicht eine einzelne Wissens-
basis verändert, sondern der Benutzer manipuliert die in einem System geladenen Objekte, ohne zu beachten, von welcher Wissensbasis sie s t a m m e n . Die veränderten Objekte müssen dann am Ende der Sitzung auf einer geeigneten Wissensbasis abgespeichert werden.
Manchmal ist es auch
nötig,
die Änderungen auf mehrere Wissensbasen zu verteilen. Wissensbasen werden nicht nur verwendet, um die in ihnen enthaltene Information abzurufen, sondern sie werden auch zum Ausführen von Aktionen eingesetzt, wobei ebenso wie bei der Manipulation durch den Benutzer Objekte verändert werden. Es entstehen dabei auch Änderungen, die nicht abgespeichert werden müssen, sondern „vergessen" werden können. Dann müssen beim Abspeichern von Änderungen diejenigen selektiert werden, die später wiederverwendet werden sollen.
203
OBJBASE
2. Eine Beispielsitzung mit O B J B A S E Ein W e r k z e u g zur direkten Manipulation von O b j e k t e n stellt der Wissenseditor ZOO dar.
Im Kapitel XI w u r d e a n h a n d der Wissensbasis M a i l
ge-
zeigt, wie mit seiner U n t e r s t ü t z u n g O b j e k t e erzeugt, v e r ä n d e r t und gelöscht werden k ö n n e n . wird.
E s w u r d e e r l ä u t e r t wie „ a m
lebenden
Objekt"
operiert
A m E n d e der Sitzung liegt eine Vielzahl v e r ä n d e r t e r O b j e k t e vor,
die abgespeichert werden müssen, sollen sie in der nächsten Sitzung wieder zur V e r f ü g u n g stehen.
Diesen Zweck erfüllt zwar auch ein Hauptspeicher-
abzug, er speichert jedoch nicht nur die v e r ä n d e r t e n Objekte, sondern alle O b j e k t e a b u n d dies in einer f ü r den Menschen unlesbaren F o r m .
OBJ-
BASE hingegen bietet die Möglichkeit, nur die V e r ä n d e r u n g e n , die an einer einzelnen Wissensbasis vorgenommen wurden, abzuspeichern. Im folgenden wird gezeigt, wie der Benutzer wie bei herkömmlichen
Syste-
men selbst die O b j e k t e angibt, die er abspeichern möchte.
OBJBASE Uber-
nimmt
durchzuführen.
hierbei zunächst
nur die Aufgabe, das Abspeichern
A n h a n d dieses Beispiels wird veranschaulicht, welche P r o b l e m e dabei a u f t r e ten k ö n n e n .
Nachfolgend wird eine Wissenserwerbskomponente
vorgestellt,
die diese P r o b l e m e in Kooperation mit d e m Benutzer löst.
2.1 D a r s t e l l u n g v o n
Wissensbasen
A b b i l d u n g 1 zeigt die Benutzerschnittstelle von OBJBASE. Fenster
mit
d e m Titel KB:Mail
gibt den
Zustand
Das abgebildete
der Wissensbasis
Mail
wieder, n a c h d e m der Benutzer d o r t die O b j e k t e notiert hat, die er abspeichern m ö c h t e .
Ein solches Wissensbasisfenster setzt sich aus einer
von U n t e r f e n s t e r n z u s a m m e n :
die Beziehung der Wissensbasis zu anderen Wissensbasen an.
Die Wissens-
basis M a l l b a u t auf die Wissensbasis Zoo auf, d.h. die in M a i l O b j e k t e setzen
die Existenz
der
O b j e k t e aus Zoo voraus.
enthaltenen
Des
weiteren
setzt sich die Wissensbasis M a i l aus den Teilwissensbasen M a l l O b J e c t s M a i l P i c t u r e s zusammen.
Reihe
Die Fenster P a r t s u n d Required KBs geben
und
Die in ihnen e n t h a l t e n e n O b j e k t e gehören d a m i t
auch z u m Inhalt von M a l l .
Zusammen mit den im Fenster contents ent-
haltenen lokalen O b j e k t e n bilden sie den aktuellen Inhalt der Wissensbasis. Die
drei
nebeneinander
liegenden
Fenster
contents,
modified-objects
deleted-objects stellen den Vergleich der Wissensbasis, wie sie zuletzt speichert Fenster
wurde, contents
mit
dem
enthält
aktuellen die
Zustand
Objekte,
die
der
lokal
Wissensbasis in M a i l
und abge-
dar.
Das
enthalten
sind.
S y s t e m e zur
204
Programmierunterstützung
KB-Properties of Mail
OBJECT iUPEP'JI SION
v e r s i o n = (9 . Fri Feb 26 10:21:09 1988) owner = d o r l e status = private v a l i d i t y = global
A b b i l d u n g 1.
Aus
dem
OFF
Die B e n u t z e r s c h n i t t s t e l l e v o n OBJBASE.
Fenster
m o d i f i e d - o b j e c t s ist
Abspeichern vorgemerkt wurden.
zu e n t n e h m e n ,
welche
Objekte
zum
I m Beispiel w u r d e n alle O b j e k t e a u s Con-
t e n t s n e u z u m I n h a l t v o n Mail h i n z u g e f ü g t , sie e r s c h e i n e n d e s h a l b a u c h modified-objects. enthalten. den
Zusätzlich
Obwohl
veränderten
es a u c h
Objekten.
ist in m o d i f i e d - o b j e c t s n o c h unter Dies
deleted-objects zeigt
an,
daß
notiert das
ist,
Objekt
zählt
es
und
nicht
ist).
D a s F e n s t e r I n f o s d i e n t zur A u s g a b e v o n S y s t e m m e l d u n g e n . Fehler-
zu
abgespeichert
w e r d e n m u ß , falls es w i e d e r z u m I n h a l t h i n z u g e f ü g t w i r d ( d a es n o c h in d e r W i s s e n s b a s i s e n t h a l t e n
in
anna
das O b j e k t
Informationsmeldungen
daß Ob-
wie d e r dar.
werden.
Parts und Required KBs enthaltenen
Wissensbasisname
Durch
Anklicken weitere
in
der
Titelzeile
stellen
Wissensbasen
maussensitive
eines s o l c h e n
Bereichs e r s c h e i n t
das Formular
der
Wissensbasis
das
Man
aus ihm entnehmen,
ausgewählten
zu w e l c h e m
Zeitpunkt
die g e r a d e
so-
Bereiche
Eigenschaften
Properties, kann
z.B.
werden
eine b e s t i m m t e W i s s e n s b a s i s n i c h t g e s c h r i e b e n w e r d e n d a r f o d e r w e l c h e
Die in d e n F e n s t e r n
so
In i h m
die Meldung,
jekte gerade abgespeichert
ausgegeben,
KBzeigt.
geladene
205
OBJBASE
Version der Wissensbasis abgespeichert wurde und wer der Ersteller der Wissensbasis ist. Ebenso wird angegeben, ob es sich um eine private, öffentliche oder fremde Wissensbasis handelt und ob die Veränderungen, die an der Wissensbasis vorgenommen werden, auf einer separaten Wissensbasis oder auf der ursprünglichen Wissensbasis festgehalten werden sollen.
2.2 B e n u t z e r g e s t e u e r t e s V e r ä n d e r n v o n
Wissensbasen
Will der Benutzer neues Wissen zur Wissensbasis Mail hinzufügen, so muß er sie aktivieren. Hierfür wählt er im KB-menu den Eintrag activate aus (siehe Abbildung 1). Die weiteren Einträge des KB-menu erlauben das Abspeichern der Änderungen, das Deaktivieren der Wissensbasis sowie das Abschließen der Bearbeitung. Ist eine Wissensbasis aktiv, so kann der Benutzer ihren Inhalt sowie ihre Eigenschaften und Beziehungen zu anderen Wissensbasen modifizieren, indem er die beschriebenen Fenster und Formulare editiert. Die Eigenschaften
einer Wissensbasis können verändert werden, indem die
entsprechenden Einträge des Formulars KB-Properties editiert werden. ziehungen
zu anderen
Wissensbasen
Be-
werden mit Hilfe der Plus- und Minus-
Buttons an den Fenstern P a r t s und Required KBs manipuliert.
Möchte der
Benutzer eine neue Wissensbasis einfügen, so klickt er auf den Plus-Button. Darauf erscheint im Fenstertitel die Eingabeanforderung ,,add p a r t : " bzw. „add required K B : " und er kann den Namen der hinzuzufügenden Wissensbasis eingeben.
Zum Löschen einer Beziehung klickt der Benutzer entspre-
chend
Minus-Button;
auf
den
die Wissensbasis,
auf
die er
anschließend
zeigt, wird dann entfernt. Wie der Inhalt einer Wissensbasis verändert werden kann, soll im gezeigt werden. Wie kann zum Beispiel der Benutzer, der mit Wissenseditors ZOO neue Objekte erstellt und bestehende Objekte hat, erreichen, daß die Wissensbasis Mail um die neuen Objekte wird und die Änderungen abgespeichert werden?
folgenden Hilfe des verändert erweitert
In der Beispielsitzung wurden die Klasse f o l d e r , deren Instanz p r i v a t e sowie die Slots C o n t e n t s und i n - f o l d e r neu definiert.
Die dabei erzeugten
Objekte sollen zum Inhalt von Mail hinzugefügt werden. Objekte im Fenster Contents notiert werden.
Dazu müssen die
Dieses Fenster stellt ebenso
wie die Fenster modified-objects und deleted-objects eine editierbare Liste dar.
Solche Listenformulare
können ähnlich wie die Fenster Parts und Re-
quired KBs über die Buttons am linken Fensterrand
manipuliert
werden,
206
Systeme zur Programmierunterstützung
außerdem können ihre Einträge direkt editiert werden. Um z.B. das Objekt f o l d e r zur Wissensbasis hinzuzufügen, muß der Benutzer den PlusButton des Fensters contents drücken und anschließend „ f o l d e r " eingeben. Das Listenformular modified-objects zeigt an, welche der in der Wissensbasis enthaltenen O b j e k t e abgespeichert werden sollen. schon
in der Wissensbasis enthalten
Da das O b j e k t
letter
ist, notiert der Benutzer es nur
in
modified-objects. Soll ein O b j e k t aus der Wissensbasis entfernt werden, so muß es in deletedobjects eingetragen werden.
Dort werden auch Objekte wie das
Objekt
anna notiert, das zwar zuerst zur Wissensbasis hinzugefügt worden war, anschließend jedoch wieder gelöscht wurde. Das Wissensbasisfenster, in dem ein Benutzer seine mit dem Wissenseditor ZOO gemachten Änderungen notiert hat, ist in Abbildung 1 zu sehen. Dabei ist zu erkennen, daß in modified-objects nicht nur das vom Benutzer dort eingetragene Objekt l e t t e r enthalten ist, sondern auch alle Objekte, die zu contents hinzugefügt wurden. Da die neu zum Inhalt der Wissensbasis hinzugefügten Objekte natürlich auch abgespeichert werden müssen, müssen sie auch in modified-objects stehen. Wird ein Objekt in deletedobjects eingetragen, so darf es anschließend natürlich nicht mehr in contents verzeichnet sein. Durch die Abhängigkeiten, die zwischen den drei Listenformularen bestehen, können die vom Benutzer vorgenommenen Änderungen weitere Änderungen erfordern. Diese zusätzlichen Einträge oder Löschungen muß der Benutzer jedoch nicht selbst vornehmen, da OBJBASE auftretende Inkonsistenzen selbständig korrigiert. Wird zur Liste contents ein neues Objekt hinzugefügt, so erscheint dies auch in der Liste modified-objects. Ebenso werden die zur Liste modified-objects hinzugefügten Objekte auch zur Liste contents hinzugenommen, wenn sie darin noch nicht enthalten sind. Objekte, die zur Liste deleted-objects hinzugefügt werden, werden als Folge davon aus contents entfernt. Die Liste deleted-objects zeigt einerseits an, welche Objekte beim Abspeichern der Wissensbasis aus der Wissensbasis gelöscht werden sollen, andererseits bietet sie eine Undo-Möglichkeit 1 . Nehmen wir als Beispiel das O b j e k t anna. Der Benutzer hat es neu erzeugt und fügt es deshalb zur Liste contents hinzu. Dadurch wird es auch in modified-objects eingetragen. Dann
^ Das T h e m a Undo wird ausführlich in Kapitel VIII behandelt.
207
OBJBASE
beschließt er, daß a n n a doch nicht zur Wissensbasis gehören soll und trägt das Objekt in der Liste deleted-objects ein, wodurch es aus contents entfernt wird. W ü r d e a n n a wieder zum Inhalt der Wissensbasis hinzugerügt werden, so müßte das O b j e k t abgespeichert werden. Um diese Information nicht zu verlieren, wird es - obwohl a n n a nun nicht mehr zum Inhalt der Wissensbasis gehört - nicht aus modified-objects entfernt. Will der Benutzer die Löschaktion rückgängig machen, so genügt es daher, das Objekt aus deleted-objects zu entfernen. Dadurch wird es wieder zu contents hinzugefügt: der Benutzer kann sich also das Eingeben des O b j e k t n a m e n s sparen. Ändert der Benutzer ein Objekt, so muß er das nicht sofort in der betroffenen Wissensbasis notieren. Er kann das auch nach Abschluß einer Editiersequenz oder am Ende der Sitzung tun. Hat der Benutzer die Bearbeitung der Wissensbasis abgeschlossen, so kann er die veränderten O b j e k t e der Wissensbasis und die Beschreibung der Wissensbasiseigenschaften und -beziehungen abspeichern. Zum Abspeichern des Wissensbasisinhalts wird die Schnittmenge aus contents und modified-objects bestimmt, die darin enthaltenen Objekte werden dann abgespeichert. Der Benutzer muß jedoch die gemachten Änderungen nicht abspeichern. Er kann durch Menüauswahl festlegen, ob er alles, nur die Beschreibung der Wissensbasis oder gar nichts abspeichern möchte.
2.3 D i e W i s s e n s e r w e r b s k o m p o n e n t e v o n OBJBASE Beim Manipulieren von Wissensbasen kann es leicht geschehen, daß der Benutzer gemachte Änderungen übersieht und abzuspeichern vergißt. Würde der Benutzer die im Beispiel erzeugte Wissensbasis M a i l zu einem späteren Zeitpunkt laden wollen, so würde er, sobald die Objekte p r i v a t e und 1 - 2 5 geladen werden, eine Fehlermeldung erhalten, die besagt, die Slotbelegungen der Slots c o n t e n t s und i n - f o l d e r seien entgegen der Definition nicht invers zueinander (siehe Abbildung 2). Der Benutzer h a t t e übersehen, daß beim Eintragen des Briefes 1 - 2 5 in den c o n t e n t s - S l o t des Objekts p r i v a t e durch diese Inversbeziehung auch 1 - 2 5 verändert wurde und hatte nur p r i v a t e zum Abspeichern vorgemerkt. Außerdem würde auf dem Bildschirm nur das Ausgangsobjektnetz nen:
erschei-
Die in der letzten Sitzung gemachten Änderungen würden nicht dar-
gestellt.
Woran liegt das?
Dem Benutzer war nicht klar, daß beim inter-
aktiven Erzeugen von Objekten mit Z0O nicht nur die Objekte selbst, sondern auch Darstellungsobjekte, die die eigentlichen O b j e k t e auf dem Bildschirm repräsentieren, erzeugt werden.
Der Benutzer hatte deshalb keines
208
Systeme zur Programmierunterstützung
i
-?L0r :.->r C OHTEHFS
B1 Abbildung 2.
I IH-FOLDETn-^-SLOrs-
CED
TT? ED
Die Beziehungen zwischen p r i v a t e und 1 - 2 5 .
der Darstellungsobjekte in der Wissensbasis notiert, so daß diese auch nicht abgespeichert wurden. Solche Fehler entstehen, wenn der Benutzer die Auswirkungen der von ihm vorgenommenen Änderungen nicht überblickt. Um Fehler dieser Art zu vermeiden, k a n n der Benutzer sich beim Eintragen von Änderungen von der Wissenserwerbskomponente von OBJBASE unterstützen lassen. W ä h r e n d der Benutzer Änderungen vornimmt, protokolliert die Wissenserwerbskomponente in der gerade aktiven Wissensbasis, welche Objekte neu erzeugt, welche verändert und welche gelöscht werden. Der Benutzer kann somit zu jedem Zeitpunkt nachsehen, welche Änderungen abgespeichert werden müssen. So wird dem Benutzer auch die Arbeit erspart, am Ende einer Sitzung feststellen zu müssen, welche Änderungen vorgenommen wurden. Da prinzipiell jede vom Benutzer vorgenommene Änderung weitere Änderungen auslösen kann, stellt dies schon bei einfachen Objektnetzen eine relativ komplexe Aufgabe dar (siehe Anzahl der zusätzlich durch die Wissenserwerbskomponente notierten Objekte in Abbildung 4 verglichen mit Abbildung 1). Will sich der Benutzer beim Manipulieren der Wissensbasis von der Wissenserwerbskomponente unterstützen lassen, so muß er die Wissenserwerbskomponente aktivieren. Hierzu klickt er auf den Object-Supervision-Button, der in Abbildung 1 zu sehen ist. Die Inschrift wechselt daraufhin zu ,,Object Supervision O n " . Sie zeigt an, daß nun die Veränderungen der aktiven Wissensbasis protokolliert werden. Dadurch, daß der Benutzer die Wissensbasis M a i l aktiviert hat, zeigt er der Wissenserwerbskomponente an, daß er diese Wissensbasis manipulieren möchte. Die Wissenserwerbskomponente achtet nun darauf, welche der in M a i l enthaltenen Objekte verändert oder gelöscht werden und welche Objekte neu erzeugt werden, und notiert die Änderungen im zuständigen Formular der Wissensbasis.
209
OBJBASE
Aktion im Wissenseditor
Aktion der Wissenserwerbskomponente
Navigation zu thomas
o b j e c t - p i c t u r e - t h o m a s —• contents
Erzeugen von anna
anna —• contents o b ] e c t - p l c t u r e - a n n a —• contents anna deleted-objects o b ] e c t - p l c t u r e - a n n a —• deleted-objects
Löschen von anna
Erzeugen von p r i v a t e Erzeugen von i n - f o l d e r
p r i v a t e —• contents o b j e c t - p l c t u r e - p r l v a t e —• contents i n - f o l d e r —• contents s l o t - p l c t u r e - i n - f o l d e r —• contents l e t t e r —• modified-objects
Ändern von p r i v a t e 2
1 - 2 5 —• m o d i f i e d - o b j e c t s
Abbildung 3.
Reaktionen der Wissenserwerbskomponente auf Aktionen des Wissenseditors.
Abbildung 3 zeigt einen Ausschnitt der mit dem Wissenseditor vorgenommenen Änderungen sowie die Änderungen der Wissensbasis Mail, die die Wissenserwerbskomponente als Reaktion darauf vornimmt: • Bei der Navigation zum Objekt thomas wurde das Objekt, das vorher noch nicht auf dem Bildschirm dargestellt war, sichtbar. Dazu hat ZOO das Objekt o b ] e c t - p i c t u r e - t h o m a s erzeugt. Die Wissenserwerbskomponente hat dies bemerkt und o b j e c t - p i c t u r e - t h o m a s zum Inhalt der Wissensbasis hinzugefügt. • Ebenso wurde das Erzeugen und Löschen des Objekts anna und seines zugehörigen Darstellungsobjekts o b j e c t - p l c t u r e - a n n a festgestellt und in Contents bzw. deleted-objects notiert. • Beim Erzeugen und Einfügen des Slots l n - f o l d e r wurde auch das Objekt l e t t e r verändert. Da es schon in der Wissensbasis Mail enthalten ist, wird es in modified-objects notiert. • Als im Objekt p r i v a t e der Slot c o n t e n t s mit 1 - 2 5 belegt wurde, wurde durch die definierte [nvers-Beziehung auch der Slot l n - f o l d e r des Objekts 1 - 2 5 verändert. 1 - 2 5 wird deshalb in modified-objects notiert ( p r i v a t e braucht dort nicht mehr notiert werden, da es schon bei seiner Erzeugung notiert worden war).
2
contents = 1-25
210
Systeme zur Programmierunterstützung
Da Inkonsistenzen, die infolge der durch die Wissenserwerbskomponente vorgenommenen Einträgen zwischen den Formularen contents, modified-objects und deleted-objects auftreten können, korrigiert werden, wird bei jedem Eintrag der Inhalt der anderen Formulare entsprechend angepaßt. Das Endergebnis der durch die Wissenserwerbskomponente veränderten Wissensbasis ist in Abbildung 4 zu sehen.
contents : moclif l e d - o b j e c t s : deleted-objects: Jl-25 lobj ect-pictu r e-anna 1-25 • letter • letter •anna !slot-picture-in-folder !slot-picture-in-folder lin-folder lin-folder Is l o t - p i c t u r e - c o n t e n t s Is 1ot-p ictu r e-cont ent s ¡contents ¡contents l o b j e c t - p i c t u r e - p r i v a t e lobj ect-p ictu r e-pr i vat e •private •private Iclass-picture-folder Iclass-picture-folder •folder Ifolder lobject-picture-thomas [object-picture-anna •anna lobject-picture-thomas Abbildung 4.
Ergebnis der Wissenserwerbskomponente.
Die Existenz des Objekts object-picture-anna ist mit der Existenz des Objekts anna verknüpft; deshalb wurde es, als anna im Wissenseditor gelöscht wurde, ebenfalls unter deleted-objects eingetragen. Will der Benutzer lediglich das Abspeichern dieser Objekte verhindern, so genügt es, diese aus dem Inhalt der Wissensbasis zu entfernen. Er muß sie nicht zusätzlich noch im Wissenseditor löschen. Weiß der Benutzer schon beim Erzeugen des Objekts anna, daß er es nicht abspeichern möchte, so hat er folgende einfache Möglichkeit.
Er kann die
Protokollführung der Wissenserwerbskomponente durch Klicken auf den Object-Supervision-Button kurzzeitig ausschalten.
Die Änderungen, die er an-
schließend d u r c h f ü h r t , werden dann nicht zum Abspeichern vorgemerkt. Eine weitere Unterstützungsfunktion der Wissenserwerbskomponente demonstriert das Fenster Infos (siehe Abbildung 5). Beim Erzeugen des Objekts anna hatte der Benutzer übersehen, daß dieses Objekt auch in der Wissensbasis Persons enthalten ist und dort schon zum Abspeichern vorgemerkt wurde. Beim Erzeugen eines neuen Objekts anna würde das bestehende Objekt überdefiniert. In der Wissensbasis Persons würde dann ein O b j e k t abgespeichert, das in dieser Form hierfür nicht vorgesehen war.
211
OBJBASE
Infos
Changing which is already modified on KB:Persons! Save it before? Yes Saving on KB:Persons
Abbildung 5.
Warnung bei folgenschweren Aktionen.
Die Wissenserwerbskomponente stellt bei solchen folgenschweren Aktionen vor deren Ausführung fest, ob das betroffene Objekt für irgendeine Wissensbasis zum Abspeichern vorgemerk ist. Ist das der Fall, warnt sie den Benutzer und gibt ihm die Möglichkeit, vor Ausführung der Aktion das betroffene Objekt abzuspeichern.
2.4 A u f t e i l e n v o n Ä n d e r u n g e n auf m e h r e r e
Wissensbasen
In den bisher gezeigten Beispielen wurde das neue Wissen in der Wissensbasis Mall abgespeichert. Die abgespeicherten Objekte lassen sich, wie an ihren Namen (siehe Abbildung 4) zu erkennen ist, in zwei Kategorien, die Mail-Objekte und die Darstellungsobjekte, einteilen. Die in der Ausgangswissensbasis enthaltenen Objekte waren diesen Kategorien entsprechend auf die zwei Wissensbasen MallObjects und MailPictures aufgeteilt 3 . Will der Benutzer die Änderungen, die er an der Wissensbasis Mall vorzunehmen wünscht, nicht lokal abspeichern, sondern auf deren Teilwissensbasen aufteilen, so muß er die Teilwissensbasen parallel verändern. Bisher war nur eine Wissensbasis, die Wissensbasis Mall, aktiv. Jetzt sollen ihre Teilwissensbasen zum Bearbeiten geöffnet werden. Es ist dabei nicht nötig, die Teilwissensbasen sequentiell zu bearbeiten, d.h. die Bearbeitung von MailOb] ects muß nicht abgeschlossen werden, bevor die Wissensbasis MailPictures zum Bearbeiten geöffnet werden kann. Es ist möglich, beide Wissensbasen zum Bearbeiten geöffnet zu haben und, je nachdem an welcher gerade Änderungen vorgenommen werden sollen, mal die eine, mal die andere zu aktivieren und die Änderungen nach Abschluß der Bearbeitung abzuspeichern. Sollen die durchgeführten Änderungen durch die Wissenserwerbskomponente protokolliert werden, so müssen die beiden Teilwissensbasen wirklich gleichzeitig verändert werden können, d.h. sie müssen auch gleichzeitig aktiv sein.
•j
Die Wissensbasis Mall hatte nur die Aufgabe, diese Wissensbasen zusammenzufassen; sie enthielt selbst keine lokalen Objekte.
212
Systeme zur P r o g r a m m i e r u n t e r s t ü t z u n g
Der Bearbeitungszustand, in d e m sich eine Wissensbasis befindet, k a n n d e m Wissensbasismanager F o r m u l a r dar.
entnommen
werden.
Auch
er stellt
ein
editierbares
Der Benutzer aktiviert die Wissensbasen MailObJ ects u n d
MailPictures, indem er sie in die Formularzeile „active-KBs" des Wissensbasismanagers einträgt.
Auf diese Weise beendet er auch die B e a r b e i t u n g
der Wissensbasis Mail.
Abbildung 6 zeigt den d a d u r c h erreichten
Zustand
des Wissensbasismanagers.
KB-Manager protocoI = ON active-KB = (MailObjects MailPictures) open-KBs = (MailObjects MailPictures Persons) closed-KBs = (Mail) loaded-KBs « (MailObjects MailPictures Mail ...) path = (/users/dorle/base/KBs . /users/dorle/base/code
Abbildung 6.
...)
Der Wissensbasismanager.
Wenn die d u r c h g e f ü h r t e n Änderungen d u r c h die
Wissenserwerbskomponente
protokolliert werden sollen, besteht das Problem, daß nicht m e h r nur eine Wissensbasis aktiv ist, der sämtliche Ä n d e r u n g e n zugeordnet werden.
Nun
sind zwei Wissensbasen aktiv, so daß f ü r jede einzelne Ä n d e r u n g
entschie-
den werden
Benutzer
muß, welcher Wissensbasis sie zuzuordnen
ist.
Der
möchte Darstellungsobjekte auf der Wissensbasis MailPictures notiert
ha-
ben, alle anderen Ä n d e r u n g e n sollen auf der Wissensbasis MailObjects notiert werden. Bei Wissensbasen besteht hinsichtlich der O b j e k t e , die sie a u f n e h m e n nen keine E i n s c h r ä n k u n g , außer bei sog. Instanzenwissensbasen: ausschließlich Instanzen
a u f n e h m e n , deren Klasse in einer
den Klassenwissensbasis enthalten ist. res.
rende Klassenwissensbasis spezifiziert .
Sie k ö n n e n
korrespondieren-
Ein Beispiel hierfür ist MailPictu-
Der Ersteller dieser Wissensbasis hat ZooPictures als 4
korrespondie-
D a d u r c h h a t er erreicht, d a ß Mail-
Pictures nur Darstellungsobjekte a u f n e h m e n k a n n , also Instanzen ZooPictures e n t h a l t e n e n Klassen.
4
kön-
Vgl. Titelzeile der Wissensbasis M a i l P i c t u r e s in Abbildung 8.
der
in
213
OBJBASE
Aktion im Wissenseditor
Aktion der Wissenserwerbskomponente MailObjects
Navigation zu thomas
Erzeugen von anna Löschen von anna
Erzeugen von p r i v a t e Erzeugen von i n - f o l d e r
Ändern von p r i v a t e 5
Abbildung 7.
MailPictures ob]ect-plcture-thomas —• contents
anna - * contents anna deleted-objects
ob]ect-picture-anna —• contents ob]ect-picture-anna —• deleted-objects
private —• contents in-folder —• contents letter > modified-objects
ob]ect-picture-private - * contents slot-picture-in-folder —• contents
1-25 —• modified-objects
Aufteilen der Änderungen res und MailOb]ects.
auf die Wissensbasen
MallPictu-
Abbildung 7 zeigt, wie die Wissenserwerbskomponente aufgrund der Spezifikation von ZooPictures als korrespondierende Klassenwissensbasis zu Pictures
Mail-
die mit dem Wissenseditor verursachten Änderungen aufteilt:
• Die neu erzeugten O b j e k t e ob] ect-plcture-thomas, ob] e c t - p i c t u r e - a n n a usw. werden der Wissensbasis MailPictures zugeordnet, weil M a l l P i c t u r e s als Instanzenwissensbasis von ZooPictures spezifiziert wurde. • Die restlichen neu erzeugten O b j e k t e anna, private, in-folder werden in der Wissensbasis M a i l O b j e c t s notiert.
etc.
• Die Änderungen an den O b j e k t e n letter und 1 - 2 5 werden in M a i l Ob] ects notiert, da sie zu deren Inhalt gehören. • Die Löschung des O b j e k t s a n n a und des zugehörigen Darstellungsobj e k t s ob] e c t - p i c t u r e - a n n a wird jeweils in der Wissensbasis festgehalten, zu der das O b j e k t gehört.
5
contents = 1-25
214
Systeme zur Programmierunterstützung
Die Zuordnung von Änderungen basiert auf Regeln, die in den meisten Fällen das vom Benutzer gewünschte Ergebnis liefern. Hat der Benutzer jedoch Absichten, die von den behandelten Standardfällen abweichen, so können sie zu unerwünschten Zuordnungen führen. Die durch die Wissenserwerbskomponente veränderten Wissensbasen sind in Abbildung 8 zu sehen. Der Benutzer wird sie sich am Ende der Sitzung betrachten und überprüfen, ob die von ihm gewünschten Objekte, keines mehr und keines weniger, bei der richtigen Wissensbasis zum Abspeichern vorgemerkt wurden. Sollte er mit dem Ergebnis nicht zufrieden sein, kann er die Wissensbasis jederzeit wie in Abschnitt 2.2 beschrieben seinen Wünschen entsprechend verändern, bevor er sie abspeichert.
H3
Active KB:Mail Pictures Instances of ZooPictures Required KBs
^o^im^Uu^^uT^^der slot-picture-contents object-picture-private c1ass-picture-folder object-picture-thomas object-picture-michael object-picture-John object-picture-mai1-in object-picture-1-25 object-picture-1-24 object-picture-1-23 object-p i ctur e-12jan87 slot-picture-text s1ot-picture-subject slot-picture-sender slot-picture-receiver slot-picture-date slot-picture-contents method-picture-send method-picture-edit met hod-p i ctur e-d e1et e class-picture-mailbox class-picture-letter c lass-picture-person class-picture-date
I mod if i ed-obj ects : jdeleted-objects: s lot-picture-in-toIder aobject-picture-anna slot-picture-contents object-picture-pr ivate class-picture-folder object-pi cture-anna object-picture-thomas Active KB:Ma1lobjects Required KBs
contents:
Iin-folder •contents !pr ivate •folder |jljan87 Il2jan87 |5jan87 Ithomas Ijohn
m
Imodified-objectsfdeleted-objects:
I I -2S •letter !in-folder |contents Ipr ivate Ifolder lanna
11-23
ll-24 11 -25 WWW
Abbildung 8.
Die Wissensbasen MailObjects und MailPlctures am Ende des Wissenserwerbsvorgangs.
215
OBJBASE
3. W i s s e n s b a s e n und W i s s e n s e r w e r b Im vorhergehenden
Abschnitt w u r d e erläutert, wie sich Wissensbasen
Benutzer darstellen und wie er mit ihnen interagieren k a n n .
dem
Im folgenden
soll auf die zugrundeliegenden K o n z e p t e der Wissensverwaltung u n d die Methodik des Wissenserwerbs eingegangen werden.
3.1 D a s K o n z e p t
Wissensbasis
Das grundlegende Konzept von OBJBASE ist die Wissensbasis.
U n t e r einer
Wissensbasis versteht man eine Menge von O b j e k t e n , die gemeinsam verwaltet werden.
Das bedeutet, daß diese O b j e k t e an einer gemeinsamen
Stelle
abgespeichert
sind, einen gemeinsamen Besitzer haben
Frage
und daß die
der Zugriffsberechtigung f ü r diese O b j e k t e gemeinsam geregelt wird. Wissensbasen
bauen
auf sog. Grundlagenwissensbasen
Fenster Requiered KBs dargestellt).
auf
(sie werden
im
Die Grundlagenwissensbasen einer Wis-
sensbasis definieren die F u n k t i o n a l i t ä t des Systems, auf das die Wissensbasis aufsetzt.
Sie e n t h a l t e n Objekte, die von den O b j e k t e n der Wissensbasis an-
gesprochen werden, die aber nicht in der Wissensbasis selbst definiert sind. Sind zum L a d e z e i t p u n k t einer Wissensbasis die O b j e k t e ihrer
Grundlagen-
wissensbasen nicht vorhanden, so werden diese zuerst geladen.
W e r d e n bei-
spielsweise die Superklassen einer Klasse nicht in derselben Wissensbasis definiert wie die Klasse selbst, so gehören die Wissensbasen, in denen sie definiert werden,
zu den Grundlagenwissensbasen
der Wissensbasis.
Die Wis-
sensbasis Zoo stellt z.B. die nötige G r u n d f u n k t i o n a l i t ä t zur V e r f ü g u n g ,
um
die in Mail enthaltenen O b j e k t e zu definieren. Wissensbasen können aus Teilwissensbasen
bestehen (sie werden im F e n s t e r
P a r t s dargestellt).
Die Menge der in einer Wissensbasis e n t h a l t e n e n
te, d.h. ihr Inhalt,
setzt sich aus den lokal in der Wissensbasis e n t h a l t e n e n
O b j e k t e n und den in den Teilwissensbasen e n t h a l t e n e n O b j e k t e n (siehe A b b i l d u n g
9).
Die O b j e k t e , die in den Teilwissensbasen
sind, werden von diesen „ e r e r b t " ; die ererbten
O b j e k t e können
Objek-
zusammen enthalten wiederum
von Teilwissensbasen ererbt sein. Das
Konzept
der
Grundlagen-
und
Teilwissensbasen
bungsmöglichkeit für die Abhängigkeiten gung.
Dadurch
stellt
zwischen Wissensbasen
kann das Gesamtwissen eines Systems in
Wissensgebiete oder Anwendungsbereiche
eine
unterteilt
werden.
Beschreizur V e r f ü -
unterschiedliche So bildet
die
216
Systeme zur
Programmierunterstützung
Mail
Die Wissensbasis Mail m i t ihren Teilwissensbasen len O b j e k t e n .
Abbildung 9.
und
loka-
Wissensbasis Zoo, die ihrerseits aus m e h r e r e n Teilwissensbasen b e s t e h t , n i c h t n u r die G r u n d l a g e der Wissensbasis Mail, s o n d e r n
a u c h die a n d e r e r
Wis-
sensbasen (z.B. Computers), die ebenso in Teilwissensbasen a u f g e t e i l t sind.
ZooPictures
Abbildung 10.
OBJBASE
Die I n s t a n z e n w i s s e n s b a s e n MailPlctures der Klassenwissensbasis ZooPictures.
unterscheidet
wissensbasen.
des
weiteren
Instanzenwissensbasen
Klassenwissensbasen Jede
MailPictures
sowohl
Instanzenwissensbasis
Instanzen hat
eine
Klassenwissensbasen enthalten als auch
nur Klassen
korrespondierende
enthält
Instanzen
und
Instanzen-
Instanzen, enthalten
während können.
Klassenwissensbasis.
Eine Instanzenwissensbasis e n t h ä l t
nur Instanzen der Klassen, die in
Klassenwissensbasis d e f i n i e r t sind.
Ein Beispiel h i e r f ü r stellt die
wissensbasis
MailPlctures
dar,
die n u r
ZooPictures e n t h ä l t (siehe A b b i l d u n g 10).
Instanzen
der
dieser
Instanzen-
Klassenwissensbasis
217
OBJBASE In Instanzenwissensbasen henden Konzepten,
Pictures
getrennt
die in der korrespondierenden
halten sind, repräsentiert. sen aus anderen
wird Faktenwissen
von den
dahinterste-
Klassenwissensbasis
D a d u r c h können K o n z e p t e auch auf
Anwendungsbereichen
angewendet
werden.
Da
die allgemeinen Konzepte zur Darstellung von O b j e k t e n
von den F a k t e n der Wissensbasis M a i l P i c t u r e s
ent-
Faktenwisin
Zoo-
separat
repräsentiert werden,
kön-
nen mit d e m System ZOO auch andere Wissensbasen visualisiert werden.
3.2 B e a r b e i t u n g s z u s t ä n d e v o n
Wissensbasen
Die Bearbeitung einer Wissensbasis heißt, den Inhalt, die Eigenschaften oder die Beziehungen zu anderen Wissensbasen zu v e r ä n d e r n .
Veränderungen
am
Inhalt können durch den Benutzer oder durch die Wissenserwerbskomponente von OBJBASE d u r c h g e f ü h r t werden.
Die in einem laufenden System gela-
denen Wissensbasen können sich in unterschiedlichen befinden:
Eine Wissensbasis kann aktiv,
geöffnet,
Bearbeitungszuständen
geschlossen
oder
geladen
sein. • Eine Wissensbasis, die sich in Bearbeitung befindet, wird als aktiv bezeichnet. N u r an aktiven Wissensbasen können Ä n d e r u n g e n vorgen o m m e n werden. • Soll eine Wissensbasis zwischenzeitlich nicht mehr v e r ä n d e r t werden, so wird sie deaktiviert. D a n n zählt sie nur noch zu den offenen Wissensbasen. Offene Wissensbasen sind zwar zum Bearbeiten geöffnet, werden jedoch m o m e n t a n nicht bearbeitet. Sie können Modifikationen e n t h a l t e n , die z u m Abspeichern vorgemerkt sind. • Soll eine Wissensbasis nicht weiter bearbeitet werden, so wird sie geschlossen. Die vorgemerkten Ä n d e r u n g e n werden dabei abgespeichert. Der Benutzer k a n n jedoch auch auf das Abspeichern verzichten. Danach werden die Listen der zum Abspeichern und zum Löschen vorgem e r k t e n O b j e k t e zurückgesetzt. • Wissensbasen können auch nur geladen sein. Die in einer geladenen Wissensbasis e n t h a l t e n e n O b j e k t e befinden sich im laufenden System u n d können angesprochen werden. Der Benutzer k a n n stets nur eine Wissensbasis editieren.
Um
anzuzeigen,
welche Wissensbasis er im Moment verändern möchte, aktiviert er sie.
Sie
wird d a n n - sofern noch nicht geshehen - geladen und zum Bearbeiten geöffnet. die
Will der Benutzer eine andere Wissensbasis aktivieren, so k a n n er
Bearbeitung
der
gerade
aktiven
Wissensbasis
jederzeit
ohne die g e m a c h t e n Ä n d e r u n g e n abgespeichern zu müssen.
unterbrechen,
Die deaktivierte
218
Systeme zur Programmierunterstützung
Wissensbasis kann dann nicht mehr verändert werden und ist somit vor irrtümlichen Veränderungen geschützt. Durch erneutes Aktivieren der Wissensbasis kann die Bearbeitung zu einem späteren Zeitpunkt wieder aufgenommen werden. Abbildung 11 zeigt die möglichen Zustände.
bearbeiten
Abbildung 11.
Die möglichen Zustände von Wissensbasen.
Mit dem Schließen der Wissensbasis wird eine Bearbeitungphase beendet. Die Änderungen können dabei abgespeichert werden. Dadurch ensteht eine neue Version der Wissensbasis. Soll eine Wissensbasis auf ihren Ausgangszustand zurückgesetzt werden, so kann sie auch geschlossen werden, ohne Veränderungen abzuspeichern. Die Bearbeitung der Wissensbasis kann wieder aufgenommen und eine neue Bearbeitungsphase eröffnet werden, indem die Wissensbasis wieder geöffnet wird.
3.3 Der
Wissenserwerbsvorgang
Die Fähigkeit zu Lernen ist die Grundvoraussetzung für intelligentes Verhalten. Ein Teilaspekt ist der Erwerb von neuem Wissen. Wissenserwerb kann definiert werden als Lernen neuer symbolischer Information zusammen mit der Fähigkeit, diese Information auf effektive Weise anzuwenden [Michalski, Carbonell, Mitchell 83]. Maschinelle Wissenserwerbskomponenten unterscheiden sich hinsichtlich des Automatisierungsgrads des Wissenserwerbsvorgangs. Die Wissenserwerbskomponente von OBJBASE liegt in der Mitte dieses Spektrums, da sie sowohl das automatische als auch das manuelle Verändern von Wissensbasen erlaubt. Zusätzlich hat der Benutzer mehrere Möglichkeiten, den automatischen Wissenserwerb steuernd und kontrollierend zu beeinflussen. Der Wissenserwerb vollzieht sich in Kooperation zwischen Benutzer und Wissenserwerbskomponente. Die Wissenserwerbskomponente von OBJBASE ermöglicht es dem Benutzer, das in einem System enthaltene Gesamtwissen an beliebigen Stellen zu verändern, ohne darauf achten zu müssen, zu welcher Wissensbasis die veränderten Objekte gehören. Die Wissenserwerbskomponente hat die Aufgabe,
219
OBJBASE
die vom Benutzer an den Objekten vorgenommenen Änderungen festzustellen und zu beurteilen, ob es sich dabei um Änderungen handelt, die abgespeichert werden sollten. Diese als relevant beurteilten Änderungen werden dann den geeigneten Wissensbasen zugeordnet, so daß sie auf Wunsch des Benutzers später abgespeichert werden können. Dieser Wissenserwerb vollzieht sich in vier Phasen: 1. Objektüberwachung 2. Relevanzbeurteilung 3. Objektzuordnung 4. Abspeichern der Wissensbasis
3.3.1 D i e
Objektüberwachung
Wie anhand des Beispieldialogs gezeigt wurde, ist es für den Benutzer ein großer Aufwand, alle im Laufe einer Sitzung vorgenommenen Veränderungen zu notieren, damit sie abgespeichert werden können, vor allem wenn es sich um eine große Objektmenge handelt. Dies um so mehr, als durch Änderungen, die der Benutzer an einem Objekt durchführt, oft indirekt andere Objekte verändert werden, ohne daß sich der Benutzer dessen bewußt ist. überwacht auf Wunsch des Benutzers das Erzeugen von neuen Objekten sowie das Löschen und Verändern von bestehenden O b j e k t e n 6 . Objekte können auf recht unterschiedliche Art und Weise manipuliert werden. Der Benutzer kann Objekte direkt manipulieren, indem er ihnen entsprechende Nachrichten schickt. Objekte können aber auch indirekt manipuliert werden, indem durch die Interaktionen über die Benutzerschnittstelle eines Systems derartige Nachrichten versandt werden oder indem Regeln, Trigger oder das Abarbeiten sonstiger Methoden das Versenden solcher Nachrichten auslösen. So wird z.B. beim Erzeugen eines Objektes mit ZOO nicht nur das Objekt selbst, sondern auch ein zugehöriges Darstellungsobjekt erzeugt. O B J B A S E stellt alle Manipulationen fest. Da dies indirekte Manipulationen einschließt, ist O B J B A S E darin dem Benutzer überlegen. OBJBASE
Um die Objektüberwachung durchzuführen, erweitert
OBJBASE
die elementa-
ren ObjTalk-Mechanismen, mit denen Objekte manipuliert werden, und notiert jeweils das von einer Manipulation betroffene Objekt.
Dieses O b j e k t
und
Ändern)
die darauf
ausgeführte Operation
(Erzeugen, Löschen,
dann der Relevanzbeurteilung zur Bewertung übergeben.
® Im folgenden einfach Manipulation
genannt.
wird
220
Systeme zur Programmierunterstützung
Ein Problem ergibt sich daraus, daß der Benutzer wissentlich oder unwissentlich Objekte zerstören kann, die eigentlich zum Abspeichern vorgemerkt sind. Oder daß er ein Objekt verändert, das in einer deaktivierten Wissensbasis zum Abspeichern vorgemerkt ist. Um den Benutzer bei solchen folgenschweren Aktionen warnen zu können, Uberwacht OBJBASE zusätzlich alle Objekte, die bei den offenen Wissensbasen zum Abspeichern vorgemerkt sind. Wird auf eines dieser Objekte eine verändernde oder zerstörende Operation ausgeführt, so erhält der Benutzer eine Mitteilung und k a n n vor Ausführung der Aktion das Objekt abspeichern.
3.3.2 D i e
Relevanzbeurteilung
Bei den von der Objektüberwachung festgestellten Änderungen handelt es sich nicht nur um solche, die der Benutzer abspeichern möchte. Änderungen werden auch zu Testzwecken vorgenommen oder entstehen bei der Interaktion mit den Werkzeugen der Programmierumgebung. Insgesamt kann man die vorkommenden Änderungen in vier Gruppen einteilen: • gewünschte Änderung an der aktiven Klassenwissensbasis • gewünschte Änderung einer aktiven Instanzenwissensbasis • Änderungen, die durch das Arbeiten grammierumgebung entstehen
mit den Werkzeugen
der
Pro-
• Änderungen zu Testzwecken oder sonstiges temporäres Wissen Das Ziel der Relevanzbeurteilung ist es, herauszufinden, welche der von der Objektüberwachung festgestellten Änderungen abgespeichert werden müssen, damit der Benutzer alle von ihm benötigten Objekte bei einem späteren Laden in der gewünschten Form wieder vorfindet.
Ihre Aufgabe ist es, die
Änderungen am laufenden System dahingehend zu beurteilen, ob sie fristig
länger-
interessant sind und ob sie zum Wissen gehören, das der Benutzer
einbringen möchte.
Die Manipulation eines Objekts sollte dann als relevant
betrachtet werden, wenn dadurch • ein Objekt entsprechend den Absichten des Benutzers verändert wird, • ein „falsches" Objekt gelöscht oder durch ein richtiges ersetzt wird, • ein neues Objekt hinzugefügt wird, das einen Teil des einzubringenden Wissens repräsentiert.
221
OBJBASE
Es zeigt sich, daß die Beurteilung der Relevanz stark von den des Benutzers abhängt.
Der Benutzer hat mehrere Möglichkeiten sie der
Wissenserwerbskomponente Wissensbasen
bestimmt
Absichten
er,
mitzuteilen:
Durch die Festlegung der
welche
er
Objektmengen
verändern
aktiven möchte.
Durch das Einschalten des Protokolls teilt der Benutzer mit, daß er nun Änderungen vorzunehmen wünscht, die abgespeichert werden sollen.
Möchte
er Änderungen nur zu Testzwecken vornehmen - die also längerfristig nicht interessant sind - so schaltet er das Protokoll aus. Die Relevanzbeurteilung geht von der Annahme aus, daß die vom Benutzer beabsichtigten Manipulationen die aktiven Wissensbasen
verändern.
Dazu
stellt sie fest, in welcher Beziehung die von der Objektüberwachung festgestellten Änderungen zu den aktiven hen.
Objekten
und den aktiven
Klassen
ste-
Aktive Objekte bzw. Klassen werden wie folgt bestimmt:
• Ein Objekt ist aktiv, wenn es in einer aktiven Wissensbasis enthalten ist. • Eine Klasse ist aktiv, o wenn sie in der Menge der aktiven Objekte enthalten ist oder o wenn sie in einer Wissensbasis enthalten ist, die korrespondierende Klassenwissensbasis einer aktiven Instanzenwissensbasis ist. Zur Durchführung der Relevanzbeurteilung wird derzeit auf Heuristiken zurückgegriffen, die vom zu modellierenden Wissen unabhängig sind 7 .
Sie er-
lauben deshalb nur eine annäherungsweise richtige Beurteilung der Relevanz. Bei eingeschaltetem Protokoll wird anhand folgender Heuristiken die Relevanz von Änderungen bestimmt: • Eine Änderung ist relevant, wenn sie ein in der Menge der aktiven Objekte enthaltenes Objekt verändert, ersetzt oder löscht. Im Beispieldialog: l e t t e r (verändern), anna (löschen). • Wird ein neues Objekt erzeugt, so ist dies relevant, wenn es eine Klasse oder Instanz einer aktiven Klasse ist. Im Beispieldialog: f o l d e r (Klasse), o b j e c t - p l c t u r e - t h o m a s und p r i v a t e (Instanzen der aktiven Klassen o b j e c t - p i c t u r e bzw. f o l d e r ) .
7
Der B e g r i f f H e u r i s t i k w i r d v e r w e n d e t , da es sich u m R e g e l n h a n d e l t , die z w a r in d e n m e i s t e n , j e d o c h n i c h t in allen F ä l l e n die R e l e v a n z e n t s p r e c h e n d d e n B e n u t z e r a b s i c h t e n beurteilen.
222
Systeme zur Programmierunterstützung
3.3.3 Die
Objektzuordnung
Wurde eine Änderung als relevant beurteilt, so muß das betroffene O b j e k t bei der zugehörigen Wissensbasis notiert werden, so daß die Änderung zum Abspeichern vorgemerkt wird. Dazu ist von jedem Objekt bekannt, zu welcher Wissensbasis es gehört. Bei neu erzeugten Objekten ist es zunächst unklar, in welcher Wissensbasis sie abgespeichert werden sollen. Sie werden anhand folgender Heuristiken zu Wissensbasen zugeordnet: • Klassen werden der aktiven Klassenwissensbasis zugeordnet. spieldialog:
Im Bei-
folder —• MailObjects.
• Instanzen aktiver Klassen werden der Instanzenwissensbasis zugeordnet, in deren korrespondierenden Klassenwissensbasis die Klasse enthalten ist.
I m B e i s p i e l d i a l o g : o b j e c t - p i c t u r e - p r i v a t e —• M a i l P i c t u r e s .
• Instanzen der in der aktiven Klassenwissensbasis enthaltenen Klassen werden der aktiven Klassenwissensbasis zugeordnet, sofern sie zu keiner Instanzenwissensbasis korrespondiert. Im Beispieldialog: private -• M a i l O b j e c t s .
3.3.4 A b s p e i c h e r n einer W i s s e n s b a s i s Soll eine Wissensbasis abgespeichert werden, die mit Hilfe der Wissenserwerbskomponente verändert wurde, so sollte der Benutzer zuvor die Menge der zum Abspeichern vorgesehenen Objekte auf ihre Vollständigkeit und Richtigkeit überprüfen. Das ist deshalb nötig, weil die bei der Relevanzbeurteilung und der Objektzuordnung eingesetzten Heuristiken nur annäherungsweise richtige Ergebnisse liefern können. Hat der Benutzer die nötigen Korrekturen vorgenommen, so kann er die Wissensbasis abspeichern. Es werden dann alle dort protokollierten Änderungen abgespeichert, wobei eine neue Version der Wissensbasis angelegt wird.
3.4 K o o p e r a t i o n z w i s c h e n und B e n u t z e r
Wissenserwerbskomponente
Die von der Wissenserwerbskomponente angelegten Änderungsnotizen sind als Vorschläge zu betrachten. Der Benutzer kann den erzeugten Vorschlag jederzeit kontrollieren und von Hand modifizieren, bis alle gewünschten Objekte zum Abspeichern vorgemerkt sind. Die Qualität der Vorschläge kann verbessert werden, wenn der Benutzer der Wissenserwerbskomponente seine Absichten mitteilt und dadurch den Wissenserwerbsvorgang steuert.
223
OBJBASE
3.4.1 S t e u e r u n g des W i s s e n s e r w e r b s Der Benutzer kann sowohl auf die Relevanzbeurteilung als auch auf die Objektzuordnung Einfluß nehmen. Folgende Mittel stehen ihm dabei zur Verfügung • Ein-/Ausschalten des Protokolls • Aktivieren/Deaktivieren von Wissensbasen • Hinzufügen/Löschen von Objekten bzw. Teilwissensbasen Durch Ein- bzw. Ausschalten des Protokolls kann der Benutzer die Relevanz von Aktionen bestimmen. Bei eingeschaltetem Protokoll werden beim Durchführen einer Aktion sämtliche durch sie bewirkte Manipulationen hinsichtlich ihrer Relevanz beurteilt und bei den geeigneten Wissensbasen protokolliert. Bei ausgeschaltetem Protokoll werden alle vorgenommenen ManiWenn pulationen als irrelevant eingestuft und deshalb nicht protokolliert. der Benutzer zum Durchführen von Tests Objekte manipulieren möchte, kann er das Protokoll ausschalten und so die von ihm bearbeiteten Wissensbasen vor ungewollten Veränderungen schützen. Er sollte das Protokoll auch abschalten, wenn er genau weiß, daß seine nächste Aktion nur Auswirkungen hat, die von kurzfristigem Interesse sind. Manche Programmierwerkzeuge erweitern alle im System vorhandenen Objekte derart, daß sie durch das Werkzeug bearbeitet werden können. Diese Änderungen sind jedoch nur von Bedeutung, solange das Werkzeug benutzt wird, und brauchen deshalb nicht abgespeichert zu werden. Durch Aktivieren
und
Deaktivieren
von Wissensbasen
kann der
Benutzer
die Menge der aktiven Objekte bestimmen, d.h. er legt fest, bei Objekten Veränderungen protokolliert werden sollen.
welchen
Er wird alle die Wis-
sensbasen aktivieren, von denen er annimmt, daß die darin enthaltenen Objekte zur Modellierung des neu einzubringenden Wissens verändert müssen. zungen
Als relevant eingestufte Veränderungen,
Löschungen
oder
werden Erset-
von Objekten werden der Wissensbasis zugeordnet, die das betroffe-
ne O b j e k t enthält. Durch Aktivieren bzw. Deaktivieren von Wissensbasen wird auch der Erwerb von neuen Objekten gesteuert. Indem der Benutzer die aktiven Klassen festlegt, bestimmt er, welche der neu erzeugten Instanzen als relevant eingestuft werden. Möchte der Benutzer Instanzen erzeugen, so kann er diese entweder der Klassenwissensbasis, in der die benötigten Klassen enthalten sind, zuordnen lassen oder einer separaten Instanzenwissensbasis.
Systeme zur Programmierunterstützung
224
Hierfür muß er entweder die Klassenwissensbasis oder die Instanzenwissensbasis aktivieren. Er erreicht dadurch, daß die Klassen, die er instantiieren möchte, aktiviert und somit die davon erzeugten Instanzen notiert werden. Will der Benutzer neu erzeugte Klassen notieren lassen, so muß er eine Klassenwissensbasis aktivieren, die die neuen Klassen aufnehmen soll. Mit der Festlegung der aktiven Klassenwissensbasis (es kann zu jedem Zeitpunkt nur eine Klassenwissensbasis aktiv sein) gibt er an, wie die Wissensbasis heißen soll, die die Konzepte des neu zu modellierenden Wissens a u f n e h m e n soll. Wechselt er das Wissensgebiet, muß er eine andere Klassenwissensbasis aktivieren. Durch Hinzu fügen oder Löschen von Objekten bzw. Teilwissensbasen bei einer aktiven Wissensbasis kann der Benutzer ebenfalls die Menge der aktiven Objekte verändern. Muß der Benutzer in Zusammenhang mit dem Erstellen einer Wissensbasis ein Objekt verändern, das in einer anderen Wissensbasis enthalten ist, so hat er zwei Möglichkeiten das Objekt abzulegen: Er kann das Objekt entweder der Wissensbasis zuordnen lassen, die es lokal enthält; dazu muß er diese kurzzeitig aktivieren. Dies ist z.B. bei einer Fehlerkorrektur sinnvoll, wenn das Objekt fortan nur noch in seiner veränderten Form verwendet werden soll. Oder er möchte, daß die Änderung auf der Wissensbasis abgespeichert wird, die er gerade erstellt; dann muß er das veränderte Objekt zu dieser Wissensbasis hinzufügen. Die Änderung des Objekts gilt dann nur in Zusammenhang mit dieser Wissensbasis. Will der Benutzer mehrere Objekte hinzufügen, die alle in derselben Wissensbasis enthalten sind, so muß er nicht jedes O b j e k t einzeln hinzufügen, sondern es genügt die Wissensbasis als Teilwissensbasis hinzuzunehmen. Alle Änderungen an den Objekten der Teilwissensbasis werden dann bei der übergeordneten Wissensbasis zum Abspeichern vorgemerkt. Durch Hinzu fügen
oder Löschen
von Klassen
bzw. Teilwissensbasen
zu ak-
tiven Wissensbasen kann der Benutzer die Menge der aktiven Klassen verändern und so den Erwerb von Instanzen beeinflußen.
Indem der Benutzer
neuen Klassen zu einer aktiven Klassenwissensbasis hinzufügt, erreicht
er,
daß auch die Instanzen der neu hinzugefügten Klassen in der aktiven Klassenwissensbasis notiert werden.
Durch das Hinzufügen von Klassen zu einer
Wissensbasis, die zu einer aktiven Instanzenwissensbasis korrespondiert, wird erreicht, daß auch die Instanzen der neu hinzugefügten Klassen in der aktiven Instanzenwissensbasis das Löschen.
notiert
werden.
Entsprechendes gilt jeweils für
225
OBJBASE
Mit diesen Mitteln zur Steuerung des Wissenserwerbs kann der Benutzer explizite Angaben zur Relevanz von Aktionen machen, die Menge der aktiven Objekte, d.h. die Menge der Objekte, deren Veränderung protokolliert werden soll, bestimmen und er kann die Relevanzbeurteilung von Instanzen beeinflussen.
3.4.2 K o n t r o l l e des
Wissenserwerbs
Die Ergebnisse des Wissenserwerbsvorgangs stellen Vorschläge dar, die die meisten der abzuspeichernden Objekte enthalten. Da die Relevanzbeurteilung und die Objektzuordnung auf dem Einsatz von Heuristiken beruhen, können in geringem Umfang Fehlnotierungen auftreten. Der Benutzer k a n n die Änderungsnotizen in den einzelnen Wissensbasen jederzeit kontolüeren und die geringfügigen Korrekturen durchführen. Ein Fehler bei der Relevanzbeurteilung bedeutet, daß die Veränderung zwar bemerkt, aber ihre Relevanz falsch beurteilt wurde. Hierbei sind zwei Fehlerarten zu unterscheiden: Einfach zu beheben sind Fehler, bei denen eine Änderung fälschlicherweise als relevant eingestuft wurde. Hierfür muß das Objekt nur aus dem Inhalt oder aus der Liste der modifizierten Objekte der Wissensbasis entfernt werden, zu der die Änderung zugeordnet wurde. Eine fälschlicherweise als irrelevant eingestufte Änderung ist dagegen nur zu beheben, wenn der Benutzer den Fehler bemerkt hat und von der Änderung Kenntnis hat. Um den Fehler zu beheben, muß er je nach Änderung das betroffene Objekt entweder in die Liste der zu löschenden oder in die Liste der abzuspeichernden Objekte eintragen. Wurde ein O b j e k t der falschen Wissensbasis zugeordnet, so muß es entfernt und der richtigen Wissensbasis zugeordnet werden.
4. Z u s a m m e n f a s s u n g und A u s b l i c k OBJBASE stellt ein System zur Verwaltung von Wissensbasen dar. Ein Aspekt der Verwaltung, das Einbringen von neuem Wissen in ein System, wurde in diesem Beitrag ausführlich dargestellt. Die dabei a u f t r e t e n d e n Probleme der Strukturierung des neu einzubringenden Wissens wurden erläutert und als Lösungsmöglichkeit der kooperative Wissenserwerb vorgestellt. Dabei können zwischen der alleinigen Veränderung von Wissensbasen durch den Benutzer und der vollautomtischen Manipulation durch eine Wissenserwerbskomponente verschiedene Stufen der Kooperation von Benutzer und System gewählt werden.
226
Systeme zur Programmierunterstützung
Diese Kooperation zwischen System und Benutzer ist unter anderem deshalb notwendig, weil die Wissenserwerbskomponente Heuristiken verwendet, u m neues Wissen den einzelnen Wissensbasen zuzuordnen, die noch einer starken Überwachung durch den Benutzer bedürfen. Die Überwachung ist nötig, weil die Heuristiken subjektive Kriterien der Zuordnung unberücksichtigt lassen. Ein erster Schritt zu einer Verbesserung wäre, dem Benutzer die Möglichkeit zu geben, subjektive Zuordnungskriterien zu formulieren, die von der Wissenserwerbskomponente von OBJBASE verwendet werden können.
Baukästen für Benutzerschnittstellen
Visival
XIII VISrVAL E i n B a u k a s t e n für Bildschirm-Instrumente Michael Herczeg
Die eine ben sind
Arbeit mit interaktiven Computersystemen ist gekennzeichnet durch dichte, alternierende Abfolge von Eingaben des Benutzers und Ausgades Systems. Die Protokolle, d.h. die Regeln, die diesen Dialog leiten, im Computerprogramm festgeschrieben.
Die Erstellung eines interaktiven Anwendungssystems auf einem Computer setzt sich somit aus wenigstens zwei Teilaufgaben zusammen: zum einen aus der Bereitstellung der eigentlichen Anwendungsfunktionalität und zum anderen aus deren Anbindung an die Ein-/Ausgabegeräte. Insbesondere die Programmierung der Ein-/Ausgabe, man spricht vom Bau der Benutzerschnittstelle, läßt sich durch die Bereitstellung anwendungsneutraler und damit wiederverwendbarer Bausteine deutlich vereinfachen. Durch die Verwendung leistungsfähiger und individualisierbarer Bausteine lassen sich Benutzerschnittstellen schneller, konsistenter und trotzdem problemangemessener erstellen. Am Beispiel des Baukastens VlSIVAL mit Bausteinen zur vorwiegend graphischen Ein- und Ausgabe numerischer Daten soll diese Vorgehensweise verdeutlicht werden.
1. E i n l e i t u n g Typische Anwendungen, in denen die graphische Ein- und Ausgabe numerischer Werte eine problemangemessene Interaktionsform ist, sind vor allem die Überwachung und Steuerung realer oder simulierter Prozesse. Die Medien zur Ausgabe numerischer Werte nennt man in tradionellen - nicht zwangsläufig computergestützten - Anwendungen Instrumente. Die Darstellungen solcher Instrumente auf dem Computerbildschirm werden im folgenden ebenfalls Instrumente genannt. Diese können allerdings gegenüber ihren mechanischen ,,Vorbildern" gleichzeitig zur Werteingabe und Wertausgabe benutzt werden.
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter Sc Co. • Berlin • N e w York
230
Baukästen für Benutzerschnittstellen
Als Anwendungsbeispiel dient ein Monitor zur Überwachung wichtiger Zustandsparameter des Betriebssystems UNIX auf einem Rechner des Typs VAX 11/780. Beim VAX/UNIX-Monitor handelt es sich u m ein reines Kontrollwerkzeug; die Eingabe von Werten wird daher nicht betrachtet werden. Dieses Beispiel ist repräsentativ für eine große Klasse von Anwendungen. Uberall dort, wo heute Menschen vor Instrumenten sitzen, um den Ablauf eines Prozesses zu kontrollieren, können sich in Zukunft Bildschirme mit Darstellungen von Instrumenten befinden, die genauer, flexibler, leichter modifizierbar, abnutzungsfrei und unzerstörbar die wichtigsten Kenndaten der Prozesse darstellen. Als Prototyp eines Baukastens zur Erstellung von Bildschirminstrumenten dient das System VlSIVAL1. Verwandte Arbeiten finden sich in den Systemen LOOPS [Stefik, Bobrow 86], KEE [KEE 85] und STEAMER [Hollan, Hutchins, Weitzmann 84].
2. Der
VAX/UNIX-Monitor
Am Beispiel der Bedienoberfläche einiger K o m m a n d o s des UNIX-Betriebssystems soll gezeigt werden, wie ein Baukasten zum Bau von Benutzerschnittstellen gestaltet werden kann.
2.1 Das P r o b l e m aus B e n u t z e r s i c h t Im UNIX-Betriebssystem gibt es eine Reihe von Dienstprogrammen, die einen Einblick in das Verhalten des Betriebssystems erlauben. Ein solcher Einblick ist notwendig, um das Betriebssystem möglichst gut an die ablaufenden Anwendungsprogramme anpassen zu können. Durch das Dienstprogramm v m s t a t [UNIX 83] läßt sich beispielsweise das Paging-, Ein-/Ausgabe- und Time-Sharing-Verhalten sowie die Auslastung des Rechners kontrollieren (Abbildung 1). Das Dienstprogramm ps zeigt die Verteilung der Rechnerressourcen auf die Benutzer (Abbildung 2). Die Zahlenkolonnen der beiden Programme enthalten die zur Kontrolle von UNIX notwendigen Daten. Die Tabellen werden auf dem Bildschirm ,,gescrollt", d.h. neue Tabellenzeilen schieben die vorausgehenden Darstellungen nach oben und lassen die Zeilen am oberen Bildschirmrand verschwinden.
' Das S y s t e m VIS[VAL w u r d e f i n d e t sich in [ S t e n g e r 8 6 ] .
von H.-D. S t e n g e r e r s t e l l t . Eine a u s f u h r l i c h e B e s c h r e i b u n g Viele Bilder dieses B e i t r a g s s t a m m e n a u s dieser A r b e i t .
231
VisrvAL
Das Herausfiltern und Interpretieren dieser Daten fällt selbst Systemspezialisten schwer.
Dies gilt insbesondere für das Abschätzen des zeitlichen sowie das Ergründen
Sy-
von Ursache und Wirkung.
Gründe
dafür sind die eigenwillige Codierung der Daten, die Einbettung
wichtiger
stemverhaltens
in unwichtige Daten, der Umfang der Daten und die aus diesen Bedingungen resultierende Uberforderung des visuellen Aufnahmevermögens
und
dächtnisses des Betrachters.
csh(167): vastat 2 20 procs menory r b w Avm fre re at 1 0 0 1428 752 3 0 1 0 0 1480 709 0 0 1 0 0 1480 709 0 0 0 0 0 1343 724 0 G 0 0 0 1343 724 0 0 0 0 0 1343 724 0 0 2 0 0 1368 730 0 0 2 0 0 1368 730 0 3 0 0 0 1321 706 0 1 0 0 0 1321 706 0 0 1 0 0 1423 716 4 0 1 0 0 1423 716 2 0 1 0 0 1423 716 5 0 1 1 0 1744 662 3 0 1 1 0 1744 662 1 0 1 0 0 2156 551 0 G 1 0 0 21S6 551 0 0 1 0 0 2156 551 0 0 1 0 a 2152 448 0 0 1 II n 215? 44A n n Abbildung 1.
Pf 1 1 0 G 0 0 0 3 2 2 3 5 9 a 20 30 26 18 12 7
po 1 0 0 0 0 0 0 0 0 0 0 0 G G 0 0 1S 13 8 5
fi
page disk faults de sr r0 ho hl X3 in sy a 2 2 1 1 0 172 37 0 0 G 0 3 0 231 215 0 0 0 0 0 G 502 155 0 0 0 a 0 G 351 105 0 0 2 0 0 0 264 77 0 0 0 i 0 0 212 55 0 G G 2 3 0 164 83 0 0 G 3 14 0 313 74 0 0 a 0 0 G 253 64 0 a 2 4 0 G 203 65 0 0 1 3 0 0 160 64 0 0 7 11 1 0 127 102 a 0 14 7 17 G 123 111 a 0 5 13 4 G 169 148 0 0 0 49 0 0 152 114 G 3 1 47 0 G 146 79 G 36 5 19 3 0 125 57 0 32 a 3 6 G 102 44 a 21 a 3 0 G 82 32 0 1? n n G n 66
es us 16 27 17 84 14 0 11 37 12 13 9 22 16 61 25 17 18 14 16 10 15 4 25 12 31 8 41 43 59 10 75 17 68 36 55 73 41 91 111 98
epu sy id 12 61 13 3 13 86 5 58 6 80 8 69 36 3 33 50 5 81 20 70 13 83 45 43 44 48 45 13 30 59 28 55 17 47 14 12 6 3 ? G
Das UNIX-Dienstprogramm v m s t a t .
csh(lSB) : ps -au PIO CPU iMEM sz USER michael 26060 44 . 4 2 0 170 michael 26061 36 8 1 .4 158 joachim 24139 23 .9 4 9 665 juergenh 25800 3 .0 50 9 5763 joachimn 25771 1 9 3 3 443 mart in 26048 0 .2 0 6 114 root 26047 0 1 0 3 57 juergenh 25913 0 .0 3 .7 427 nichael 26003 0 0 3..7 443 notes 24918 0 0 0 6 152 michael 25890 0 0 1 .2 169 joachim* 25752 0 0 5 .0 3809 joachim 24158 0 .0 4 . 1 L320 dor le 23665 0 0 0 0 25 dor le 24141 0 0 0 0 4462 martin 23091 0 0 0 0 1336 kalle 24241 0 .0 0 .0 5432 kalle 23886 0 0 0 .0 595 dor le 25742 0 0 0 0 169 martin 25082 0 0 0 0 101 dor 1 e 23666 0 0 0 . G 542 klaus 25728 0 0 0 . G 101 joachim 25562 0 0 0 G 122 root 25561 0 0 0 . 2 57 Abbildung 2.
fr 0 0 0 0 0 0 0 0 0 0 0 0 G 0 0 0 12 14 10
RSS 139 95 344 3623 227 37 15 256 256 34 77 325 284 0 0 52 0 31 28 9 31 9 9 8
TT STAT 01 R 01 R 10 R 05 S 15 I Pi I Pl I 05 T 01 T 04 I 01 T 15 T 10 T 22 TU 22 TU 20 TU 08 IU 08 TU 22 IU 20 IU 22 TU 11 IU pO IU 1)0 I
TIME COMMAND 0:: 04 bgx -2 vmstat.bgs 0 : 01 ps -au 5 : 11 emacs 4 : 03 elah 1:: 02 emacs test.1 0:: 03 -csh (csh) 0 : 00 /etc/telnetd 0 : 19 emacs ablauf.mss 0:: 06 emacs visival.mss 0:: 15 notes 1:: 08 scbg master 0 : 17 bicjwl isp 0 : 37 7 inform/cmd/post 0:: 26 emacs 2:: 45 snap 0 : 33 post 7 : 39 /inform/demos/help/demo 2 : 22 emacs 0 : 26 schg otello 0 : 00 /hin/csh /inform/cmd/toff 1 : 45 emacs 0 : 00 /bin/csh /inform/cmd/toff 0 : 10 -csh (csh) 0 : 00 /etc/telnetd
Das UNIX-Dienstprogramm ps.
Ge-
232
B a u k ä s t e n f ü r Benutzerschnittstellen
In Abbildung 3 sieht man eine Alternative, den VAX/UNDC-Monitor, der neben anderen die gleichen S y s t e m p a r a m e t e r wie vmstat und ps visualisiert. Die Daten werden durch I n s t r u m e n t e übersichtlich dargestellt, zeitliche Verläufe werden ,,auf einen Blick" sichtbar. chen
visuellen
Wahrnehmungsvermögens
Die hohe Leistung des menschliwird
dabei
ausgenutzt.
Relative
Größen können direkt e r k a n n t werden u n d müssen nicht rechnerisch beitet werden.
erar-
Dort, wo exakte W e r t e von Bedeutung sein können, werden
sie in den I n s t r u m e n t e n zusätzlich zur graphischen Darstellung digital angezeigt.
Die Anzeigen
in den
Instrumenten
verändern
sich dynamisch
V e r ä n d e r u n g der überwachten Größen.
VAX/UNix-Monitor
CPU
Switches
E5B
USER michael mi chae1 m i chae1 joachim k laus dieterm tiara Id dieterm liara Id d ieterh
CPU MEM COMMAND ill 29 monitor 1 PS 21 20 1 /bin/tcsh 11 3 emacs 3 emacs 3 1 2 emacs 0 1 /users/nor 0 12 comobj 0 2 emacs 0 IS bigwlisp
N.
\II
h/
r-\ 1
ME ¿
>h
Frt 13. Nov. 1987
• loa • so
Load Average
User System Idle :/.CPU
Device Interrupts
150 100 -
. load Average
A b b i l d u n g 3.
1/s
i L Reclaims
Der VAX/UNDC-Monitor.
Iklil.-.. Payes In
I-I.L Pages Out
bei
VISIVAL
233
2.2 G r u n d t y p e n v o n
Instrumenten
Im VAX/UNIX-Monitor werden verschiedenartige Instrumente eingesetzt. Sie können nach Darstellungsform, Anzahl der dargestellten Werte und der Sichtbarkeit der zeitlichen Werteentwicklung (Wertehistorie) unterschieden werden.
Darstellungsform Je nach notwendiger Genauigkeit oder Übersichtlichkeit der dargestellten Zahlenwerte lassen sich digitale und analoge Instrumente einsetzen. Digitale Instrumente stellen die Werte in Ziffernschreibweise mit beliebiger Genauigkeit dar; Analoginstrumente zeigen den Zahlenwert graphisch durch einen Zeiger auf einer Skala an. Zeiger und Skala können dabei reichhaltig variiert und damit an die Anwendung und den Benutzer angepaßt werden. Wenn nötig, können Digital- und Analoginstrumente zu einem kombinierten Instrument zusammengesetzt werden (Abbildung 4).
11 u s e r s
Abbildung 4.
Analoges, digitales und kombiniertes Instrument.
A n z a h l der d a r g e s t e l l t e n Innerhalb eines Instruments werden.
Werte
können
auch
mehrere
Zahlenwerte
dargestellt
Dies bietet sich zum Beispiel bei der Darstellung logisch
mengehöriger Werte oder bei Darstellung der zeitlichen Entwicklung
zusameines
Zahlenwerts an (Abbildung 5). Abbildung 5 zeigt links ein Instrument mit der Aufteilung der CPU-Leistung auf Anteile für die Benutzer, für das System und, als eventuell verbleibender Rest, die nicht ausgenutzte Leistung. Die Werte sind jeweils auf 100% bezogen und bilden damit relative Wertdarstellungen, die leicht überblickt werden können. Die Skala spielt hier nur eine untergeordnete Rolle.
234
Baukästen für Benutzerschnittstellen
150 — 100 —
1
SO —
0—
JH.... ILM.... Reclaias
1/s
Abbildung 5.
Ein Instrument Wertehistorien.
mit
Pages In
drei Zahlenwerten
und
iJaL Pages Out
eines mit
drei
Wertehistorien Rechts in Abbildung 5 sieht m a n die zeitliche Entwicklung des Pagingverhaltens der Maschine. Jeder neue Wert wird als schwarzer Balken rechts angehängt. Wird die darzustellende Anzahl der Zahlenwerte (hier zehn) überschritten, so wird der älteste Wert entfernt und die Darstellung nach links verschoben. Die Darstellung der Einzelwerte kann durch verschiedene Zeiger erfolgen; in diesem Beipiel wurden wertproportionale Flächen in F o r m von Balken gewählt.
Manipulierbarkeit visualisierter
Werte
Aus der Erfahrung kennt man vor allem Anzeigeinstrumente. Es k a n n jedoch auch sinnvoll sein, die angezeigten Werte vom Benutzer ändern zu lassen. Bei digitalen Instrumenten kann dies durch Eintippen des gewünschten Werts mittels T a s t a t u r , bei analogen Instrumenten durch Verstellen des Zeigers oder durch Deuten auf einen Zielwert der Skala erfolgen. Dies ist ein wichtiger Vorteil von Bildschirminstrumenten gegenüber mechanischen Instrumenten. Im VAX/UNIX-Monitor könnte man verschiedene Betriebssystemparameter zum Verstellen anbieten, z.B. die maximal zulässige Anzahl von Benutzern im System.
2.3 B e s t a n d t e i l e der
Instrumente
Instrumente lassen sich sowohl konzeptionell als auch nisch in verschiedene Bestandteile zergliedern.
implementierungstech-
In erster Linie sind dies An-
zeigen, Skalen, Beschriftungen, Alarme sowie Über- und Unterlaufanzeigen.
VISIVAL
235
Anzeigen Eine Anzeige ist die eigentliche Visualisierung eines Werts. In digitalen Instrumenten ist dies die dargestellte Zahl, in analogen Instrumenten der Zeiger. Digitale Anzeigen können durch verschiedene Zeichensätze (Fonts) in Größe und Schriftart variiert werden. Die Zahl kann u.a. als Festpunktzahl, Gleitpunktzahl oder Exponentialdarstellung ausgegeben werden. Sie kann zentriert, rechts- oder linksbündig positioniert werden. So lassen sich diese Instrumente an die von der Anwendung abhängigen Wertebereiche anpassen. Auch analoge Anzeigen können vielfältig variiert werden. Wertproportionale Flächen oder Zeiger visualieren den aktuellen Wert, meist in Bezug auf eine Skala. Typische Zeiger bewegen sich entweder kreisförmig oder linear horizontal oder linear vertikal (Abbildung 6). Die Zeigerform kann durch Rechtecke, Dreiecke, Kreise oder durch Kombinationen davon beschrieben werden.
hn.-sca.Le - bar -char t
mm
vnv - sq - bar - char t
100
•i
— so mm
wm
— 20 -0
Ixri- sc -pornter-chart
Abbildung 6.
-
— 40
60
— 40
Variation von Zeigern
SO — 60 mm
-
— 20 —0
vm - s q-pornttr -chart
Skalen in linearen Instrumenten.
236
Baukästen f ü r Benutzerschnittstellen
Skalen Analoge Anzeigen
sind
meist
mit
einer
oder
mehreren
Skalen
gekoppelt.
Nur so k a n n aus der Position eines Zeigers der Anzeigewert abgeleitet werden.
Entsprechend
angeordnet.
den I n s t r u m e n t e n
sind Skalen kreisförmig oder
linear
Sie e n t h a l t e n M a r k i e r u n g e n u n d Beschriftungen, an denen die
aktuellen W e r t e abgelesen werden können.
Die dargestellten
Wertebereiche
sind entweder linear gestaffelt oder über eine m a t h e m a t i s c h e F u n k t i o n (häufig L o g a r i t h m u s
oder
Quadrat)
verzerrt
(Abbildung 7).
Damit
kann
der
Wichtigkeit verschiedener Bereiche des dargestellten Wertebereichs R e c h n u n g Im I n s t r u m e n t Device Interrupts sowie in den beiden
getragen werden.
untersten I n s t r u m e n t e n (Load-Average u n d Paging) im V A X / U N E X - M o n i t o r werden nichtlineare Skalen verwendet (Abbildung 3).
Abbildung 7.
Verschiedene Skalen in horizontal linearen I n s t r u m e n t e n .
Beschriftungen Die B e d e u t u n g eines I n s t r u m e n t s bzw. seiner Anzeigen wird d u r c h tungen
gekennzeichnet,
die
durch
S c h r i f t a r t variiert werden k ö n n e n . Beschriftung innerhalb tung.
vielerlei
Zeichensätze
in
Beschrif-
Größe
und
Auch die Position oder A n o r d n u n g einer
des I n s t r u m e n t s
ist f ü r seine N u t z u n g
von
Bedeu-
F ü r die unterschiedlichen I n s t r u m e n t t y p e n gibt es jeweils s t a n d a r d i -
sierte günstige A n o r d n u n g e n f ü r Beschriftungen (Abbildung 8).
Alarme Inbesondere
bei
Prozeßüberwachungen
haben
dargestellte
Größen
meist
Grenzwerte, deren U n t e r - oder Überschreitung vermieden werden soll.
Tritt
eine solche Größe aus d e m zulässigen Bereich heraus, soll ein Alarm
erfol-
YlsrVAL
237 — 100
100 —
-
•
— 80
80 —
-
-
— 60
60 —
-
-
40 —
— 40
-
-
— 20
20 — -
0—
Abbildung 8.
—
Standardanordnungen struments.
—0
für Beschriftungen
eines
linearen
In-
gen, der aus einem akustischen bzw. einem optischen Signal bestehen kann. F ü r den Fall, daß der Beobachter bei Auftreten des Alarms das Instrument gerade nicht beobachtet, sollte eine deutlich sichtbare zusätzliche Markierung des Instruments vorgesehen werden, die erst durch Bestätigung der überwachenden Person beseitigt wird. Im VAX/ÜNDC-Monitor tritt ein solcher Alarm beispielsweise bei einem Load A v e r a g e von mehr als acht ein. In diesem Fall sollte der Operateur eingreifen und unwichtige Prozesse in der Priorität vermindern oder ganz anhalten. Bei einem Alarm kann zusätzlich eine beliebige Aktion im Anwendungssystem ausgelöst werden.
Instrumente können auf diese Weise nicht nur zur
Überwachung, sondern auch zur Prozeßsteuerung eingesetzt werden.
Es ist
d a n n auch zwischen dem Unterschreiten eines Minimalwerts und dem Überschreiten eines Maximalwerts zu unterscheiden, da dies im allgemeinen unterschiedlicher Reaktionen bedarf.
Uber- und
Unterlaufanzeigen
Gelegentlich reicht die in einem analogen Instrument vorhandene Skala nicht mehr aus, um einen Wert anzuzeigen. In solchen Fällen kann ein zusätzliches digitales Instrument sichtbar gemacht werden, um den Wert darzustellen (Abbildung 9): aus analogen Instrumenten werden damit kombinierte Instrumente. Solange sich der darzustellende Zahlenwert innerhalb des vorhandenen Skalenbereichs befindet, kann dieses Uber-/Unterlau finstrument unsichtbar bleiben. T r i t t der Wert jedoch aus dem darstellbaren Bereich, wird es sichtbar und überlagert das Analoginstrument.
Baukästen für Benutzerschnittstellen
238
0 T1T x y< ,20 80 C i 1 in 1 7.1 C J ' 30 •1 1 L 50 K
(
y
Abbildung 9.
• loa
400
• ao • eo
-jnn
^mhp
N
\
im
600 900 \ Hl •
• 20
•0
0-
Instrumente bei Uberlauf.
Durch diese Technik kann die Skala eines Instruments auf den Normalbetrieb ausgelegt werden, damit die Werte gut abzulesen sind. Wird dann der Maximalwert gelegentlich über- oder unterschritten, geht das Instrument nicht wie bei mechanischen Instrumenten in einen nutzlosen Endausschlag, sondern zeigt den Wert digital an. Alternativ wäre ein dynamisches Verändern des Skalenbereichs möglich; dies hat jedoch den Nachteil, daß sich der Beobachter nicht ohne Ablesen des genauen Werts orientieren kann, da sich die Skalen ständig beliebig verändern könnten. Bei einer routinemäßigen Überwachung wäre dies wegen möglicher Fehlinterpretation einer dargestellten Größe problematisch.
3. D i e S y s t e m s t r u k t u r v o n VlSIVAL Der logische A u f b a u und der Variationsreichtum von Instrumenten forden geradezu, Instrumente mittels eines Baukastens konfigurieren zu können. Die Bausteine sind die Anzeigen, Skalen, Beschriftungen und Alarme. Darüber hinaus können zum Beispiel Über-/Unterlaufanzeigen und andere Instrumente (Abbildung 10) in ein Instrument eingebaut werden. Man erhält auf diese Weise hierarchisch gegliederte komplexe Instrumente. Aufgrund des Gegenstandscharakters dieser Bausteine bietet es sich an, einen solchen Baukasten sowohl konzeptionell als auch programmtechnisch objektorientiert zu gestalten. Ein Alarmobjekt hat beispielsweise die Attribute unterer Grenzwert und oberer Grenzwert sowie die Methoden (d.h. funktionale Elemente) Ausgabe der Warnung (z.B. Warnton), Aktion bei Unterlauf und Aktion bei Uberlauf. Die Attribute und Methoden können für die jeweiligen Anwendungen verschieden definiert werden. Die verschiedenartigen Bausteine, die zu Instrumenten gekoppelt werden, besitzen jeweils eine Vielzahl von Attributen
und Methoden, die in
Objekt-
239
ViSrVAL ZeigerN Instrument J
Teile
( Unter V^ Instrument
/ \
Skalenelemente
Zeichensatz
f Beschriftetes^ Beschriftetes^ y SSkalenelementV kalenelement/ V Zeichensatz
/Unbeschriftete§\ ySkalenelementy
C Abbildung 10.
3
Aufbau des Instruments aus Abbildung 11.
200
N
Device
Abbildung 11.
Font
nV" \
Interrupts
Instrument, das sich gemäß Abbildung 10 zusammensetzt.
klassen
beschrieben
menten
wieder
werden.
vielfältige
Nun
weisen selbst die Bausteine
Differenzierungen
Klassenhierarchien beschrieben werden.
auf,
von
die objektorientiert
Instrudurch
Für die verschiedenen Zeiger ergibt
sich die Klassenhierarchie in Abbildung 12. Die Erstellung eines Instruments für eine bestimmte Anwendung besteht aus der
Auswahl,
Spezifikation
und
Generierung
ments aus den vorhandenen Klassen. bei
guter
Dokumentation
der
Bestandteile
des
Instru-
Dieser Konfigurationsprozeß ist selbst
eines Baukastens,
der beispielsweise
wie
VlSfVAL
240
B a u k ä s t e n f ü r Benutzerschnittstellen
Abbildung 12.
Klassenhierarchie von Zeigern.
mehr als 200 Bausteine in F o r m von Klassen besitzt, ein nicht m e h r einfaches u n d daher fehleranfälliges V e r f a h r e n .
ganz
F ü r das gewünschte Ausse-
hen u n d Verhalten eines I n s t r u m e n t s müssen die richtigen Bausteine erzeugt und
gekoppelt
werden.
sinnvoll u n d verträglich.
Nicht
alle
Kombinationen
von
Bausteinen
sind
So m a c h t es beispielsweise wenig Sinn, eine kreis-
förmige Skala mit einem linear bewegten Zeiger zu verbinden.
Es gibt eine
ganze Reihe solcher Restriktionen bezüglich der K o m b i n i e r b a r k e i t von Bausteinen sowie deren A t t r i b u t i e r u n g . lungsmöglichkeiten
erlaubt
aber
Benutzer und A n w e n d u n g .
Das v o r h a n d e n e S p e k t r u m der Darstel-
das
Maßschneidern
In A b b i l d u n g
Instrumenten
für
13 finden sich exemplarisch
von
die
Anwendungsprogrammierer
so
Variationen r u n d e r I n s t r u m e n t e . Benutzerschnittstellen-Baukästen weit wie möglich entlasten. Instrumenten
durch
ein
sollen
den
Daher bietet es sich an, die K o n f i g u r a t i o n von
interaktives
Der A n w e n d u n g s p r o g r a m m i e r e r
Konstruktorsystem
zu
unterstützen.
spezifiziert d a m i t - auf W u n s c h
systemge-
f ü h r t - wie die I n s t r u m e n t e aussehen sollen.
Das ganze S p e k t r u m an Mög-
lichkeiten wird dabei vor ihm ausgebreitet.
Seine E n t s c h e i d u n g e n
d u r c h die Darstellung eines Beispielinstruments verdeutlicht.
werden
V o m gesamten
Designraum werden ihm die jeweils noch verbleibenden sinnvollen
Freiheits-
grade angeboten und eventuell an Beispielen e r l ä u t e r t .
Das K o n s t r u k t o r s y -
stem benötigt dazu u.a. Wissen über Verträglichkeiten
bzw.
keiten zwischen den einzelnen Bausteinen.
Unverträglich-
VlSrVAL
241
steamer-gauge
20
40
30
50
\
10
V %
70
80
'/
round-pointer
Abbildung 13.
60
••'///
90
- gauge
Verschiedene kreisförmige Instrumente.
Ist ein Instrument
fertiggestellt, kann es vom Konstruktorsystem
Anwendungssystem angekoppelt werden.
Ist dieses noch nicht
an
das
vorhanden,
können Ein- und Ausgaben simuliert und so das spätere Verhalten des Instruments getestet werden. Ein solches Konstruktorsystem hat sich bei allen komplexen Baukästen als wichtige und oft notwendige Unterstützung herausgestellt. Für VISFVAL ist ein solches in Planung.
4. Z u s a m m e n f a s s u n g und A u s b l i c k Instrumente, wie sie beispielsweise mit VlSIVAL erzeugt werden können, sind nur
eine
Komponente
Komponenten Jedes dieser Baukasten dann
sind
Interaktionsmedien
modular
aufbauen
in allgemeineren
können.
eines
Benutzerschnittstellen-Baukastens.
beispielsweise
Formulare, läßt sich
und
Tabellen,
wiederum
konfigurieren,
Baukastensystemen
Icons
durch
wobei
Menüs.
einen
eigenen
diese
eine gemeinsame
Man gelangt so zu einem komplexen
Weitere und
System aus
Baukästen
Basis
besitzen
ineinanderge-
Baukästen für Benutzerschnittstellen
242
schachtelten, aufeinanderaufbauenden oder nebeneinanderstehenden Moduln, die als Gesamtheit den Kern eines sogenannten User Interface Management Systems (¡JIMS) bilden. Konstruktorsysteme, Anwendungssimulatoren und Benutzermodelle vervollständigen dieses UIMS weiter. Sowohl ergonomischen als auch wirtschaftlichen Forderungen kommt man mit solchen Systemen wesentlich entgegen [Herczeg 86a]. Wenn bislang vorwiegend Büroarbeiten durch moderne Benutzerschnittstellen mit Icons, Menüs und Formularen unterstützt werden konnten, so werden durch Systeme wie VlSIVAL in Zukunft auch Techniker ihre Arbeitswelt auf dem Bildschirm wiederfinden. In vielen Fällen werden sie ihre Anwendungen selbst mit geeigneten Interaktionsmedien (wie z.B. Instrumenten) versorgen; ein Beispiel dafür ist das computergestützte Elektronik-Simulationslabor ELAB, das in Kapitel II beschrieben ist. Als programmtechnische Basis für derartige
Benutzerschnittstellen-Baukästen
haben sich objekt- und frameorientierte Sprachen als sehr geeignet herausgestellt.
Bei VisrVAL ist es die Sprache ObjTalk
[Rathke C. 86b],
Als
Ausgabegerät wird ein hochauflösender Rasterbildschirm verwendet, als Zeigeinstrument eine Maus. Zu erwartende Verbesserungen in der Geschwindigkeit und der Feinheit der graphischen Ausgabe auf dem Bildschirm werden es ermöglichen, daß Bildschirminstrumente realen physikalischen Instrumenten in der Darstellungsqualität praktisch nicht mehr nachstehen. In Genauigkeit, Flexibilität und Robustheit sind sie ihnen heute schon überlegen. Der Trend zu Bildschirminstrumenten zeichnet sich bei aufwendigen technischen Überwachungssystemen wie zum Beispiel Flugzeugcockpits schon heute ab.
XTV
TRISTAN
Ein generischer E d i t o r für g e r i c h t e t e Graphen Helga Nieper-Lemke
Viele Computersysteme berücksichtigen trotz der heutzutage vorhanden Bildschirme mit hoher Auflösung noch nicht die visuellen Fähigkeiten des Menschen. Häufig verwendete Datenstrukturen sind Graphen, d.h. S t r u k t u r e n aus Knoten und sie verbindenden Kanten. Werden diese Strukturen textuell dargestellt, ist es sehr schwer, sie zu verstehen, wohingegen dies bei einer graphischen Darstellung oft mit einem Blick möglich ist. Ohne geeignete Unterstützung ist es für einen Programmierer eine mühevolle Aufgabe, ein Werkzeug zur Darstellung und Manipulation von Graphen, die in seiner Anwendung vorkommen, zu implementieren. In diesem Kapitel wird TRISTAN beschrieben, ein System, das es einem Anwendungsprogrammierer erlaubt, mit einfachen Mitteln einen Grapheditor für eine beliebige Anwendung zu implementieren. Das Ziel bei der Entwicklung war, durch das Auffinden geeigneter Abstraktionen wiederverwendbare Bausteine für Grapheditoren zur Verfügung zu stellen.
1. E i n l e i t u n g Graphen sind häufig verwendete Datenstrukturen.
Beispiele sind
hierarchien in einer objektorientierten Sprache, Dateihierarchien,
Klassen-
Funktions-
aufrufhierarchien, Syntaxbäume oder Projektmitarbeiterhierarchien. Ein Großteil der Funktionalität eines Systems zur Darstellung und Manipulation dieser Strukturen ist anwendungsunabhängig. Um zu vermeiden, daß Programmierer verschiedener Anwendungen „bei Null a n f a n g e n " und immer wieder die gleiche Funktionalität implementieren müssen, werden in TRISTAN anwendungsneutrale Bausteine zur Implementierung von Grapheditoren zur Verfügung gestellt 1 . Ein anderer Vorteil dieses generischen Ansatzes ist die einheitliche Bedienung der resultierenden Systeme.
1
Siehe hierzu a u c h die Diskussion über a n w e n d u n g s n e u t r a l e B a u s t e i n e in K a p i t e l XIII.
Prototypen benutzergerechter Computersysteme © 1988 Walter de Gruyter Sc Co. • Berlin • N e w York
244
B a u k ä s t e n für
In A n l e h n u n g
an
Generationsfolgen
werden
Benutzerschnittstellen
im folgenden
Begriffe
t e r n " für die d i r e k t e n V o r g ä n g e r u n d „ K i n d e r " für die d i r e k t e n eines K n o t e n s Abbildung über
die
wie
„El-
Nachfolger
verwendet.
1 zeigt, wie TRISTAN e i n g e s e t z t wird: zugrundeliegende
Grapheditor.
Zu diesem
Anwendung Wissen
u n d K i n d e r eines K n o t e n s
ergibt
gehört
berechnet,
TRISTAN u n d das
einen
Wissen
anwendungsspezifischen
beispielsweise,
wie m a n
was es b e d e u t e t ,
die
eine K a n t e
Eltern einzufü-
gen oder zu löschen, was es b e d e u t e t , einen K n o t e n zu erzeugen o d e r zu lös c h e n , u n d wie ein K n o t e n in der A n w e n d u n g bezeichnet
wird.
Wissen über Klassenhierarchien a | Klassenhierarchie-Editor |
TRISTAN
Abbildung
Da
mit
1.
Wiesen über Dateihierarchien
E i n s a t z von
TRISTAN 86]
Visualisierungswerkzeuge
terschied
beschriebenen
zu den dort
bestimmte
beschriebenen
Anwendung
leicht
erstellt
[ B ö c k e r , Nieper 8 5 ]
Idee eines
ausgerichtet
TRISTAN b e s o n d e r e r W e r t
~|
TRISTAN.
stellt es einen B e i t r a g zu der in Nieper
= | Dateihierarchie-Editor
werden
und
„Software-Oszilloskops"
dar.
Visualisierungswerkzeugen, sind,
wurde
bei
der
a u f die W i e d e r v e r w e n d b a r k e i t
können,
[Böcker,
Fischer, Im
Un-
die a u f eine
Entwicklung der e i n z e l n e n
von Bau-
s t e i n e gelegt.
2. Z w e i Abbildung dient
zur
Beispielanwendungen 2
zeigt
zwei
Darstellung
Anwendungen
von
von
TRISTAN.
Klassenhierarchien
einer
abstrakten
denselben
Algorithmus
stieren
dieselben
Ebene
die
gleiche
Operationen
für die K n o t e n
Sie enthalten
wiederum
dieselbe
die gleichen
haben
Sie
benutzen
Funktion
haben
und
der G r a p h e n .
außer den letzten
nur
der
Anwendung
z.B.
u n d es exi-
Letzteres
wider, die für die K n o t e n
Einträge,
System
Beide Systeme
Funktionalität:
zur P l a n u n g der r ä u m l i c h e n A n o r d n u n g ,
gelt sich in den gezeigten P o p u p - M e n ü s sind:
erste
Spra-
che, das zweite zur D a r s t e l l u n g von D a t e i h i e r a r c h i e n . auf einer
Das
objektorientierten
spie-
definiert
vier, die
aber
entsprechend
245
TRISTAN
bezeichnet wurden.
Im Falle der Dateihierarchie wurden zwei verschiedene
Arten
verwendet:
von
Knoten
Knoten
mit
Rand
für
Dateiverzeichnisse,
Knoten ohne R a n d für Dateien.
class-hi erarchy-wiiulow Ii nt : s i wpl e-dl so I av-req 1 on| cInss-menu
move move-hor1z move-vert adjust-x adjust-y kill ki 11-subhlerarchy display-subhlerarchy tobottom totop refresh flip display-one-superclass... dlsplay-al1-superclasses display-one-subclass... d1splay-al1-subclasses
la i up I e-d I SPI ay-req ¡ onl Fi sp I av-req i oiil Ibg-n I K I nl
lus : d i sp I ay-req I onl
It 1t1 e-ni K i ni Iborder-ni K I ñl
Ipane-nt ni ni
Ibas i c-Mi ndoul
Isuper-uI r i d o l t e w t - u I ridoni |paned-u I ndoj
It tv-ut ndoul
(I i rector y-ln erarchy-w i ntlow ut I I-ni Ki n.o ut I I -nl xl n. I •repr-n iKin.o repi—nlKi n.I order-n iKin.o order-nI Hi n.I node-ni KIn.o node-niK i n.I Bocl (I i rectory-menu
move aove-horlz •ove-vert adjust-x adjust-y k111 k111-subhìerarchy dlsplay-subhlerarchy tobottom totop refresh flip d1splay-one-parentd1rectory... display-all-parentd1rector les display-one-subdirectory... di splay-all-subdirector les
Abbildung 2.
short des. nss Iongdes.nss Readtle kaestI e.I kaestIe-to-pIc.I kaestIe-phash.s ci rei e.I autoup. I ReadMe HakefI le kaestIe85.I.Z kaestIe84.I.Z kaestIe83.I.Z hdskaestI e.I.Z gkaestI e.I-Z bkaestI e.I .Z ReadMe
Zwei Beispielanwendungen von TRISTAN.
246
B a u k ä s t e n f ü r Benutzerschnittstellen
3. F u n k t i o n a l i t ä t v o n TRISTAN Zur F u n k t i o n a l i t ä t von TRISTAN gehört die Darstellung einer beliebigen Untermenge von K n o t e n mit den zugehörigen K a n t e n (selektives Darstellen eines G r a p h e n ) , die a u t o m a t i s c h e P l a n u n g der räumlichen A n o r d n u n g Operationen zum Editieren der graphischen Darstellung bzw. der liegenden S t r u k t u r .
sowie
zugrunde-
Daneben können dynamische Abläufe visualisiert
wer-
den, und es lassen sich Aktionen definieren, die durch Mausklicks auf einem K n o t e n ausgelöst werden.
Selektives Darstellen des
Graphen
In vielen A n w e n d u n g e n m u ß davon ausgegangen werden, d a ß ein G r a p h so umfangreich
ist,
werden k a n n .
daß er
nicht
vollständig
auf
dem
Bildschirm
dargestellt
Dies ist meist auch nicht notwendig, da der B e n u t z e r o f t
nur an einem Ausschnitt des G r a p h e n interessiert ist.
Eine Möglichkeit zur
Lösung des Problems ist, d e m Benutzer immer nur einen rechteckigen Ausschnitt
einer
Operationen
vollständigen zum
Darstellung
Verschieben
der
des
Graphen
Darstellung
zur
zu
zeigen
Verfügung
und zu
ihm
stellen.
Das P r o b l e m hierbei ist, daß es f ü r den Benutzer schwierig ist, einen Uberblick über die G e s a m t s t r u k t u r den.
zu b e k o m m e n u n d sich in ihr
zurechtzufin-
Verkleinerte Ubersichtsgraphen k ö n n e n hier etwas Abhilfe s c h a f f e n .
In TRISTAN w u r d e ein anderer Ansatz gewählt, nämlich ein selektives stellen
des G r a p h e n :
mens sichtbar gemacht werden. Knoten
können
bzw. Eltern,
Dar-
Ein einzelner K n o t e n k a n n d u r c h A n g a b e seines NaAusgehend von einem bereits dargestellten
alle seine K i n d e r
die aus einem
Menü
bzw. Eltern oder auch ausgewählt
werden,
einzelne
dargestellt
Kinder werden.
Ebenso k a n n der gesamte Unter- bzw. Ü b e r b a u m eines K n o t e n s (bis zu einer angebbaren Tiefe) ausgegeben werden. Da es f ü r den Benutzer oft wichtig ist, zu sehen, ob ein K n o t e n
Kinder
oder Eltern hat, die nicht dargestellt sind, k a n n er sich dies d u r c h angedeutete K a n t e n (beschriftet mit der Anzahl nicht dargestellter K i n d e r bzw. Eltern) anzeigen lassen.
P l a n u n g der räumlichen
Anordnung
Bei der P l a n u n g der räumlichen A n o r d n u n g der Knoten eines G r a p h e n wird vorausgesetzt, daß die K n o t e n als rechteckige Bereiche dargestellt sind. Breiten
und Höhen der Rechtecke können
und G r a p h i k e n t h a l t e n .
variieren, und sie k ö n n e n
Die Text
247
TRISTAN
Der verwendete Planungsalgorithmus setzt außerdem eine hierarchische Ordnung der Knoten voraus, d.h. er nimmt an, daß zwischen den Knoten eine „Eltern-Kinder-Beziehung" besteht und der Graph keine Zyklen enthält. Ausgehend von dieser Voraussetzung gibt es zwei verschiedene Möglichkeiten (siehe auch Abbildung 2): eine Orientierung von oben nach unten (vertikale Orientierung) oder von links nach rechts (horizontale Orientierung). Während die vertikale Orientierung üblicher ist, ist die horizontale i.a. platzsparender, vor allem bei „buschigen" Strukturen. In TRISTAN kann der Benutzer zwischen horizontaler und vertikaler Orientierung auswählen. Weiterhin verwendet TRISTAN zum Zeichnen der Kanten nur gerade Linien, ohne dabei die Lage von anderen Knoten und Kanten zu berücksichtigen. Unter diesen Voraussetzungen kann ein einfacher horizontaler Planungsalgorithmus 2 wie folgt beschrieben werden (die x- und y-Koordinaten
beziehen
sich hierbei auf die linke obere Ecke eines Knotens; der Ursprung des Koordinatensystems befindet sich links oben): 1. Die y-Koordinaten werden in der Reihenfolge „Tiefe zuerst" bestimmt: • Wenn ein Knoten Kinder hat, plane diese zuerst der Reihe nach und bestimme seine y-Koordinate so, daß sein Zentrum in der Mitte zwischen dem ersten und dem letzten Kind liegt. • Wenn ein Knoten keine Kinder hat und ein älterer Geschwisterknoten existiert, setze den neuen Knoten direkt darunter. • Sonst bestimme die y-Koordinate so, daß der Knoten unterhalb des bisher untersten Knotens liegt; wenn es noch keinen gibt, nimm y = 0 . 2. Die x-Koordinaten werden in der Reihenfolge „Breite zuerst" bestimmt: • Der Wurzelknoten liegt bei x=0. • Alle Knoten einer Generation haben dieselbe x-Koordinate. • Der Abstand zwischen Generation n und Generation n-1 wird durch den längsten Knoten der Generation n plus einer Konstanten bestimmt. Dieser Planungsalgorithmus wurde für Bäume entwickelt.
Er ist zwar hin-
sichtlich der Platzausnutzung nicht optimal, liefert aber ein optisch zufriedenstellendes Ergebnis.
2
Für andere hierarchische Strukturen mit nur einer
Dieser Algorithmus k a m beispielsweise im unteren Fenster von Abbildung 2 zum Einsatz. Ein vertikaler Planungsalgorithmus kann analog beschrieben werden.
248
Baukästen für Benutzerschnittstellen
Wurzel kann er oft auch verwendet werden, aber für Graphen mit mehr als einer Wurzel und zyklische Graphen liefert er kein befriedigendes Ergebnis. Natürlich kann dieser Planungsalgorithmus verbessert werden (siehe dazu [Vaucher 80] und [Reingold, Tilford 81]), aber es gibt Gründe, w a r u m ein Planungsalgorithmus wohl nie optimal sein wird: • Der Begriff der „Schönheit" einer Darstellung ist sehr subjektiv. • Die Semantik einer S t r u k t u r erfordert oft eine Darstellungsform, nicht von der Syntax der S t r u k t u r abgeleitet werden kann.
die
Daher wurde in TRISTAN ein kooperativer Ansatz gewählt: Der Computer erzeugt eine vorläufige Darstellung, und der Benutzer ändert die Anordnung der Knoten von Hand, bis sie seinen Vorstellungen entspricht. Dies wurde z.B. im oberen Fenster von Abbildung 2 getan. Es soll hier noch erwähnt werden, daß bei TRISTAN kein Wert auf einen möglichst effizienten Planungsalgorithmus gelegt wird (wie in [Robins 87]), da die Anzahl der dargestellten Knoten eines Graphen als klein angenommen wird.
E d i t i e r e n durch d i r e k t e
Manipulation
TRISTAN stellt eine Reihe von Operationen zur direkten Manipulation des äußeren Erscheinungsbildes eines Graphen zur Verfügung. Diese Operationen lassen den Graphen selbst unverändert. Mit ihnen kann der Benutzer bestimmen, welche Teilstrukturen wo abgebildet werden. Folgende Operationen stehen zur Verfügung: • Bewegen von Knoten an beliebige Positionen, eingeschränkt auf Positionen genau neben bzw. unter einem anderen Knoten oder eingeschränkt auf horizontale bzw. vertikale Bewegungsrichtung, • Darstellen von zusätzlichen Teilstrukturen, • Löschen einzelner Knoten oder Teilstrukturen vom Bildschirm, • Neuplanen der Darstellung von Teilstrukturen. Ebenso können durch direkte Manipulation in der graphischen
Darstellung
neue Knoten und Kanten kreiert oder existierende gelöscht werden.
Dazu
muß der Programmierer TRISTAN mitteilen, was dies in der Anwendung bedeutet, damit der
zugrundeliegende
kann (siehe hierzu Abschnitt 4).
Graph
entsprechend
angepaßt
werden
249
TRISTAN
Weitere funktionelle Eigenschaften Durch Inversdarstellung von sog. „aktiven K n o t e n " können dynamische Abläufe visualisiert werden.
Dies wurde beispielsweise in einem System
zur
Darstellung von Regelmengen (siehe Abbildung 10) eingesetzt, wobei die jeweils feuernde Regel markiert wurde. System wie das in
Eine weitere Anwendung wäre ein
[Böcker, Nieper 85] und
[Böcker, Fischer, Nieper 86]
beschriebene FOOSCAPE, das die augenblicklich
aktiven
Funktionen
eines
Programms in einer graphischen Darstellung der Aufrufhierarchie markiert, während das P r o g r a m m abläuft. Des weiteren können
mit einem Knoten Aktionen
durch einen Mausklick ausgelöst werden.
verknüpft werden,
die
Eine solche Aktion könnte z.B.
eine Detaildarstellung des Knotens bewirken und das Editieren des Knoteninhalts erlauben.
4. TRIKIT - Ein S y s t e m z u m E r s t e l l e n v o n TRISTAN-Anwendungen TRIKIT
ist
ein
System,
das
dem
Anwendungsprogrammierer
hilft,
die
Schnittstelle zwischen der Anwendung und TRISTAN zu definieren und damit einen anwendungsspezifischen Grapheditor zu erstellen.
Es wurde von
A. Lemke implementiert [Fischer, Lemke 88a; Fischer, Lemke 88b]. Abbildung 3 zeigt den Einsatz von TRIKIT. kann
mit
Hilfe dieses Systems einen
Der Anwendungsprogrammierer
anwendungsspezifischen
implementieren, ohne TRISTAN selbst kennen zu müssen.
Abbildung 3.
Einsatz von TRIKIT (nach [Fischer, Lemke 88b]).
Grapheditor
250
B a u k ä s t e n f ü r Benutzerschnittstellen
A n h a n d der Erstellung eines graphischen Dateihierarchie-Editors wie in Abbildung 4 soll im folgenden der Einsatz von TRIKIT demonstriert K n o t e n sind
hierbei Dateiverzeichnisse
u n d Dateien.
Ein
werden.
Dateiverzeichnis
k a n n andere Dateiverzeichnisse und Dateien e n t h a l t e n , was d u r c h die K a n ten des G r a p h e n veranschaulicht
werden soll.
Außerdem sollen
Dateiver-
zeichnisse u n d Dateien optisch voneinander unterscheidbar sein.
•Idöcl
Abbildung 4.
Ein graphischer Dateihierarchie-Editor.
Der Benutzer von TRIKIT b e k o m m t ein F o r m u l a r wie in A b b i l d u n g 5 vorgelegt.
Es h a t verschiedene Feldertypen:
• Editierfelder werden d u r c h ihren g e p u n k t e t e n H i n t e r g r u n d angezeigt u n d dienen zum Eintragen und Ä n d e r n von N a m e n , Zahlen, P r o g r a m m c o d e usw. Durch einen Mausklick wird ein Feld selektiert u n d k a n n d u r c h Eingabe von der T a s t a t u r editiert werden. • Auswahlfeider werden verwendet, wenn die Anzahl der möglichen W e r t e f ü r dieses Feld sehr klein ist. Durch Mausklicks können diese W e r t e nacheinander angezeigt werden. • Menüfelder werden verwendet, wenn die Anzahl der möglichen W e r t e f ü r dieses Feld zu groß f ü r ein Auswahlfeld ist. Ein Mausklick auf diesem Feld erzeugt ein P o p u p - M e n ü der möglichen Werte. • Buttons werden als schmale Rechtecke dargestellt. Ein Mausklick auf diesem Feld löst die mit ihm v e r b u n d e n e Aktion aus. • Icons, die einen Zugriff auf U n t e r f o r m u l a r e ermöglichen, h a b e n eine quadratische F o r m . Ein Mausklick bewirkt, daß das e n t s p r e c h e n d e U n t e r f o r m u l a r auf den Bildschirm k o m m t . Durch einen Mausklick auf d e m D i r e c t o r y - I c o n F o r m u l a r , das in Abbildung 6 gezeigt ist, sichtbar.
in Abbildung 5 wird
das
W ä h r e n d das H a u p t f o r -
mular allgemeine Angaben über den G r a p h e n e n t h ä l t , beschreiben die Unt e r f o r m u l a r e Eigenschaften der K n o t e n .
251
TRISTAN
Itristan-design-kit Name of relation:
directory-hierarchy';
An item is called a:
directory; ;
Name of child relation:
subdirectory '•;•;
Name of parent relation:
parent-directory
Default layout direction:
horizontal
Evaluate item name?
No
Compare items by:
equal;';-; ;•
:; ;;
Pname selector f o r items:
de:pname; : ; ;•;';•;•;•:•;•;• Create an unlinked item with name "name": Create a child for "item" called "name": (de:create-child name item) ; Add "child" t o "item": Remove "child" f r o m "item": Relink "item" f r o m " p a r e n t i " t o "parent2": (de.move item parent2);•;•:•;•;•; The window has a default size? Width:
466
;:
Height:
T y p e s of items:
|Shou
|s a vg s ^ t . . on Fi u I ¡Create
S-jsten
and
Yes
149:
|SpP.C!fH
tristan-system.l
I n , t a n t , a t e 11
size
[Create
rubber
bo-'
:
S-jst]^
» Abbildung 5.
uiTh
E x a n p le