Rahmenwerk

Rahmenwerk

Ein Framework (engl. für „Rahmenstruktur, Fachwerk“) ist ein Programmiergerüst, das in der Softwaretechnik, insbesondere im Rahmen der objektorientierten Softwareentwicklung sowie bei komponentenbasierten Entwicklungsansätzen, verwendet wird.

Inhaltsverzeichnis

Beschreibung

Ein Framework ist selbst noch kein fertiges Programm, sondern stellt den Rahmen, innerhalb dessen der Programmierer eine Anwendung erstellt, zur Verfügung, wobei u. a. durch die in dem Framework verwendeten Entwurfsmuster auch die Struktur der individuellen Anwendung beeinflusst wird. Beispielsweise unterstützten die MFC das Model-View-Controller-Muster.

Ein Framework gibt somit in der Regel die Anwendungsarchitektur vor. Dabei findet eine Umkehrung der Steuerung (Inversion of Control) statt: Der Programmierer registriert konkrete Implementierungen, die dann durch das Framework gesteuert und benutzt werden, statt – wie bei einer Klassenbibliothek – lediglich Klassen und Funktionen zu benutzen. Wird das Registrieren der konkreten Klassen nicht fest im Programmcode verankert, sondern wird „von außen“ konfiguriert, so spricht man auch von Dependency Injection.

Ein Framework definiert insbesondere den Kontrollfluss der Anwendung und die Schnittstellen für die konkreten Klassen, die vom Programmierer erstellt und registriert werden müssen. Frameworks werden also i. A. mit dem Ziel einer Wiederverwendung „architektonischer Muster“ entwickelt und genutzt. Da solche Muster nicht ohne die Berücksichtigung einer konkreten Anwendungsdomäne entworfen werden können, sind Frameworks meist domänenspezifisch oder doch auf einen bestimmten Anwendungstyp beschränkt. Beispiele sind Frameworks für grafische Editoren, Buchhaltungssysteme oder elektronische Warenhäuser im World Wide Web.

White-Box- und Black-Box-Frameworks

Die Blackbox- und Whitebox-Abstraktion bezieht sich auf die Sichtbarkeit einer Implementierung hinter der Schnittstelle. In einer idealen Blackbox-Abstraktion wissen Klienten keine Details, die sich hinter der Schnittstelle und seiner Spezifikation befinden. In einer Whitebox-Abstraktion kann die Schnittstelle immer noch die Kapselung erzwingen und begrenzen, was die Klienten tun können, obwohl die Implementierung das Erben substanzieller Interferenzen erlaubt. Wie auch immer, die Implementierung einer Whitebox ist vollständig vorhanden und kann deswegen studiert werden, um das Darunterliegende genauer zu verstehen, was die Abstraktion ausmacht. (Einige Autoren unterscheiden weiterhin zwischen Whiteboxes und Glassboxes, wobei die Whitebox die Manipulation der Implementierung erlaubt und Glassboxes lediglich das Studieren der Implementierung.)[1]

Framework-Typen

Frameworks lassen sich darüber hinaus wie folgt unterteilen (z. T. keine strikte Trennung):

  • Application Frameworks bilden das Programmiergerüst für eine bestimmte Klasse von Anwendungen (horizontal slice), d. h. von Funktionen und Programmstrukturen, die bei allen Anwendungen dieser Klasse von Bedeutung sind.
  • Domain Frameworks hingegen bilden das Programmiergerüst für einen bestimmten Problembereich (vertical slice), d. h. Funktionen und Strukturen, die zur Lösung dieses Problembereichs i. A. benötigt werden.
  • Class Frameworks fassen Klassen und Methoden zusammen, die Unterstützung auf einer bestimmten Abstraktionsebene für ein breites Anwendungsfeld bieten.
  • Komponenten-Frameworks abstrahieren von der objektorientierten Ebene und bieten eine Umgebung zur Entwicklung und Integration von Software-Komponenten an. Software-Komponenten werden dabei meist als Bündel von Klassen mit eindeutig definierten Schnittstellen betrachtet.
  • Coordination-Frameworks (wie z. B. Jini und UPnP) stellen Formen und Einrichtungen der Geräte-Interaktion zur Verfügung und dienen so in erster Linie deren nahtloser und skalierbarer Interoperabilität. Wenn z. B. ein „Jini-fähiger“ Drucker an ein Netzwerk angeschlossen wird, welches Jini verwendet, so kann er selbstständig anderen Geräten mitteilen, was für eine Art von Drucker dazugekommen ist – so dass andere Geräte sich jetzt dieser neuen Möglichkeit „bewusst“ sind.

Bekannte Frameworks

Siehe auch

Literatur

  • Wolfgang Pree: Komponentenbasierte Softwareentwicklung mit Frameworks. dpunkt, 1997, ISBN 3-920993-68-3. 

Einzelnachweise

  1. Clemens Szyperski, Dominik Gruntz, Stephan Murer: Component Software. Beyond object-oriented programming. 2. Auflage. Addison-Wesley, London; München 2002, ISBN 0-201-74572-0, S. 40f. 

Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Rahmenwerk — Rah|men|werk 〈n. 11〉 = Fachwerk (1) …   Universal-Lexikon

  • Metadata — Als Metadaten oder Metainformationen bezeichnet man allgemein Daten, die Informationen über andere Daten enthalten. Bei den beschriebenen Daten handelt es sich oft um größere Datensammlungen (Dokumente) wie Bücher, Datenbanken oder Dateien. So… …   Deutsch Wikipedia

  • Metadatei — Als Metadaten oder Metainformationen bezeichnet man allgemein Daten, die Informationen über andere Daten enthalten. Bei den beschriebenen Daten handelt es sich oft um größere Datensammlungen (Dokumente) wie Bücher, Datenbanken oder Dateien. So… …   Deutsch Wikipedia

  • Metainformation — Als Metadaten oder Metainformationen bezeichnet man allgemein Daten, die Informationen über andere Daten enthalten. Bei den beschriebenen Daten handelt es sich oft um größere Datensammlungen (Dokumente) wie Bücher, Datenbanken oder Dateien. So… …   Deutsch Wikipedia

  • Metainformationen — Als Metadaten oder Metainformationen bezeichnet man allgemein Daten, die Informationen über andere Daten enthalten. Bei den beschriebenen Daten handelt es sich oft um größere Datensammlungen (Dokumente) wie Bücher, Datenbanken oder Dateien. So… …   Deutsch Wikipedia

  • Metadaten — oder Metainformationen sind Daten, die Informationen über andere Daten enthalten. Bei den in dieser Art beschriebenen Daten handelt es sich oft um größere Datensammlungen, wie Dokumente, Bücher, Datenbanken oder Dateien. So werden auch Angaben… …   Deutsch Wikipedia

  • FPLMTS — Unter dem Namen IMT 2000 (International Mobile Telecommunications 2000) wurden in den späten 1980er Jahren die Anforderungen der ITU R (Radiokommunikationssektor der International Telecommunications Union) an ein Mobilfunksystem der dritten… …   Deutsch Wikipedia

  • IMT-2000 — Unter dem Namen IMT 2000 (International Mobile Telecommunications 2000) wurden in den späten 1980er Jahren die Anforderungen der ITU R (Radiokommunikationssektor der International Telecommunications Union) an ein Mobilfunksystem der dritten… …   Deutsch Wikipedia

  • EUFORIA-Projekt — Logo des EUFORIA Projekts EUFORIA (EU Fusion fOR Iter Applications) ist ein Projekt der Europäischen Union im Seventh Framework Programme (FP7), welches ein Rahmenwerk sowie die Infrastruktur für Transport und Turbulenz Simulationen für die… …   Deutsch Wikipedia

  • Michel Angelo — Michelangelo Buonarroti in einem Porträt von Jacopino del Conte Michelangelo Buonarroti [mikeˈlanʤelo bwɔnarˈrɔːti] (* 6. März 1475 in Caprese (im Casentino – oberes Arnotal nördlich von Arezzo), Toskana; † …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”