# data[].attributes.body
Ein Rahmenprogramm befolgt das "Hollywood-Prinzip" nach dem Motto "Don't call us - we'll call you!"

Das Hauptprogramm besteht bereits und ruft die Erweiterungen der Benutzer auf.

# data[].attributes.body
- Es soll bereits eine Grundversion der Anwendung funktionsfähig sein

- Es sollen Erweiterungen möglich sein, die sich konsistent verhalten

- Komplexe Anwendungslogik soll nicht neu programmiert werden

# data[].attributes.body
- Bereitstellung eines (nahezu) vollständigem Programms, das durch Einfüllen geplanter "Lücken" erweitert werden kann.

Somit ist die Anwendungslogik bereits vorhanden.
Dabei kann der Benutzer Unterklassen der bereitgestellten Klassen bilden und Methoden überschreiben oder vordefinierte abstrakte Methoden implementieren.

# data[].attributes.body
JUnit ist eine Rahmenarchitektur, welche den Testframeworks zuzuordnen ist. Konktet handelt es sich hierbei um eine Rahmenarchitektur zum automatisierten Testen von Java-Programmen.

# data[].attributes.body
Diese Form der Rahmenarchitektur dient zur Ausführung von Softwaretests.

# data[].attributes.body
Bootstrap ist eine Rahmenarchitektur, welche den Webframeworks zuzuordnen ist. Konkret handelt es sich hierbei um ein Frondend-CSS-Framework. Das Framework wurde ursprünglich von Twitter entwickelt und seit 2011 als Open-Source-Projekt verfügbar.

# data[].attributes.body
Zwei Beispiele für Rahmenarchitekturen.

# data[].attributes.body
Diese Form der Rahmenarchitektur ist ausgelegt für die Entwicklung von Webseiten, Webanwendungen und Webservices.

# data[].attributes.body
Diese Form der Rahmenarchitektur stellt Formen und Einrichtungen der Geräte-Interaktion zur Verfügung, welche zu einem nahtlosen Zusammenspiel verschiedener Systeme führen.

# data[].attributes.body
Diese Form der Rahmenarchitektur abstrahiert von der objektorientierten Ebene und bietet eine Umgebung zur Entwicklung und Integration von Software-Komponenten an.

# data[].attributes.body
Diese Form der Rahmenarchitektur bietet Klassen und Methoden zur Unterstützung auf einer bestimmten Abstaktionsebene.

# data[].attributes.body
Diese Form der Rahmenarchitektur bildet das Programmiergerüst für einen bestimmten Problembereich.

# data[].attributes.body
Diese Form der Rahmenarchitektur bildet ein Programmiergerüst für eine bestimmte Klasse von Anwendungen, die Funktionen und Programmstrukturen bereitstellen.

# data[].attributes.body
Frameworks lassen sich in verschiedene Typen unterteilen:

# data[].attributes.body
Eine Rahmenarchitektur ist ein Programmgerüst, welches den Rahmen für ein zu entwickelndes Programm setzt. Innerhalb dieses Rahmens kann eine Anwendung erstellt werden, welche durch die Struktur der Rahmenarchitektur beeinflusst wird.

# data[].attributes.body
Durch ein Kopplungsglied werden die entkoppelten Einheiten über eine gemeinsame Schnittstelle verwaltet

# data[].attributes.body
Durch Entkopplung kann ein System durch lokale Änderungen verbessert, angepasst und erweitert werden ohne das gesamte System zu modifizieren

# data[].attributes.body
- teilen ein System in mehrere Einheiten, sodass diese unabhängig voneinander erstellt, verändert, ausgetauscht und wiederverwendet werden können

# data[].attributes.body
- verbessern Kommunikation im Team durch nützliche Terminologien zwischen Entwicklern und komplexen Konzepten

- erfassen wesentliche Konzepte und bringen sie in eine prägnante und verständliche Form

- können Code-Qualität und Code-Struktur verbessern

# data[].attributes.body
- Wiederverwendbarkeit von Entwurfswissen
- Dokumentation von Entwürfen

# data[].attributes.body
Software-Entwurfsmuster beschreiben Lösungen für wiederkehrende Software-Entwurfsproblemen

Somit stellen Sie eine wiederverwendbare Vorlage zur Problemlösung dar, die in einem bestimmten Zusammenhang einsetzbar sind.