next up previous contents
Next: Visuelle Programmierung Up: Interaktionen Previous: Interaktionsauswirkungen

 

Programmierung von Interaktionen

Die Programmierung von Interaktionen ist zwar nicht für einen Autor wohl aber für einen Medientypintegrator bei der Integration eines neuen Interaktionstyps in ein Autorenwerkzeug von Bedeutung und soll daher im folgenden kurz analysiert werden.

Die Programmierung von Benutzereingaben ist wie die Programmierung von Bildschirmausgaben durch die geschichtliche Entwicklung der E/A-Geräte bestimmt. Während einem Benutzer früher ein meistens 24 tex2html_wrap_inline6043 80 Zeichen fassendes ASCII-Terminal und eine Tastatur zur Kommunikation mit dem Computer zur Verfügung stand, sind ab den 80er Jahren hochauflösende Graphikbildschirme sowie eine Maus als Ergänzung zur Tastatur zum Standard geworden. In alten Programmiersprachen, wie FORTRAN oder COBOL, sind daher E/A-Funktionen meistens fest integriert. Mit Hilfe einer Read-Funktion wird ausschließlich die zeilenorientierte Texteingabe via Tastatur unterstützt. In modernen Programmiersprachen, wie MODULA-2 oder C++, werden E/A-Funktionen über Bibliotheken angeboten. Diese sind austauschbar und können den verfügbaren E/A-Geräten angepaßt werden. In modernen Graphikbibliotheken wie GKS oder PHIGS, werden, wie in Abschnitt 3.2.1 beschrieben, virtuelle Eingabegeräte durch den Programmierer adressiert. Diese Graphikbibliotheken beinhalten daher Routinen zum Abfragen von Eingaben auf den unterschiedlichen Devices.

Durch das Aufkommen von Window-Systemen und User-Interface Toolkits (UITs) hat sich die Form der Eingabebehandlung geändert (siehe auch [FvDFH92]). Die früher übliche Art der Eingabeverarbeitung, nämlich das Abfragen von Eingaben und das Aufrufen bestimmter eingabespezifischer Prozeduren, wird in Window-Systemen durch die Installation eines sogenannten Dispatchers ersetzt. Vor dem Aufruf des Dispatchers spezifiziert der Programmierer, bei welchen Eingaben -- hier Events genannt -- und unter welchen Bedingungen welche Prozedur aufgerufen werden soll. In der Prozedur, auch als Callback-Funktion bezeichnet, werden die Interaktionsauswirkungen programmiert. Die Erkennung und Verarbeitung von Events sowie der Aufruf der Callback-Funktionen wird durch den Dispatcher vorgenommen. Man spricht auch von einer invertierten Programmierung. User-Interface Toolkits bieten darüberhinaus eine Menge vordefinierter User-Interface Komponenten an, die die zugrundeliegenden Interaktionstechniken kapseln und für ein optisches Feedback sorgen (siehe Abschnitt 3.2.3.1). Teilweise sind in die UITs Dialogmodelle integriert, die die Erkennung und Verarbeitung komplexer Events und damit die Definition komplexer Interaktionstechniken ermöglichen. Beispiele sind das Interaktionsmodell [Hü90] und das ECO-Modell [Tie91]. Während kommerzielle UITs heutzutage ausschließlich 2D-Graphik unterstützen, streben Forschungsprojekte auch die Integration von dreidimensionalen UI-Komponenten in UITs an. Ziel des GIVEN-Projektes ist beispielsweise die Entwicklung eines UITs für 3D-Graphik, das einen Datenhandschuh als 3D-Input-Device unterstützt [BHV92]. Als Hand-Gesten bzw. -Handlungsweisen werden unter anderem das Navigieren im 3D-Raum und das Modifizieren von Objekten (Fassen, Loslassen) erkannt. Dabei werden dem System neue Gesten bzw. Handlungen über ein neuronales Netzwerk in einem speziellen Editor gelehrt.

Eine noch höhere Abstraktionsstufe als User-Interface Toolkits bieten User-Interface Management Systeme (UIMS). Ziel eines UIMS ist die automatische bzw. halb-automatische Konstruktion von Benutzerschnittstellen [Gre85]. Während die Nutzung von UITs erfahrenen Programmierern vorbehalten ist, unterstützt ein UIMS auch Nicht-Experten bei der Entwicklung von Benutzerschnittstellen. Nach dem Seeheim-Modell [Pfa85] besteht ein UIMS aus drei logischen Komponenten: Die Präsentationskomponente ist für die visuelle Gestaltung der Benutzerschnittstelle verantwortlich, das Applikationsschnittstellen-Modell definiert die Schnittstelle zwischen dem UIMS und der Applikation, und die Dialogkontrolle steuert die Kommunikation zwischen der Präsentation und der Applikation. Die Dialogkontrolle ist damit die für die Registrierung und Verwaltung von Benutzereingaben zuständige Instanz. [DFAB93] diskutiert mehrere Notationen, wie Zustands-Transitions-Diagramme oder Event-Algebren, zur Spezifikation der Dialogkontrolle. Ein umfassender Überblick hierzu findet sich in [Gö94]. Verschiedene Implementierungstechniken werden in [Mye89] vorgestellt. Auf die Möglichkeit der visuellen Programmierung, d.h. der Spezifikation der Dialogkontrolle mit graphischen Hilfsmitteln, wird in Kapitel 4 noch genauer eingegangen.

Objektorientierte Programmiersprachen eignen sich in besonderem Maße für die Programmierung von Interaktionen. Zum einen können Interaktionsaufgaben, -techniken und die verwendeten Eingabegeräte in Objekten gekapselt werden, wodurch ein Anwendungsprogrammierer nicht mehr mit der Programmierung von Detaills belastet wird. Zum anderen sind objektorientierte Klassenhierarchien einfach erweiterbar, d.h. werden durch technische Fortschritte oder durch Erkenntnisse aus Forschungsprojekten neue Eingabegeräte bzw. Eingabeformen verfügbar, so lassen sich diese ohne großen Aufwand in Form abgeleiteter Klassen in die Klassenhierarchie integrieren.


next up previous contents
Next: Visuelle Programmierung Up: Interaktionen Previous: Interaktionsauswirkungen

Dietrich Boles
Thu Nov 14 14:58:01 MET 1996