Wie unterstützen Entwurfsmuster die Software-Wiederverwendung?

 

"Der Begriff des Entwurfsmuster ist gerade in der objektorientierten Welt ganz wesentlich, da er eine höhere Form der Wiederverwendung darstellt."

[Booch, 1994b]

Zu Beginn dieser Arbeit wurde in Bezug auf die Entwurfsmuster von der Wiederverwendung von Wissen gesprochen. Dies muß nun näher erläutert werden. Entwurfsmuster sollen die Wiederverwendung von guten Entwurfsmethoden im Software-Engineering ermöglichen. Einmal entwickelte und erfolgreich eingesetzte Methoden sollten nicht von jedem Neuling in der Softwarebranche immer wieder neu entdeckt werden müssen. Es würde zu lange dauern, die nötige Erfahrung zu erlangen und einige würden den Aha! Effekt niemals erleben. Design methods are supposed to promote good design, to teach new designers how to design well, and to standardize the way designs are developed. [Gamma et al., 1993, S. 406]

Nun stellt sich die Frage: "Wie kann das Wissen im Software-Engineering am besten vermittelt werden?" Die Antwort lautet hier: "In Form von Mustern!" Muster werden als Vorlage benutzt, für etwas das neu zu entwerfen ist bzw.reproduziert werden soll. Durch Nachmachen lernen Kinder das Sprechen. Der Einsatz von Mustern ist daher eine Art Lernprozeß. Warum etwas umständlich erklären, wenn ein Muster bereits ausreichend Erklärung genug ist.

Ein Muster wird benötigt, wenn ein Problem vorliegt. Dieses Muster kann dann zur Lösung führen (Problem-Lösungspaare [Buschmann, 1995]). Dies spiegelt sich auch in der Grobstruktur der Entwurfsmuster nach Gamma et al.wieder, mit den Elementen: Name, Problem, Lösung und Konsequenzen (siehe auch Abschnitt 3.4). Dabei handelt es sich in diesem Sinne nicht mehr um einen Problemlösungsvorgang, sondern um das Anwenden einer Menge von vorgegebenen Methoden und Lösungsvorschläge, also um Musterlösungen. Es soll gerade verhindert werden, daß zum wiederholten Mal ein Problem vollständig neu gelöst wird. Die Eingangs erwähnte Neigung der Softwareentwerfer, das Rad immer wieder neu und vermeintlich besser zu Erfinden, kann durch die fortschreitende Verbreitung der Entwurfsmuster verringert werden.

Wie gut von einem Muster gelernt bzw.wie gut ein Muster wiederverwendet werden kann, liegt an der Intuitivität und übersichtlichkeit der Darstellung des Musters. Die bisher vorherrschenden Standardwerke der Informatik, die sicherlich in irgendeiner Form alle Probleme abdecken, sind nicht schlecht, aber für die schnelle Lösungssuche eher ungeeignet.

Entwurfsmuster werden heute in graphischer, textueller oder auch multimedialer Form publiziert. Meist sind es Kombinationen aus Text, Graphik und Programmierbeispielen, in Form von Katalogen. Der bekannteste Vertreter dieser Form, ist der Entwurfsmusterkatalog von Gamma et al. . Obwohl es sich dabei um ein ca.400 Seiten starkes Buch handelt, wird jedes der dreiundzwanzig Entwurfsmuster so dargestellt, das es in kurzer Zeit verstanden und auf das vorliegende Problem angewendet werden kann. Als erster und erfolgreichster Katalog seiner Art, ist dessen Darstellungsform stillschweigend zum Standard der Musterbeschreibungen avanciert. Viele Autoren übernehmen diese Beschreibungsform mit nur geringfügigen Abwandlungen.

Neben der Buchform sind vor allem die Hypertext-Systeme sehr gut für die Beschreibung von Entwurfsmustern geeignet. Der populärste Vertreter ist das World-Wide-Web. Somit werden viele Entwurfsmuster wohl nur in Web-Seiten veröffentlicht. Einerseits ist das Internet aktueller als langfristig veröffentlichte Bücher, andererseits würden viele der Autoren niemals ein Buch veröffentlichen können.

Bei der Darstellung der Muster kommt es vor allem auf die kurze und übersichtliche Form an, mit welchem Medium auch immer dies geschieht. Die musterorientierte Art der Wissensübertragung hebt sich damit in bemerkenswerter Form von den Standardwerken des Software-Engineerings in Buchform heraus. Damit sollen letztere keineswegs verteufelt werden, im Gegenteil. Die Entwurfsmusterkatalog sind eine willkommende Bereicherung, die dazu beitragen können, die Anfangs erwähnte Steigerung der Produktivität und andere genannte Vorteile zu erreichen.

Die in diesem Abschnitt angesprochenen Aspekte der Wiederverwendung werden von Peter Sommerlad trefflich zusammengefaßt ([Sommerlad, 1996]):

In den folgenden Abschnitten sollen einige Beispiele für Entwurfsmuster kurz vorgestellt werden, um die hier aufgezeigten Vorteile zu erläutern. Dabei handelt es sich nur um einen winzigen Ausschnitt aus der Fülle der mittlerweile existierenden Entwurfsmuster-Vorschläge. An dieser Stelle sei daher noch einmal auf die hier zitierte Literatur und die Diskussionsforen im Internet verweisen.