next up previous contents
Next: Systemtypen Up: Das Autorenwerkzeug FMAD Previous: Der Media-Manager

Grundkonzepte und Architektur von FMAD

FMAD besteht konzeptuell aus mehreren Teilkomponenten, deren Beziehungen zueinander in Abbildung 7.7 verdeutlicht werden:

 
Abbildung 7.7:  Konzeptueller Aufbau des Autorenwerkzeugs FMAD

In FMAD selbst sind keine Medienobjekterzeugungswerkzeuge integriert. Die Medienobjekte müssen mit Hilfe von externen medientypspezifischen Werkzeugen erstellt und in Dateien abgelegt werden. Aus diesen Dateien können die Daten in FMAD geladen werden. Sogenannte Medienmengeneditoren ermöglichen die Erstellung von Medienobjektsammlungen. In den Editoren werden die Medienobjekte durch Ikonen repräsentiert. Medienmengeneditoren beinhalten bestimmte Filter- und Browsing-Werkzeuge zur Bearbeitung von Objektmengen. Zur Definition von Beziehungen zwischen den Medienobjekten kann ein Autor die Ikonen mit modernen Interaktionsformen, wie Drag-and-Drop-Mechanismen und anderen Prinzipien der Direkten Manipulation, in die Strukturierungseditoren verschieben. In diesen können dann mit Konzepten der visuellen Programmierung Beziehungen zwischen den Medienobjekten definiert werden.gif Über die Strukturierungseditoren ist damit die Bildung komplexer Medienobjekte möglich. Zur Festlegung der initialen Werte der (Gestaltungs-)Attribute der Objekte stehen medientypspezifische, graphisch-interaktive Layout-Werkzeuge zur Verfügung. Diese werden im folgenden Attributeditoren genannt. Die Medienobjekte und ihre Attribute sowie die Beziehungsgraphen, d.h. die komplexen Objekte, werden in FMAD in einer abstrakten Zwischenrepräsentation verwaltet. Diese kann zum einen extern gespeichert werden. Dadurch werden persistente wiederverwendbare Medienobjekte erzeugt. Zum anderen kann die Zwischenrepräsentation in interpretierbare Objekthierarchien des XFantasy-UITs transformiert werden, womit ein Wechsel zwischen Entwicklungs- und Ausführmodus unterstützt wird. Desweiteren ist aus der Zwischenrepräsentation C++-Code generierbar, der anschließend um Funktionalitäten ergänzt werden kann, die nicht direkt mit FMAD spezifizierbar sind. Auf diese Weise lassen sich Stand-Alone-Applikationen erzeugen.

Während Abbildung 7.7 eher eine globale konzeptuelle Sicht auf den Aufbau von FMAD widerspiegelt, die durch die Arbeitsweise über Editoren gekennzeichnet ist, gibt Abbildung 7.8 den strukturellen, implementiertechnischen Aufbau von FMAD wider, der von den Medienobjekten geprägt ist.

 
Abbildung 7.8:  Struktureller Aufbau des Autorenwerkzeugs FMAD

Das besondere Merkmal der Implementierung von FMAD ist nämlich, daß es nicht aus einer Sammlung von Editoren besteht, mit denen verschiedene Medienobjekte bearbeitet werden können. Vielmehr bilden die Medienobjekte den zentralen Bestandteil der Implementierung von FMAD. Jedes Medienobjekt besitzt eigene typspezifische funktionale Komponentengif, mit denen es sich quasi selbst verwaltet bzw. über die es sich manipulieren läßt. Implementiertechnisch bildet dabei eine Menge von abstrakten Basisklassen sowie ein Codegenerator und ein Interpreter, die auf die abstrakten Schnittstellen zugreifen, den Kern von FMAD. Medientypen und ihre Komponenten werden als von den Basisklassen abgeleitete Klassen realisiert. Generelle Eigenschaften werden dabei geerbt. Ausschließlich typspezifische Eigenschaften müssen noch implementiert werden. Das Zusammenspiel der Objekte und ihrer Komponenten ist bereits im Kern von FMAD auf der Basis der abstrakten Klassen implementiert. Diese (medien-)objektbasierte Implementierung von FMAD hat positive Auswirkungen auf die Erweiterbarkeit von FMAD um neue Medientypen, wie sich im Laufe des Kapitels, insbesondere in Abschnitt 7.10, noch herausstellen wird.

Bei den Medienobjekten können komplexe von elementaren Medienobjekten unterschieden werden. Die Medienobjekte bilden die Knoten eines multimedialen Beziehungsnetzwerks, das im Prinzip nur implizit durch die Spezifikationskomponenten der komplexen Medienobjekte gebildet wird. Der Interpreter und Codegenerator nutzen das Beziehungsnetzwerk zur direkten Ausführung bzw. zur Erzeugung von C++-Programmcode.

Die Medienobjekte von FMAD sind getypt. Es sind Instanzen der Medientypklassen, die die Blätter der sogenannten Medientypklassenhierarchie bilden, die in Abbildung 7.9 dargestellt wird. Da FMAD um neue Medientypen erweiterbar ist, spiegelt Abbildung 7.9 nur den gegenwärtigen Implementierungsstand wider.

 
Abbildung 7.9:  Medientypklassenhierarchie von FMAD

Basisklasse aller Medientypklassen ist die abstrakte Klasse FMMediaObject. Direkt von FMMediaObject abgeleitet sind die abstrakten Klassen FMElementarMediaObject und FMCompositeMediaObject. FMElementarMediaObject bildet die Basisklasse aller elementarer Medientypen. Die Klasse FMCompositeMediaObject unterstützt die Bildung von Mengen von Medienobjekten, zwischen denen allerdings noch keine Beziehungen definiert werden können. Letzteres ist erst bei Instanzen der Klasse FMComplexMediaObject möglich, die damit die Basisklasse der komplexen Medientypen bildet. Die Klassen FMFMadObject, FMMediaSetObject und FMIMMPAObject werden als Systemklassen bzw. -typen bezeichnet.

Wie bereits erwähnt, liegt der Architektur von FMAD eine (medien-)objektorientierte Sichtweise zugrunde. Wie in Abbildung 7.8 ersichtlich ist, setzen sich Medienobjekte aus verschiedenen Komponenten zusammen, die zum einen ihr Verhalten und zum anderen sowohl die Autoren- als auch -- im Falle der elementaren Medienobjekte -- die Benutzerschnittstelle implementieren. Zentrale Komponente jedes Objektes ist ihre Spezifikationskomponente. Bei den elementaren Medienobjekten verwaltet sie die initialen Werte der Attribute des Objektes, bei den komplexen Medienobjekten zusätzlich die Beziehungen. Werkzeuge zur Definition von Beziehungen oder initialen Attributwerten werden durch die Editorkomponente zur Verfügung gestellt. Routinen zum Speichern und Laden von Medienobjekten sind in der Persistenzkomponente zusammengefaßt. Über die Transformationskomponente läßt sich objektspezifischer Code erzeugen. Die Interpretationskomponente arbeitet im Falle der komplexen Medienobjekte mit der Steuerungskomponente, im Falle der elementaren Medienobjekte mit der Präsentationskomponente zusammen. Sie enthält die Attribute des Objektes und ermöglicht die Manipulation von Attributwerten und die Ausführung ihrer Systemfunktionen. Die Steuerungskomponente bzw. die Präsentationskomponente realisieren die Aktivitätsfunktion der komplexen bzw. elementaren Medienobjekte.


next up previous contents
Next: Systemtypen Up: Das Autorenwerkzeug FMAD Previous: Der Media-Manager

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