Begriffsdefinition

Aus AKAEM

Wechseln zu: Navigation, Suche

Diese Seite und die dazu gehörende Diskussionsseite (siehe Reiter oben neben "bearbeiten") dient der Definition der verwendeten Begriffe im AK Architektur- und Entwurfsmuster. Das Ziel ist die Begriffsklärung und -abgrenzung.

Inhaltsverzeichnis

Definition von Mustern

Neben den eigentlichen Architektur- und Entwurfsmuster sowie den Templates zur Beschreibung von Mustern sind auch Definitionen der verschiedenen Konzepte rund um Architektur- und Entwurfsmuster ein Kernthema im Arbeitskreis. Die Definition dieser Konzepte sollte dabei einigen Qualitätskriterien unterliegen.

Offene Fragen

  • Wofuer waere eine Unterscheidung in Architekturmuster und Entscheidungsmuster relevant?
  • Wie unterscheiden sich Architekturmuster und Entwurfsmuster?
  • Wie unterscheiden sich Muster auf Ebene des Grob- und Feinentwurfs?
  • Wie unterscheiden sich Muster auf der PSM-, PIM-, und CIM-Ebene bei der modell-getriebenen Softwareentwicklung?
  • Welche unterschiedlichen Arten von Mustern gibt es
    • in der komponenten-basierten Entwicklung?
    • in der service-orientierten Entwicklung?
    • in der produktlinien-orientierten Entwicklung?

Architekturmuster (engl. "architecture pattern" oder "architectural pattern")

Definitionen (Architekturmuster)

 Im Bereich der Softwareentwicklung sind Architekturmuster in den Entwurfsmustern auf 
 oberster Ebene einzuordnen. Im Gegensatz zu Idiomen oder Entwurfmustern bestimmen sie 
 nicht ein konkretes (meist kleines oder lokales) Teilproblem, sondern den Grundaufbau, 
 also das Fundament der Anwendung. 
 Wikipedia.de, 2006
 Eine vorgefertigte, parametrierbare Schablone für die Gestaltung der Architektur eines 
 Systems oder einer Komponente.
 Martin Glinz (Universität Zürich), 2006
 An Architectural Pattern expresses a fundamental structural organization schema for software
 systems. It provides a set of predefined subsystems, specifies their responsibilities, and 
 includes rules and guidelines for organizing the relationships between them.
 POSA1, 1996
 Architekturmuster - je nach Quelle auch synonym für Architekturstil verwendet - sind Muster
 auf oberster Entwurfsebene. Sie beschreiben grundsätzliche Organisationsprinzipien für die 
 Architektur einer Software
 MDA-Buch, 2007
 Entwurfsmuster können als „Mikro-Architekturen“ betrachtet werden. ...
 Architekturmuster hingegen beschreiben den Stil der Gesamtarchitektur eines Systems.
 Informatiklexikon der GI (Hasselbring06)
 A description of element and relation types together with a set of constraints on
 how they are used. The term architectural style has also been widely used to describe it.
 Software Architecture Glossary der SEI
 Als Architekturmuster bezeichnet man Vorgehensweisen bzw. Regeln, die einen bestimmten
 Aspekt der Systemfunktionalität adressieren. Im Gegensatz zu Entwurfsmustern wirken sich
 die Architekturmuster auf das gesamte System aus, nicht nur auf einzelne Bausteine.
 VSEK
 Nach Meinung von Posch, Birken und Gerdom betreffen Architekturmuster weniger die 
 fachliche Domäne, sondern eher technische Aspekte der Softwaresysteme, wie z.B. Verteilung,
 Nebenläufigkeit oder Echtzeitverhalten.
 aus VSEK (Posch06)
 Architekturmuster (auch: architektonische Stile) drücken generelle Organisationsschemata für
 Software-Systeme aus. Sie definieren Subsysteme mit dedizierten Verantwortlichkeiten und Regeln,
 nach denen Subsysteme zueinander in Beziehung stehen. Ein Architekturmuster definiert eine 
 Familie von Architekturen mit dediziertem Vokabular für Komponenten und Verbindungselementen, 
 einer spezifischen Topologie und semantischen Beschränkungen. Etwa in einer Schichtenarchitektur
 werden die Module eines System grob in mehreren Schichten angeordnet und die wesentliche 
 Beschränkung ist, dass jedes Modul nur Funktionen eines darunter befindlichen Moduls nutzen darf.
 VSEK


Abgrenzung von Architekturmustern und Entwurfsmustern

Um eine Unterscheidung von Architektur- und Entwurfsmustern zu finden bzw. zu definieren sollten zuerst die Begriffe Architektur und Entwurf geklärt werden. Dazu findet man auf der Seite Architektur und Entwurf - Begriffe einige Informationen, die später in das (oder aus dem) gemeinsame Fachgruppen-Wiki übernommen werden können.

  • Unterscheidungsmerkmal: Ein Entwurfsmuster beschreibt Zusammenhänge oder "Best Practices" mittels Klassen und Objekten. Architekturmuster beschreiben Zusammenhänge mittels Subsystemen oder Ebenen. (Hypothese von Jörg Rech)
 Zu obigem Unterscheidungsmerkmal siehe auch Diskussionsseite!
 Architekturmuster stellen ebenfalls Lösungen typischer Problemstellungen dar. Sie beziehen
 sich im Gegensatz zu Entwurfsmustern auf mittlere Verfeinerungsebenen oberhalb des Quellcodes.
 [Reussner2006, Seite 87]
 Gegensätzlich dazu ist der Einfluss von Entwurfsmustern eher lokal begrenzt, d.h. innerhalb
 von einzelnen Bausteinen. Die Entwurfsmuster können angewendet werden, ohne dass die 
 Gesamtarchitektur davon betroffen ist. Entwurfsmuster eignen sich deshalb im Gegensatz zu
 Architekturstilen und –mustern für den Einsatz durch einzelne Entwickler bzw. Architekten 
 einzelner Bausteine.
 VSEK

Abgrenzung von Plattform-Unabhängigen (PIM) und Plattform-Spezifischen (PSM) Mustern

  • Unterscheidungsmerkmal: Ein PSM-Muster beinhaltet Informationen die sehr spezifisch zu einer Ausführungsumgebung gehören. PIM-Muster können bei mindestens zwei unterschiedlichen Ausführungsumgebung umgesetzt werden. (Hypothese von Jörg Rech)
    • Konsequenzen: Business Delegate oder Session Facade wären PIM-Muster.
    • Ausnahmen:
    • Probleme: Die Core J2EE Muster wären alle PIM-Muster
    • Alternativen: Die Sprache wird als Unterscheidungsmerkmal verwendet (dies Betrifft aber auch nicht die Core J2EE-Patterns; Könnte aber Idiome betreffen)

Abgrenzung von Architekturmustern und Architekturstilen

  • Unterscheidungsmerkmal: Ein Muster kann in einem Softwaresystem beliebig oft vorkommen. Ein Stil kommt nur einmal im System vor. (Hypothese von Jörg Rech)
    • Konsequenzen: Model-View-Controller wäre dann ein Stil und Singleton ein Muster
    • Ausnahmen: Ein System welches aus mehreren großen Subsystemen besteht (z.B. Client-Broker-Server) könnte MVC auch mehrmals enthalten.
    • Probleme: Model-View-Controller wird als Architekturmuster aufgeführt.
    • Alternativen: Vielleicht ist das auch eine Unterscheidungsmöglichkeit für Entwurfs- und Architekturmustern
 Sowohl die Architekturstile als auch die Architekturmuster wirken sich auf einer relativ
 globalen Ebene der Software-Architektur aus. Betroffen sind jeweils mehrere, wenn nicht 
 alle Bausteine der Architektur. Die Auswirkungen erstrecken sich entweder auf die Struktur 
 und das Zusammenspiel von Bausteinen (bei Architekturstilen) bzw. auf einen übergreifenden 
 Aspekt, der alle Bausteine betrifft (bei Architekturmustern).
 VSEK

Definitionen (Entwurfsmuster)

 A pattern is an idea that has been useful in one practical context and will probably be useful
 in others.
 Fowler 1997
 Design patterns capture solutions that have developed and evolved over time ... to specific problems
 GOF 1995
 A pattern addresses a recuring design problem that arises in specific design solutions, and presents
 a solution to it. Patterns document existing, well-proven design experience
 Buschmann 1996
 A Design Pattern provides a scheme for refining the subsystems or components of a software
 system, or the relationships between them. It describes commonly recurring structure of 
 communicating components that solves a general design problem within a particular context.
 POSA1, 1996

Definitionen (Antipatterns)

 An AntiPattern is generally a commonly repeated practice in industry that is flawed in some manner
 and that causes symptoms that are more undesirable than whatever positive results were sought
 APSCM, 1999
 An AntiPattern is a repeated application of code or design that leads to a bad outcome. The outcome
 can be poor performance or hard-to-maintain code or even a complete failure of the project.
 AntiPatterns are a detailed or specific way to capture the code errors.
 "J2EE AntiPatterns"

Architekturstil (engl. "architectural style")

 Architekturstile sind prinzipielle Lösungsstrukturen, die für ein Element
 einer Architektur durchgängig und mit weitgehendem Verzicht auf Ausnahmen
 angewandt werden.
 Reussner2006
 An architectural style is a description of component types and a pattern 
 of their runtime control and/or data transfer.
 Bass98
 An architectural style is a coordinated set of architectural constraints
 that restricts the roles/features of architectural elements and the allowed
 relationships among those elements within any architecture that conforms to
 that style.
 Fielding2000
 A specialization of element and relation types, together with a set of constraints
 on how they can be used. 
 Software Architecture Glossary der SEI
 Analog zur den Baustilen wie Gotik oder Romanik definiert ein Softwarearchitekturstil
 eine Familie strukturell ähnlicher Software-Architekturen. ... Ein Stil ist eine generische
 Beschreibung, mehrere Entwürfe können dem Stil über ihre charakteristischen Eigenschaften
 zugeordnet werden.
 VSEK
 An architectural style characterizes a family of systems that are related by shared 
 structural and semantic properties
 MKMG97

Architekturparadigma (engl. "architecture paradigm")

Architekturmetapher (engl. "architecture metaphor")

Architekturleitlinie (engl. "architectural principle")

Architektureinschränkung (engl. "architectural constraint")

Architekturregel (engl. "architectural rule")

Referenzarchitekturen (engl. reference architectures)

 Referenzarchitekturen kombinieren allgemeines Architektur-Wissen und
 allgemeine -Erfahrung mit spezifischen Anforderungen zu einer architektonischen
 Gesamtlösung für einen bestimmten Problembereich. Sie dokumentieren die 
 Strukturen des Systems, die wesentlichen Sytembausteine, deren 
 Verantwortlichkeiten und deren Zusammenspiel.
 Vogel05
 A reference architecture is a reference model mapped onto software components 
 (that will implement the functionality defined in the reference model) and the 
 data flow between the components
 Bass98
 A reference architecture provides a proven template solution for an architecture
 for a particular domain. It also provide a common vocabulary with which to discuss
 implementations, often with the aim to stress commonality.
 Wikipedia.org

Weitere Konzepte

Mustersprachen (engl. "pattern languages")

Musterfamilien (engl. "pattern families")

Mustersysteme (engl. "pattern systems")

Musterkataloge (engl. "pattern catalogs")

Entwurfs-heuristiken (engl. "design heuristics")

Entwurfs-prinzipien (engl. "design principles")

Idiome

 An Idiom is a low-level pattern specific to a programming language. An idiom describes how
 to implement particular aspects of components or the relationships between them using the
 features of the given language.
 POSA1, 1996
Persönliche Werkzeuge