Methodische Entwicklung und Anwendung von Frameworks

Dipl.-Inf. Evgeni Ivanov

Fachgebiet Prozeßinformatik im Institut für Theoretische und Technische Informatik der TU Ilmenau

Die Wiederverwendung ist eines der wichtigsten Ziele in der Softwareentwicklung. Heutzutage werden vorwiegend objektorientierte Techniken als Basis für die Realisierung der Wiederverwendung eingesetzt. Die Wiederverwendung von Objekten, Klassen, Komponenten und Frameworks, aber auch von Modellen und Mustern, kann sowohl die Produktivität im Prozeß der Softwareerstellung als auch die Qualität der Software erheblich steigern.

Frameworks gelten heute als die höchste Stufe der Wiederverwendung, weil nicht nur Programmcode sondern auch Entwurf wiederverwendet werden kann. Ein objektorientiertes Framework definiert eine Klassenstruktur sowie ein Interaktionsmodell für die beteiligten, kooperativ arbeitenden Objekte. Somit werden neben einer generischen Architektur auch die Steuerung für mögliche spezifische Anwendungen angeboten; die Stellen, an denen die spezifische Funktionalität hinzugefügt werden muß, werden vordefiniert. Das Framework ruft die vom Benutzer entwickelte, zusätzliche Funktionalität auf.

Die Entwicklung und Anwendung von Frameworks erweist sich in der Praxis als durchaus schwierig. Die hohen Entwicklungskosten, das fehlende Know-how auf dem Gebiet der Objekttechnologie, lange Einarbeitung in bestehende Frameworks sind nur ein Teil der Probleme, welche den massiven Einsatz von Frameworks in der Praxis erschweren. Viele der Hauptprobleme bei der Entwicklung und Anwendung von Frameworks resultieren aus mangelhaften bzw. nicht existierenden Beschreibungsmitteln. Weiterhin mangelt es an einer passenden, frameworkorientierten methodischen Vorgehensweise bei der Entwicklung und Anwendung von Frameworks, welche auch werkzeugtechnisch unterstützt wird.

In diesem Vortrag werden vorgestellt:

Während der Framework-Entwicklung wird das Fachwissen, wie Aufgaben in einer Domäne gelöst werden können, als eine wiederverwendbare, generische Einheit implementiert. Endprodukte dieser Phase sollen das implementierte Framework und die Framework-Dokumentation sein. Die Framework-Dokumentation enthält Information über Framework-Funktionalität, -Entwurf und über Möglichkeiten der Framework-Nutzung.

Frameworks werden von Fachexperten (mit)entwickelt. Die meisten Anwender haben (anfangs) keine Framework-Kenntnisse. Das bedeutet, daß Anwender Informationen über die Art und Weise der Framework-Anwendung brauchen und während der Adaption unterstützt werden müssen. Andererseits brauchen erfahrene Entwickler detaillierte Informationen über den Framework-Aufbau, damit diese das Framework erweitern oder in ursprünglich nicht vorgesehenen Situationen anwenden können. Diese unterschiedlichen Informationen werden nach dem Framework-Metamodell in einem zentralen Repository abgelegt und sind zusammen mit dem Framework die Ausgangsbasis für den Prozeß der Framework-Anwendung.

Bei der Framework-Anwendung werden auf der Basis von Frameworks domänenspezifische Anwendungen erstellt. Die Rezepte für die Erstellung spezieller Anwendungen sind in der Framework-Dokumentation enthalten. Der Framework-Nutzer wendet diese Rezepte an und fügt die für die Erstellung spezifischer Anwendungen notwendige Information zum Framework hinzu.

Mit Hilfe eines Analyse&Design Tools für Frameworks werden die objektorientierten und frameworkspezifischen Eigenschaften modelliert und dokumentiert. Die für die aktive Nutzung von Frameworks relevante Metainformation (über Platzhalter-Klassen, zu überschreibende Methode, Verknüpfung von Objekten etc.) werden in einem zentralen Repository abgelegt. Mit dem Repository arbeiten weitere Werkzeuge zusammen: grafische Editoren für die Manipulation der Framework-Modelle und der Framework-Dokumentation, Dokumentations- und Code-Generatoren, Code-Scanner, Modellüberprüfungskomponenten. Das Analyse&Design Tool sorgt weiterhin für die Konsistenz zwischen Modell, Framework-Programmcode und Dokumentation.

Die Werkzeuge für die Framework-Anwendung operieren mit dem Modell im Repository und mit dem Framework. Damit werden schrittweise spezifische Applikationen erstellt. Dabei unterstützt der Framework-Assistent die Prinzipien der methodischen Framework-Anwendung. Der Framework-Assistent besteht aus einem Browser, mit dem Nutzer in der Framework-Dokumentation navigieren und aus diesem weitere Werkzeuge für die Framework-Anwendung aktivieren können und aus einer integrierten Entwicklungsumgebung, welche einzelne Entwicklungs- und Generierungstools zu Verfügung stellt, die für die schrittweise Spezialisierung des Frameworks bei der Anwendungserstellung notwendig sind.