Das Kefk Network Wiki befindet sich im Testbetrieb.


Framework

Aus Kefk.

(Weitergeleitet von Rahmenwerk)
Wechseln zu: Navigation, Suche
Bild:Disambig-dark.svg Dieser Artikel beschäftigt sich mit Frameworks in der Softwaretechnik, für die Office-Suite Framework siehe Framework (Software)
Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf bitte mit, ihn zu verbessern, und entferne anschließend diese Markierung.


Framework (engl. für Rahmenstruktur, Fachwerk) ist ein Begriff aus der Softwaretechnik und wird insbesondere im Rahmen der objektorientierten Softwareentwicklung sowie bei komponentenbasierten Entwicklungsansätzen verwendet.

Bild:Package-Component-Framework.PNG
Das Framework steht mit dem Software-Paket und der Software-Komponente in Beziehungen, unterscheidet sich aber von diesen in einigen wichtigen Punkten.

Wörtlich übersetzt bedeutet Framework (Programm-)Gerüst, Rahmen oder Skelett. Darin wird ausgedrückt, dass ein Framework in der Regel eine Anwendungsarchitektur vorgibt. Dabei findet eine Umkehrung der Kontrolle 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 im Allgemeinen 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.

Inhaltsverzeichnis

White-Box- und Black-Box-Frameworks

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

Framework-Typen

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

  • Application Frameworks bilden den Programmrahmen 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 den Programmrahmen für einen bestimmten Problembereich (vertical slice), d. h. Funktionen und Strukturen die zur Lösung dieses Problembereichs im Allgemeinen 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, das Jini verwendet, angeschlossen wird, 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.

Siehe auch

Weblinks

Literatur

Einzelnachweise

  1. Clemens Szyperski: Component Software. Second Edition, 2002, S. 40f.
Wikipedia
Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Framework, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation.
Persönliche Werkzeuge