Muster hinter Klostermauern

Grundlagen des Programmdesign auf der dritten EuroPLoP

Trends & News | News

Konferenzen sind ein bewährter Ort für den Erfahrungsaustausch. Software-Architekten haben dafür eine ganz spezielle Veranstaltung: eine Konferenz zur gemeinsamen Erarbeitung von Patterns, also Mustern für die Programmentwicklung.

9. Juli, kurz vor halb drei. Mitarbeiter des ehemaligen Benediktinerklosters Irsee im Ostallgäu schauen im Speisesaal besorgt zur Decke hinauf. Von oben dröhnt infernalischer Lärm: die knapp sechzig Personen, die diesen Radau produzieren, sind Teilnehmer der dritten EuroPLoP, der European Conference on Pattern Languages of Programming and Computing. Sie haben sich aber keineswegs von der wechselvollen Geschichte des Hauses beeindrucken lassen. Viele von ihnen gehören zu den profiliertesten Software-Architekten der Branche.

Seit dem Erscheinen des mittlerweile berühmten Buches der sogenannten Gang of Four [[#lit1 1]] sind Software Patterns Thema bei der Software-Entwicklung. Dabei geht es nicht um den Einsatz mehr oder weniger vorgefertigter Bausteine, sondern um das Wissen darum, welche konstruktiven Möglichkeiten zur Lösung einer Aufgabe bereitstehen.

Für Paul Dyson, einen der beiden Organisatoren der diesjährigen EuroPLoP, 'ist das Besondere das Gewicht, das wir auf die Autoren statt auf ihre Arbeit legen. Wir beachten die Menschen und unterstützen sie bei der Verbesserung und Erweiterung ihrer Arbeit. Alle können so maximalen Gewinn daraus ziehen.'

Die Arbeit an einem Pattern beginnt lange vor der Konferenz mit dem shepherding. Der Autor - das Schaf - tauscht mit einem besonders erfahrenen Software-Architekten - dem Hirten - Entwürfe aus und baut dessen Anregungen und Vorschläge in weitere Versionen ein. Die Arbeiten erreichen so bis zur Konferenz ein hohes fachliches Niveau.

Wichtigste Arbeitsform auf der Konferenz selbst sind die Writer's Workshops, die dem Literaturbetrieb abgeschaut wurden. Zunächst liest der Autor einen kleinen Abschnitt aus seiner Arbeit, dann zieht er sich völlig aus dem Kreis der anderen zurück und nimmt nicht an den folgenden Gesprächen teil.

Nach einer kurzen Zusammenfasssung des Patterns tragen die Teilnehmer zunächst alle Punkte zusammen, die in der nächsten Version unbedingt erhalten bleiben sollten. Danach werden konstruktive Vorschläge zur Verbesserung diskutiert. Der Autor erkennt dabei, ob er seine Erfahrungen weitergeben konnte und die anderen Teilnehmern der Runde bekommen ein tiefes Verständnis des Problems und der vorgeschlagenen Lösung. Regelmäßig tauchen hierbei auch neue Gesichtspunkte auf, die der Arbeit zu mehr Breite und Tiefgang verhelfen können.

Danach sind nur Fragen zum Verständnis der Vorschläge üblich. Der Autor diskutiert seine Arbeit nicht und entscheidet auch selbst, was davon in die nach der Konferenz fertiggestellten und veröffentlichten Arbeiten [[#lit2 2]] einfließt.

In der Praxis ist dies eine sehr spannende, aber auch kräftezehrende Angelegenheit. Keine PLoP ist daher denkbar ohne George Platts, einen Kunst- und Bewegungstherapeuten aus England. Seine Spiele, auf Kommunikation und Bewegung ausgerichtet, haben großen Anteil an der freundschaftlichen Atmosphäre - und lösen manches Mal eben auch infernalischen Lärm aus.

Auch die Umgangsformen auf einer PLoP unterscheiden sich vom Gewohnten. 'Es gibt keinen Guru-Kult - außer man macht sich über ihn lustig', sagt Organisator Jens Coldewey. In der Tat sind auch Größen wie Alistair Cockburn immer bereit, ihr Wissen weiterzugeben. Patterns von Jim Coplien werden genau so behandelt wie die eines Anfängers. Zusammen mit der besonderen Umgebung ohne jede Hektik wird jede PLoP dadurch zu einem besonderen Erlebnis. (jk)

[1] Gamma, Helm, Johnson, Vlissides: Design Patterns, Addison-Wesley 1995

[2] Coldewey, Dyson, Proceedings of the 3rd EuroPLoP, Universitätsverlag Konstanz, Winter 1998

[3] Alexander et al., A Pattern Language, Oxford Univ. Press, 1997

[#anfang Seitenanfang]


Martin Fowler beschreibt den Begriff Pattern so: Ein Muster ist eine Idee, die in einem praktischen Zusammenhang nützlich war und in anderen wahrscheinlich nützlich sein wird. Diese Definition beschränkt sich bewußt nicht nur auf Entwurfsmuster, Patterns gewinnen auch auf Gebieten wie der Lehre und Dokumentation an Bedeutung. Wichtig ist ihr Praxisbezug: gute Muster werden nicht erfunden, sondern gefunden (mined, not invented).

Patterns beantworten Fragen der Art 'Wie stelle ich sicher, daß von dieser Klasse immer nur ein Objekt existiert?' oder 'Wie verbinde ich eine objektorientierte Software mit einer relationalen Datenbank?' Damit die Essenz eines Patterns möglichst schnell erfaßt werden kann, haben sich ein strukturierter Aufbau und prägnante Formulierungen bewährt [[#lit1 1]]. Die Beschreibung eines Patterns besteht dann möglicherweise aus diesen Abschnitten: dem Problem, das ein Architekt mit diesem Muster lösen kann, dem Kontext, in dem das Problem auftritt, den äußeren Zwängen, die die Lösung beeinflussen, der Lösung sowie den Konsequenzen, die sich aus der Anwendung der Lösung ergeben.

Ein gutes Muster zeichnet sich durch möglichst viele bekannte Anwendungen aus. Hinzu kommen bei Bedarf Angaben zu Varianten und Implementation. Jedes Muster hat einen Name, der so knapp und präzise wie möglich sein muß. Weil jeder Architekt die Namen der wichtigsten Patterns kennt, wird die fachliche Kommunikation viel einfacher, wenn man über Factories, Singletons und Observers sprechen kann, ohne jedes Mal die zugrundeliegenden Konzepte erläutern zu müssen.

Der erste, der Muster auf diese Weise beschrieb, war ein 'richtiger' Architekt. Christopher Alexanders Arbeiten [[#lit3 3]] sind bis heute empfohlene Lektüre für Software-Architekten. Im Internet findet man Informationen über Patterns und die EuroPLoP unter http://hillside.net/patterns/ und http://www.coldewey.com/europlop98/.