Wolfram Kleis
Universität Kaiserslautern
Zu einem benutzbaren Framework gehört eine Beschreibung, die es dem Anwender ermöglicht, die durch das Framework vorgegebenen Strukturen, Regeln und Einschränkungen zu verstehen. Die heute verfügbaren objektorientierten Frameworks erfüllen diese Forderungen aber nur mangelhaft oder gar nicht. Als eines der Hauptprobleme beim Einsatz objektorientierter Frameworks wird häufig die Schwierigkeit genannt, ein zur sinnvollen Nutzung ausreichendes Verständnis des Frameworks zu erlangen.
Ziel meines Promotionsprojekts ist es, einen Beitrag zur Besserung dieses unbefriedigenden Zustands zu leisten. Ausgangspunkt meiner Arbeit ist die Untersuchung und Bewertung der aktuellen Lösungsvorschläge für das Problem der mangelnden Verständlichkeit von Frameworks. Wie eine solche Analyse zeigt, gibt es aktuell fünf Lösungsansätze:
Grundlage der Bewertung ist die These, daß ein ingenieurmäßiges Arbeiten das Verständnis der eingesetzten Systeme voraussetzt. Angewendet auf Frameworks heißt dies, daß eine sinnvolle Nutzung das Verständnis der Framework-Architektur erfordert.
Die Ansätze a) bis c) führen nicht zu einem Verständnis des Frameworks. Kochbuchrezepte geben nur vor, was zu tun ist, sie vermitteln nicht das Verständnis für das "Warum". Der Ansatz des Verständniserwerbs durch interaktives Erkunden ist unökonomisch, da man den Anwender zwingt, sich ein Wissen zu erarbeiten, über das zumindest der Frameworkentwickler ja bereits verfügt. Der Einsatz von Konfigurationswerkzeugen mit Generatoren eliminiert das Verständnisproblem auf Kosten der Flexibilität.
Lediglich die Ansätze d) und e) haben die Vermittlung von Systemwissen zum Ziel. Als Kritikpunkt gegen formale Contracts läßt sich ein Mangel an Anschaulichkeit und Ausdrucksmächtigkeit anführen. Der Ansatz der Framework Dokumentation mit Entwurfsmustern ist unter dem Aspekt des Systemverständnisses sicher der erfolgversprechendste unter den oben aufgeführten. Objektorientierte Entwurfsmuster sind jedoch meist klassenorientiert und der Begriffswelt der objektorientierten Programmierung verhaftet.
Ergebnis meiner Analyse der existierenden Vorschläge ist, daß kein Ansatz die Erzeugung eines Systemverständnisses in befriedigender Weise ermöglicht. Es besteht vor allem Bedarf an Beschreibungsmitteln für die Vermittlung eines anschaulichen Gesamtbildes als primärer Zugang zum Verständnis eines Frameworks. Die existierenden Ansätze werden dabei nicht verworfen. Sie kommen als zusätzliche Beschreibungsmöglichkeiten zum Einsatz, nachdem ein primäres Verständnis bereits vorhanden ist.
Im Mittelpunkt meines Beschreibungsansatzes stehen informationelle Systemmodelle, welche die Klasse der realisierbaren Systeme beschreiben, das Zusammenspiel der Systemkonponenten verständlich machen und die Frameworkschnittstellen aufzeigen. Diese Modelle sind oberhalb der Implementierungsebene angesiedelt. Vordefinierte Framework-Komponenten werden also nicht durch objektorientierte Modelle auf Klassenebene beschrieben, sondern durch geeignete implementierungsunabhängige "Ersatzvorstellungen". Die hierbei zum Einsatz kommende Begriffswelt und die zugehörigen Beschreibungsmittel sind kein Ergebnis meiner Arbeit. Sie werden am Lehrstuhl für Digitale Systeme der Universität Kaiserslautern bereits seit vielen Jahren zur Beschreibung großer programmierter Systeme eingesetzt. Wesentlich ist, daß hierbei nicht die Softwarestrukturen im Vordergrund stehen, sondern Modelle für die durch Abwicklung der Software realisiserten dynamischen Systeme. Im Rahmen meiner Arbeit werden diese Erkenntnisse und Beschreibungsmethoden nun erstmals auf die speziellen Erfordernisse der Beschreibung objektorientiert programmierter Systeme und insbesonderer objektorientierter Frameworks angewandt.
In Diplomarbeiten werden zur Zeit Teile der Microsoft Foundation Classes und der IBM Open Class Library nachmodelliert, um Erfahrungen in der Framework-Beschreibung zu sammeln. Abschließende Ergebnisse dieser Arbeiten stehen jedoch noch nicht zur Verfügung. In meinem Kurzvortrag auf dem Workshop werde ich neben einem Überblick über die oben angeführten bereits existierenden Ansätze eine Einführung in unsere Begriffswelt und Beschreibungsprinzipien geben.