Select Page

Auch wenn ein architektonisches Muster ein Bild eines Systems vermittelt, ist es keine Architektur. Ein Architekturmuster ist ein Konzept, das einige wesentliche kohäsive Elemente einer Softwarearchitektur löst und umfiniert. Unzählige verschiedene Architekturen können das gleiche Muster implementieren und die zugehörigen Eigenschaften gemeinsam nutzen. Muster werden oft als “streng beschrieben und allgemein verfügbar” definiert. [3] [4] Kann unsicher sein, wenn es in einigen Sprach-/Hardware-Kombinationen implementiert wird. Es kann daher manchmal als Anti-Muster betrachtet werden. Designmuster waren ursprünglich in 3 Unterklassifikationen kategorisiert worden, basierend auf der Art des Problems, das sie lösen. Erstellungsmuster bieten die Möglichkeit, Objekte basierend auf den erforderlichen Kriterien und auf kontrollierte Weise zu erstellen. Bei Strukturmustern geht es darum, verschiedene Klassen und Objekte zu organisieren, um größere Strukturen zu bilden und neue Funktionen bereitzustellen. Schließlich geht es bei Verhaltensmustern darum, allgemeine Kommunikationsmuster zwischen Objekten zu identifizieren und diese Muster zu realisieren.

Software- und Gebäudearchitekten haben viele ähnliche Probleme zu lösen, und so war es für Softwarearchitekten selbstverständlich, sich für Muster als architektonisches Werkzeug zu interessieren. Viele Zeitungen und Bücher wurden auf ihnen seit Alexanders 1979 Buch veröffentlicht, vielleicht die bekannteste ist Design Patterns: Elements of Reusable Object-Oriented Software. Dieses Buch beschreibt einfache und elegante Lösungen für spezifische Probleme im objektorientierten Softwaredesign. Das folgende Material soll dem Leser Hinweise auf einige der Orte geben, an denen Architekturmuster bereits verwendet und zur Verfügung gestellt werden, um den Lesern zu helfen, sich gedanken über die Nützlichkeit dieser Technik für ihre eigene Umgebung zu bilden. Die jährlichen Sitzungsberichte der Pattern Languages of Programming Conference [12] enthalten viele Beispiele für domänenspezifische Muster. Eine Analogie zu einem Algorithmus ist ein Kochrezept: Beide haben klare Schritte, um ein Ziel zu erreichen. Auf der anderen Seite ist ein Muster eher wie eine Blaupause: Sie können sehen, was das Ergebnis und seine Funktionen sind, aber die genaue Reihenfolge der Implementierung liegt bei Ihnen. Hier ist eine Liste der Architekturmuster und der entsprechenden Softwareentwurfsmuster und Lösungsmuster. Die Fachliteratur zu diesem Bereich wird durch die Tatsache erschwert, dass viele Leute im Softwarebereich den Begriff “Architektur” verwenden, um sich auf Software zu beziehen, und viele Muster, die als “Architekturmuster” beschrieben werden, sind High-Level-Software-Designmuster. Umso wichtiger ist es, bei der Verwendung der Terminologie präzise zu sein. Bei diesen Entwurfsmustern dreht sich alles um die Klassen- und Objektzusammensetzung.

Strukturelle Klassenerstellungsmuster verwenden Vererbung, um Schnittstellen zu erstellen. Strukturelle Objektmuster definieren Möglichkeiten zum Komponieren von Objekten, um neue Funktionen zu erhalten. Obwohl Designmuster seit einigen Jahren im Fokus des breiten Interesses in der Softwarebranche stehen, insbesondere in den objektorientierten und komponentenbasierten Software-Bereichen, ist das Interesse an Architekturmustern erst seit kurzem gestiegen – die Erweiterung der Prinzipien und Konzepte von Designmustern auf den Architekturbereich. Die meisten Muster werden sehr formal beschrieben, so dass Menschen sie in vielen Kontexten reproduzieren können.