- Pattern Language
-
Eine Mustersprache (engl. pattern language) ist eine Sammlung von Entwurfsmustern, also bewährten Verfahren zur Lösung typischer Probleme, die bei konstruierenden Tätigkeiten in einem bestimmten Anwendungsgebiet auftreten. Dabei werden im Wesentlichen zwei Ziele verfolgt:
- Es wird eine einheitliche Sprache aus Namen für Probleme und deren Lösungen definiert, um die Kommunikation zwischen Entwicklern zu erleichtern.
- Unerfahrenen Entwicklern werden Problemlösungen für typische, immer wiederkehrende Entwurfsprobleme geboten. Sie können somit von Erfahrungen anderer profitieren.
Der Begriff wurde ursprünglich vom Architekten Christopher Alexander geprägt. In seinem an Laien gerichteten Buch A Pattern Language. Towns, Buildings, Construction stellte er 1977 die erste Mustersprache vor. Später wurde das Konzept in andere Fachbereiche übernommen, besonders in die objektorientierte Softwareentwicklung und die Mensch-Computer-Interaktion (Human-Computer Interaction, HCI).
Eine sehr einfache Definition des Begriffs der Mustersprache findet sich im Portland Pattern Repository von Ward Cunningham:
- A set of patterns becomes a pattern language when each of its patterns, once solved, leads to more patterns that should then be considered.[1]
- „Eine Menge von Mustern wird zur Mustersprache wenn jedes ihrer Muster, sobald es gelöst ist, zu mehr Mustern führt, die anschließend betrachtet werden sollten.“
Inhaltsverzeichnis
Struktur
Die Entwurfsmuster von Alexander folgen einer festen Struktur; sie beginnen mit einem Kontext und enden mit Referenzen auf andere Muster. Im Kontextteil wird auf verwandte Muster verwiesen, die im Planungsprozess zuvor zu betrachten sind; die Referenzen verweisen auf Muster, die später auftreten. Dadurch ergibt sich ein Hypertext, wobei die Verweise typografisch durch Kapitälchen hervorgehoben werden. Dass die Entwurfsmuster als Gesamtheit verstanden werden sollen, wird dadurch gekennzeichnet, dass jedes Muster mit Auslassungspunkten beginnt und endet.
Anhand dieser Querverweise ist es möglich, die Planung in einer Form durchzuführen, die Alexander unfolding (Entfalten) nennt. Dabei behandeln die Muster der höchsten Ebene – also diejenigen, die bei der Planung zuerst betrachtet werden sollen – die Planung von Städten. Weiter unten in der Hierarchie stehende Muster behandeln räumlich kleinere Strukturen, bis hin zu Teilen von einzelnen Räumen. Es handelt sich damit um einen Top-Down-Prozess. Alexander legt Wert darauf, dass die Querverweise ebenso wichtig sind wie die Muster selbst.
Andere Mustersprachen
Die Idee, den Benutzer in den Entwurfsprozess mit einzugliedern, fand auch in anderen Fachbereichen Anklang, besonders im Bereich der Mensch-Computer-Interaktion. Jennifer Tidwell veröffentlichte 2005 das Buch Designing Interfaces, in dem eine Mustersprache aus ca. 100 Entwurfsmustern beschrieben wird. Dabei deckt sie sämtliche Bereiche der Mensch-Computer-Interaktion ab.
Jan Borchers schrieb in A Pattern Language for Interactive Music Exhibits drei Mustersprachen aus den Bereichen Blues-Musik, Mensch-Computer-Interaktion und Softwareentwicklung, um die Kommunikation zwischen diesen drei Fachbereichen zu vereinfachen.
Duyne, Landay und Hong schrieben mit The Design of Sites eine Mustersprache für Websites. Die Mustersprache ist in der Reihenfolge aufgebaut, in der die Probleme im Entwicklungsprozess beim iterativen Entwurf auftauchen.
Die wohl bekannteste Sammlung von Entwurfsmustern, die die sogenannte Viererbande in Design Patterns – Elements of Reusable Object-Oriented Software veröffentlichte, kann insofern nicht als Mustersprache bezeichnet werden, als dass sie mit nur 23 Entwurfsmustern nicht vollständig ist. Sie gab jedoch den Anstoß für die Entwicklung von Mustersprachen in der Softwaretechnologie, wie z. B. für den Entwurf von Softwareentwicklungswerkzeugen und Softwarearchitekturen.
Literatur
- Christopher Alexander, Sara Ishikawa, Murray Silverstein, Max Jacobson, Ingrid Fiksfahl-King, Shlomo Angel: Eine Muster-Sprache. Städte, Gebäude, Konstruktion. Löcker, Wien 1995, ISBN 3-85409-179-6
- James O. Coplien, Douglas C. Schmidt (Hrsg.): Pattern Languages of Program Design. Addison Wesley, 1995, ISBN 0-201-60734-4.
- Jan Borchers: A Pattern Approach to Interaction Design. John Wiley & Sons, Chichester 2001, ISBN 0-471-49828-9
- Jennifer Tidwell: Designing Interfaces. O'Reilly Media, 2005, ISBN 0596008031
- Douglas K. van Duyne, James A. Landay, Jason I. Hong: The Design of Sites: Patterns, Principles, and Processes for Crafting a Customer-Centered Web Experience. Addison-Wesley Professional, 2002, ISBN 020172149X
Einzelnachweise
Wikimedia Foundation.