Next: Bewertung und Ausblick
Up: Das Autorenwerkzeug FMAD
Previous: Codegenerator
Ein wichtiger Aspekt bei der Implementierung von FMAD war seine
einfache Erweiterbarkeit um neue
Medientypen. Mit Hilfe der objektorientierten Programmierung
ist dieses Ziel durch die Definition geeigneter abstrakter Basisklassen
sowie durch die Bereitstellung einer Menge vordefinierter Klassen,
die zur Bildung neuer Klassen mittels des Konzeptes der
Komposition genutzt werden können, erreichbar.
Das Konzept der abstrakten Basisklassen wurde insbesondere bei der Bildung der
Medientypklassenhierarchie (siehe Abbildung 7.9)
angewendet. Zur Integration eines neuen Medientyps müssen die geeignete
Basisklasse ausgewählt und bestimmte virtuelle Methoden
konkretisiert bzw. redefiniert werden, die im Prinzip die
Schnittstellen zu den Komponenten der Medienobjekte bilden.
Die Komponenten selbst lassen sich im allgemeinen durch eine Komposition
mit Hilfe bereits vordefinierter Klassen implementieren.
Im Detail sieht die Integration eines neuen elementaren Medientyps
etwa folgendermaßen aus:
- Auswahl einer geeigneten Basisklasse aus der Medientypklassenhierarchie
- Festlegung der Attribute des Typs
- Implementierung der Spezifikationskomponente
Als Basisklasse der Spezifikationskomponente dient
die Klasse FMMediaSpec. Von ihr muß eine Klasse abgeleitet werden. Die neue
Klasse wird dabei im allgemeinen durch Komposition von Instanzen der
sogenannten FMSpec-Klassen
gebildet, die einen Wert der jeweiligen Attributtypen
speichern und verwalten können. Für die Basistypen
(int, float, bool, char, string, ...) sind entsprechende FMSpec-Klassen
bereits definiert. - Implementierung der Persistenzkomponente
Die Persistenzkomponente arbeitet eng mit der Spezifikationskomponente
zusammen. Methoden zum Lesen und Schreiben der Attributwerte aus bzw. in
Dateien sind bereits in den FMSpec-Klassen
der Spezifikationskomponente implementiert.
Von daher ergibt sich ein Großteil der Implementierung der
Persistenzkomponente bereits automatisch durch die Implementierung der
Spezifikationskomponente.
Das Speichern und Laden der zu präsentierenden Information sowie
der Informationsattribute
ist allerdings abhängig von den unterstützten
Medienobjekterzeugungswerkzeugen und
muß ,,per Hand`` implementiert werden. - Implementierung des Attributeditors
Basisklasse der Attributeditoren bildet die Klasse FMElementarEditor, eine
von der XFantasy-Klasse FDialogBox abgeleitete Klasse. Ein neuer
Attributeditor wird im allgemeinen durch die Komposition von
sogenannten ControlPanel-Blöcken (Objekte von Klassen, die von
der Klasse FMCPBlock
abgeleitet sind) definiert. Dies sind Objekte, die einem Autor
die Festlegung der initialen Werte der Attribute mit Hilfe von Menüs,
editierbare Textfeldern und anderen UI-Komponenten ermöglichen.
Es existiert bereits eine Menge von vordefinierten Klassen,
durch die auch die Kopplung zur Spezifikationskomponente
realisiert wird. - Implementierung der Präsentationskomponente
In diesen Aufgabenbereich fällt die Implementierung der Systemfunktionen,
insbesondere der Aktivitätsfunktion. Diese sind medientypabhängig und
müssen mit Hilfe geeigneter XFantasy-Klassen realisiert werden.
Bei der Integration von Interaktionstypen können insbesondere
die Klassen der Eventbehandlung zur Erkennung und Verarbeitung
komplexer Eingaben verwendet werden. - Implementierung der Interpretationskomponente
Die Klasse FMAttr bildet die Basisklasse aller Attribute. Für die Basistypen
(int, float, bool, char, string, ...) sind von FMAttr bereits Klassen
abgeleitet worden,
so daß zur Implementierung der Interpretationskomponente
häufig nur die Instanziierung der jeweiligen
Klassen je nach Typ der Attribute
notwendig ist. Die Kopplung der Attribute mit den entsprechenden Teilen
der Spezifikationskomponente und der Präsentationskomponente erfolgt
über Parameter des Konstruktors und ist intern bereits implementiert.
Bei der Integration eines Interaktionstyps ist von der XFantasy-Klasse
FAction eine Klasse abzuleiten, deren virtuelle Methode FAct aufgrund
einer Benutzereingabe innerhalb der Aktivitätsfunktion aufgerufen wird.
In der Methode FAct muß eine entsprechende Aktion generiert
und in die Attributaktionsliste des Interpreters einfügt werden. - Realisierung des Demonstrationsmodus
Zur Realisierung des Demonstrationsmodus bei den
visuellen Interaktionstypen ist ebenfalls eine von der XFantasy-Klasse FAction
abgeleitete Klasse zu implementieren, in deren FAct-Methode die Bedingung der
zu generierenden Beziehung angegeben und der Demonstrationsmodus
gestartet werden muß.
Für einen Medientypintegrator unterscheiden sich Ausführ- und
Demonstrationsmodus nur durch die beiden unterschiedlichen FAction-Klassen.
Der eigentliche Demonstrationsmodus ist bereits in
der Klasse FMInteractionObject implementiert und wird vererbt.
Die in Abschnitt 7.6 beschriebenen Medientypen sind
alle auf die eben vorgestellte Art und Weise in FMAD integriert worden.
Allerdings ist die Menge der von ihnen unterstützten Attribute
relativ klein und wird demnächst noch erweitert.
Wie in Kapitel 6.3.1.2 beschrieben, können komplexe Medientypen
zum einen durch die Einschränkung bzw. Vorgabe bestimmter Beziehungen und
zum anderen durch die Definition neuer Attribute spezialisiert werden.
Spezielle komplexe Medientypen, wie beispielsweise Navigationsprogramme,
sind noch nicht in FMAD integriert. Allerdings steht das prinzipielle
Vorgehen hierfür
fest. Zur Realisierung einer Spezialisierung durch die
Einschränkung bzw. Vorgabe von Beziehungen müssen lediglich
zwei Methoden, auf die der Strukturierungseditor
zugreift, entsprechend redefiniert werden. Das Vorgehen bei der
Integration neuer Attribute sieht ähnlich aus wie es oben für
elementare Medienobjekte beschrieben worden ist. Da Attribute
komplexer Medienobjekte häufig nur als Flag-Attribute oder zum
Zwischenspeichern bestimmter Werte benötigt werden, ihnen also keine
Systemfunktion zugeordnet ist (siehe auch Kapitel 6.3.1.2),
sind für komplexe Medienobjekte bereits
einige Attribute vordefiniert worden, so daß eine Spezialisierung durch
die Integration neuer Attribute selten nötig sein wird. Bei einer
Spezialisierung mittels der Einschränkung bzw. Vorgabe bestimmter
Beziehungen werden die vordefinierten Attribute natürlich auch vererbt.
Next: Bewertung und Ausblick
Up: Das Autorenwerkzeug FMAD
Previous: Codegenerator
Dietrich Boles
Thu Nov 14 14:58:01 MET 1996