Bei einem Framework-basierten Softwareentwurf werden Anwendungssysteme durch Anpassung und Ergänzung eines für ein bestimmtes Anwendungsgebiet vorliegenden Gerüsts aus wiederverwendbaren Softwarekomponenten entwickelt. Eine entsprechende Wiederverwendung kann die Qualität der entwickelten Anwendungssysteme fördern und zur Wirtschaftlichkeit des Softwareentwicklungsprozesses beitragen.
Grundkonzept
Unter einem Anwendungs-Framework (Anwendungsgerüst) versteht man eine in eine Softwarearchitektur eingebettete Gruppe eng aufeinander abgestimmter Softwarekomponenten, die durch Anpassungen und Ergänzungen gemäß definierter Schnittstellen und Interaktionsmuster zu einem fertigen Anwendungssystem in einem bestimmten Anwendungsgebiet entwickelt werden können [Johnson 1997; Szyperski 2002, S. 158-161]. Ein Anwendungssystem wird damit durch Wiederverwendung von Softwarekomponenten im Rahmen eines generischen Softwareentwurfs gestaltet.
Anwendungs-Frameworks basieren häufig auf einem objektorientierten Softwareentwurf. Hierbei stellen die Komponenten des Anwendungs-Frameworks etwa abstrakte und/oder generische Klassen dar, die durch Spezialisierung und Parametrisierung für vorliegende Anforderungen angepasst werden. Ein Anwendungs-Framework unterscheidet sich von einer Klassenbibliothek neben der Vorgabe einer Architektur dadurch, dass der Kontrollfluss einer Anwendung im Wesentlichen durch das Framework definiert ist und zu ergänzende Komponenten durch den Framework-Code gesteuert werden. Frameworks sind von (Entwurfs-)Mustern dadurch abzugrenzen, dass ein Framework eine (zu vervollständigende) Implementierung, d.h. Software, darstellt, während ein Muster Wissen über die Lösung bestimmter Problemstellungen repräsentiert.
Die Framework-basierte Softwareentwicklung kann die Qualität von zu entwickelnden Anwendungssystemen fördern und zur Wirtschaftlichkeit des Softwareentwicklungsprozesses beitragen. Voraussetzung hierfür ist das Vorliegen eines geeigneten Anwendungs-Frameworks und die Kompetenz, dieses zu nutzen. Die Framework-basierte Softwareentwicklung hat sich für einzelne eng abgegrenzte Problembereiche als zweckmäßig herausgestellt. Dagegen sind Ansätze zur Entwicklung und Nutzung umfangreicher Anwendungs-Frameworks für integrierte betriebliche Anwendungssysteme (ERP-Systeme) bislang weitgehend erfolglos geblieben.
Neuerdings haben Web-Frameworks an Bedeutung gewonnen. Diese unterstützen die Umsetzung reichhaltiger Websites und webbasierter Anwendungssysteme.
Entwicklung eines Anwendungs-Framework
Die Entwicklung eines Anwendungs-Frameworks erfordert ein tiefgehendes Verständnis des betrachteten Anwendungsgebietes hinsichtlich der Gemeinsamkeiten und Unterschiede möglicher Anforderungen. Auf dieser Basis sind die Software-Architektur, die wiederverwendbaren Softwarekomponenten sowie Mechanismen zur anwendungsspezifischen Anpassung zu gestalten.
Literatur
Johnson, Ralph E.: Frameworks = (components + patterns). In: Communications of the ACM 40 (1997), Nr. 10, S. 39-42.
Szyperski, Clemens: Component Software: Beyond Object-Oriented Programming. 2. Auflage. London : Addison-Wesley, 2002.