Lexikon

Entwurfsmuster

Der Architekt Christopher Alexander hält die Keynote-Ansprache auf der OOPSLA ’96 – der bedeutendsten Konferenz über die objektorientierte Softwaretechnik. Sein Musterbegriff, entwickelt in den 70er Jahren für die Gebäude-Architektur und Städteplanung, hat das Schlagwort Entwurfsmuster (Design Patterns) geprägt. Es war wohl die Suche nach der Konzeption eines Architektur-Handbuchs für den Software-Entwurf (OOPSLA ’92), die zur alexandrinischen Musterform führte. 1995 hieß das bestverkaufte Buch der Informatik „Design Patterns: Elements of Reusable Object-Oriented Software". Der Musterbegriff hat eine Bewegung ausgelöst, die ihresgleichen sucht ( http://st-www.cs.uiuc.edu/users/patterns/patterns.html). Internationale Workshops finden bereits turnusmäßig statt: Pattern Languages of Program Design, PLoP ’94–’96, EuroPLoP ’96.

Alltagssprachlich verstehen wir unter einem Muster: eine Vorlage, nach der etwas hergestellt wird, ein beispielhaftes Vorbild oder eine regelmäßige, sich wiederholende Struktur. In allen drei Interpretationen wird der Begriff in der (objektorientierten) Softwaretechnik angewandt:

  • konstruktiv als Vorlage (generische Entwurfsmuster),
  • deskriptiv als Vorbild für die Dokumentation von Entwurfsentscheidungen und -kompromissen ( http://www.ti.et-inf.uni-siegen.de/Entwurfsmuster) und
  • strukturell als Orientierung in einem komplexen Entwurf.

Entwurfsmuster sind praxisbewährte Lösungsstrukturen für stereotype Entwurfsprobleme. Im Gegensatz zu Halbfabrikaten wie Klassenbibliotheken und Frameworks, werden immaterielle Entwürfe wiederverwendbar. Die handlungsorientierte Musterform macht das Erfahrungswissen der Experten leichter zugänglich. Zur Disposition des Entwerfers stehen nicht mehr nur einzelne Klassen, sondern vielmehr Konfigurationen mehrerer Klassen – Mikro-Architekturen.

Beispiel: Der Entwurf einer grafischen Oberfläche wäre ohne die Orientierung an Erfahrungswerten mühsam, ad hoc und fehlerträchtig. Ein mustergestützter Entwurf könnte nun folgendermaßen verlaufen: Wir definieren zunächst unser konkretes Problem (z.B. die Entkopplung unterschiedlicher, aber konsistenter Visualisierungen desselben Datenbestands) und suchen dann in einem Musterbuch nach geeigneten Vorlagen. Wir finden ein strategisches Muster namens „Model-View-Controller" (MVC, Abb. 1) und erfahren, daß es sich in interaktiven Grafikanwendungen bewährt hat. Auf wenigen Seiten werden dort das immer wiederkehrende Entwurfsproblem, der Anwendungskontext und eine Lösungsstruktur beschrieben.

Literatur

  1. Alexander, C. et al.: A Pattern Language: Towns, Buildings, Construction. New York: Oxford University Press 1977
  2. Buschmann, F. et al.: Pattern-Oriented Software Architecture: A System of Patterns. Chichester: Wiley & Sons 1996
  3. Coplien, J. O.: Advanced C++ Programming Styles and Idioms. Reading MA: Addison-Wesley 1991
  4. Coplien, J. O.; Schmidt, D. C. (Hrsg.): Pattern Languages of Program Design. Reading MA: AddisonWesley 1995
  5. Fowler, M.: Analysis Patterns: Reusable Object Models. Reading MA: Addison-Wesley 1996
  6. Gamma, E. et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Reading MA: Addison-Wesley 1995, 5. Druck
  7. Quibeldey-Cirkel, K.: Das Objekt-Paradigma in der Informatik. Stuttgart: Teubner 1994

Autor und Copyright

Klaus Quibeldey-Cirkel
Universität Siegen, 
Technische Informatik, 
Hölderlinstrasse 3, 
D-57068 Siegen, 
Tel 0271/7403210, Fax 0271/7403344
quibeldey@ti.et-inf.uni-siegen.de

© 1996 Informatik Spektrum, Springer-Verlag Berlin Heidelberg