"The notion of reusability has been around since humans began to solve problems. When we solve a problem, we try to apply the solution to similar new problems. If we find that only some elements of the solution apply, we adapt it to fit the new problem."
Prieto-Díaz, 1993
Warum spricht man immer wieder von Wiederverwendung? Ist es nicht selbstverständlich, getätigte Investitionen und erworbenes Wissen möglichst gut und möglichst oft wieder einzusetzen, um daraus den größtmöglichen Nutzen zu ziehen? Scheinbar nicht, denn sonst gäbe es nicht die anhaltende Diskussion um Methoden der Wiederverwendung in allen möglichen Schattierungen. Betrachtet man seine eigene Softwareentwicklungs- und Programmiertätigkeit, so kann man sich des Eindrucks nicht erwehren, daß dabei das Rad häufig neu erfunden wird und aufgrund fehlender Methoden auch neu erfunden werden muß.
Diskutiert wird über die Methoden und Techniken der Wiederverwendung, deren Einsatzfähigkeit und Notwendigkeit in der Softwareentwicklung, seitdem man versucht, der anhaltenden Softwarekrise methodisch entgegenzutreten. Diese belastet uns seit den 60er Jahren und noch ist keine endgültige Lösung in Sicht. Es existieren eigene Fachkonferenzen zum Thema Wiederverwendung, wie z.B. die IEEE Conference on Software Reusability, oder das ACM Symposium on Software Reusability. Weiterhin befassen sich die OO-Konferenzen wie OOP, OOPSLA und die vielen Fachzeitschriften der Informatik wie IEEE Software und OBJEKTspektrum mit der Thematik der Wiederverwendung [Kauba, 1996]. Einige gute Methoden und Ansätze sind seitdem in das Allgemeingut des Softwareentwicklers übergegangen. So findet zum Beispiel die Objektorientierung als durchgängiges Paradigma 1 langsam ihre industrielle Bedeutung.
Seit kurzem macht ein neues Schlagwort von sich reden: Entwurfsmuster (Design Patterns). Entwurfsmuster werden als neues Mittel zur Bewältigung komplexer Softwareentwicklungen angesehen. Bei Entwurfsmustern wird auf die Wiederverwendung von Erfahrungswissen gesetzt, und es wird mit musterorientiertem Entwerfen von Softwaresystemen geworben. Entwurfsmuster stellen eine neue Methode der Wiederverwendung dar, durch die auch Anfänger im Software-Engineering über das Wissen von Experten verfügen sollen.
Bevor allerdings auf die Entwurfsmuster eingegangen werden kann, muß zunächst der Begriff der Software-Wiederverwendung geklärt und einige Gründe für den Einsatz wiederverwendbarer Software gegeben werden. Außerdem werden einige Probleme angesprochen, die bisher den erhofften Erfolg stark einschränken. Kapitel 2 befaßt sich dann, zur Abgrenzung gegenüber den Entwurfsmustern, mit den wichtigsten "klassischen" Wiederverwendungsarten. Kapitel 3 betrachtet die Entwurfsmuster unter dem Aspekt der Wiederverwendung, wobei unterschiedliche Ansätze nach Erich Gamma & Richard Helm & Ralph Johnson & John Vlissides, James Coplien, Peter Coad und Wolfgang Pree vorgestellt werden.