Während Abbildung 5 eher eine globale konzeptionelle Sicht auf den Aufbau von FMAD widerspiegelt, die durch die Arbeitsweise über Editoren gekennzeichnet ist, gibt Abbildung 6 den strukturellen, implementiertechnischen Aufbau von FMAD wider, der von den Informationsobjekten geprägt ist.
Das besondere Merkmal von FMAD ist nämlich seine vollständig objektorientierte Implementierung. FMAD besteht nicht aus einer Sammlung von Editoren, mit denen verschiedene Informationsobjekte bearbeitet werden können. Vielmehr bilden die Informationsobjekte den zentralen Bestandteil der Implementierung von FMAD. Jedes Informationsobjekt besitzt eigene typspezifische Strukturkomponenten, 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. Informationstypen werden als Komposition von von den Basisklassen abgeleiteten Klassen realisiert. Generelle Eigenschaften werden dabei geerbt. Ausschließlich typspezifische Eigenschaften müssen noch implementiert werden. Das Zusammenspiel der Strukturkomponenten ist bereits im Kern von FMAD auf der Basis der abstrakten Klassen implementiert.
Abbildung 6: Struktureller Aufbau von FMAD
Zentrale Strukturkomponente jedes Objektes ist seine Spezifikationskomponente (Basisklasse FMSpecification). Bei den elementaren Informationsobjekten verwaltet sie die initialen Werte der Attribute des Objektes, bei den komplexen Informationsobjekten zusätzlich die Beziehungen. Werkzeuge zur Definition von Beziehungen bzw. initialen Attributwerten werden durch die Editorkomponente ( FMEditor) zur Verfügung gestellt. Routinen zum Speichern und Laden von Informationsobjekten sind in der Persistenzkomponente ( FMPersistence) zusammengefaßt. Über die Transformationskomponente ( FMTransformation) läßt sich objektspezifischer Code erzeugen. Die Interpretationskomponente ( FMInterpretation) arbeitet im Falle der komplexen Informationsobjekte mit der Steuerungskomponente ( FMControl), im Falle der elementaren Informationsobjekte mit der Präsentationskomponente ( FMPresentation) 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 beinhalten die Aktivitätsfunktion der komplexen bzw. elementaren Informationsobjekte.
Die objektorientierte Implementierung von FMAD
hat positive Auswirkungen auf seine Erweiterbarkeit
um neue Informationstypen.
Bei der Integration eines neuen Informationstyps müssen jeweils eine
Klasse von den oben angegebenen Basisklassen abgeleitet und bestimmte
Methoden typspezifisch redefiniert werden.
Dieser Vorgang ist allerdings so schematisch, daß ein Generator - der
sogenannte Informationstypgenerator -
implementiert werden
konnte, der die entsprechenden Klassen automatisch erzeugt.
Als Eingabe verlangt der Generator die Einordnung des neuen Typs
in die sogenannte Informationstyphierarchie
(siehe Abbildung 7)
sowie Informationen über die Attribute
(Name, Typ, Default-Wert, Systemfunktion) des
neuen Typs in deklarativer Form. Lediglich die Systemfunktionen
müssen noch von Hand programmiert
werden.
Die generierten Klassen
können übersetzt und zu FMAD dazugebunden werden.
Eine Rekompilation von FMAD ist nicht notwendig.
Auf diese Weise konnte die Integration der zur Zeit in FMAD
verfügbaren Informationstypen jeweils im Minutenbereich erfolgen,
weitgehend ohne eine Zeile explizit programmieren zu müssen.
Abbildung 7 zeigt einen
Ausschnitt aus der aktuellen Informationstyphierarchie
von FMAD.
Abbildung 7: Informationstyphierarchie von FMAD