Architekturmuster

Der Begriff der Architekturmuster - auch Architekturstil - wird im Zusammenhang mit der Entwicklung von komplexen Software-Systemen verwendet. Dabei repräsentieren Architekturmuster geprüfte Lösungsschemata für die grundlegende Organisationsstruktur von Software-Systemen. In der konkreten Verwendung ist auch die Kombination von verschiedenen Architekturmustern möglich, umso eine Problemstellung gezielt lösen zu können. Der Hintergrund der Architekturmuster ist die Zielstellung die Qualität von Software-Architekturen zu erhöhen, da diese weitreichende Folgen für den Software-Lebenszyklus haben. Architekturmuster sind von Idiomen und Entwurfsmustern generell zu unterscheiden.


Die Einteilung von Mustern erfolgt in unterschiedlichen Abstraktionsebenen. Auf der höchsten Ebene liegen die Architekturmuster, die eine Schablone für Software-Architekturen bilden und globale Systemeigenschaften beschreiben. Darunter ordnen sich die Entwurfsmuster ein, die letztendlich definierte Lösungen für Software-Komponenten und deren zugrundeliegenden Problemstellungen bieten und keinerlei Auswirkungen auf die Struktur des Gesamtsystems haben. Auf unterster Hierarchie-Ebene sind Idiome letztendlich für die Lösungskonzepte in Zusammenhang mit spezifischen Programmiersprachen verantwortlich.

Dabei abstrahieren die Architekturmuster konkrete Software-Architekturen, bilden quasi deren Verallgemeinerung ab und können so zur Beherrschung der Komplexität von Software-Systemen beitragen. Die einheitliche Beschreibung von Architekturmustern erfolgt nach der Struktur "Kontext - Problem - Lösung" und unterstützt somit deren Anwendung. Der Kontext beschreibt die Situation in der ein Muster einsetzbar ist. In der Problembeschreibung werden problematische Umstände im Kontext der Verwendung sowie deren Lösung zusammengefasst. Mit dem Begriff Kräfte werden zudem angestrebte Eigenschaften und weitere Einflüsse des Musters gekennzeichnet. Dabei kann es durchaus sein, dass Kräfte entgegengesetzt wirken, so dass andere, weitere Muster in Kombination verwendet werden müssen, um diese Kräfte auszugleichen. Letztendlich übernimmt die Lösung die Darstellung pragmatischer und erprobter Problemlösungen. Es werden hierbei u.a. Software-Architekturen spezifiziert und deren dynamisches Verhalten zur Laufzeit abgebildet. Die genannte Beschreibungsstruktur kann flexibel um weitere Beispiele sowie Szenarien, Regeln zur Implementierung und die Zusammenfassung von Vor- und Nachteilen ergänzt werden.

Einordnung von Architekturmustern

Architekturmuster werden analog ihrer jeweiligen Aufgaben in unterschiedliche - sich teilweise überschneidende - Kategorien eingeordnet, die da sind:

Strukturierungsmuster. Aufgabe ist die Strukturierung von Komponenten und Subsystemen im Hinblick auf die Verteilung von Funktionalitäten auf das Gesamtsystem. Klassische Beispiele sind die folgenden Architekturmuster:

  • Layers, Teilaufgaben auf gleichen Abstraktions-ebenen werden geschichtet strukturiert,
  • Pipes and Filters, Muster zur Strukturierung von Datenströmen und
  • Blackboard, Spezifizierung von Subsystemen.
Muster für verteilte Systeme. Aufgabe ist die Strukturierung im Hinblick auf verteilte Ressourcen und Dienste beispielsweise Serviceorientierte Architekturen. Klassische Beispiele sind die folgenden Architekturmuster:

  • Broker, Strukturierung verteilter Systeme mit entkoppelten Komponenten und
  • Client-Server, Verteilung von Aufgaben innerhalb eines Netzwerks.
Adaptive Systeme. Aufgabe ist die Modifizierung, Erweiterung und Anpassung von Software-Architekturen. Klassische Beispiele sind die folgenden Architekturmuster:

  • Micro Kernel, ein auf Grundfunktionen basierender Kern wird von der Menge möglicher Erweiterungen isoliert,
  • Reflection, das Muster definiert die Erkennung seiner Struktur hinsichtlich Eigenschaften und dynamischer Veränderungen.
Interaktive Systeme. Aufgabe ist die Strukturierung der Mensch-Computer-Interaktionen. Klassische Beispiele sind die folgenden Architekturmuster:

  • Model View Controller (MVC), Strukturierung der Software-Architektur in die Three-Tier-Architecture, Präsentation und Steuerung,
  • Presentation-Abstraction-Control (PAC), ergänzt das MVC-Muster um die hierarchische Strukturierung sogenannter Agenten.

Informationen zum Artikel
Deutsch: Architekturmuster
Englisch: architectural style
Veröffentlicht: 26.07.2018
Wörter: 519
Tags: #Entwicklung, Codierung
Links: Agent, Analog, Anpassung, Architektur, Cat (category)