Widerstände gegen Wiederverwendung

 

"Despite the obvious advantages of software reuse, almost all software systems continue to be developed from scratch."

[Pree, 1994]

Bei der Softwareentwicklung wird das berühmte Rad leider immer noch zu häufig neu erfunden, trotz der oben aufgeführten Vorteile der Wiederverwendung. Die Gründe dafür lassen sich in verschiedene Kategorien unterteilen, von denen einige in den nachfolgenden Abschnitten vorgestellt werden.

Organisatorische Gründe

Ein behindernder Faktor sind unzureichende Organisationsformen in den Softwarefirmen. Zu viele Hierarchieebenen in den Organisationsstrukturen behindern den Informationsaustausch zwischen verschiedenen Projekten und somit auch den Erfolg der Wiederverwendung. Eine Studie bei Hewlett-Packard [Fafchamps, 1994] verwendet den Begriff der Entwerfer-Kunde-Schnittstelle für die firmeninterne Wiederverwendung. Der Entwerfer entwickelt wiederverwendbare Komponenten, der Kunde entwickelt Produkte mit wiederverwendbaren Komponenten. Die Rollen sind dabei nicht starr auf bestimmte Gruppen festgelegt, sondern wechseln je nach Bedarf, damit alle Projekte voneinander profitieren. Eine solche Schnittstelle gilt es zwischen den einzelnen Entwicklungsgruppen aufzubauen. Die Studie bei Hewlett-Packard gibt dazu vier mögliche Modelle und Organisationsformen an, von denen eine in Abbildung 3 dargestellt ist. Dabei handelt es sich um das nested-producer Modell , bei dem je Team ein Mitglied für die Belange der Wiederverwendung verantwortlich ist. Ihre Aufgaben bestehen in der Beschaffung, Datenhaltung, Bereitstellung, Wartung und Pflege von Softwarekomponenten. Diese bilden eine zusätzliche Kommunikationslinie zwischen den Entwicklungsteams. Die Zuständigkeit einer einzelnen Person bedeutet nicht, daß diese allein für wiederverwendbare Komponenten zuständig ist. Vielmehr müssen alle Mitarbeiter dazu angehalten werden, ihre Arbeit auf den speziellen Faktor Wiederverwendung auszurichten.

Das nested-producer model [Fafchamps, 1994, S. 36]

 

Ein weiteres Beispiel dafür, daß das Organisationproblem erkannt wurde, zeigt der Artikel von Elisabeth Kauba [Kauba, 1996]. Die von ihr beschriebenen Schlüsselfaktoren für erfolgreiche Wiederverwendung sind unter anderem: Geeignete Organisationsstruktur , überzeugtes Management und Ausgefeilte Strategie .

 

Psychologische Gründe

Der Faktor Mensch darf bei der Problematik der Wiederverwendung nicht vergessen werden. Bei den meisten Softwareentwicklern besteht das Bedürfnis, ein bestimmtes Softwaremodul, einen Baustein oder einen Algorithmus besser zu implementieren als seine Vorgänger. Dabei existieren für die meisten Standardproblemstellungen fertige Implementierungen, die im Zweifelsfall an die Gegebenheiten angepaßt werden müssen. Fremdentwicklungen werden häufig kategorisch abgelehnt. Diese Verhaltensweise wird allgemein unter dem Begriff Not-invented-here -Syndrom zusammengefaßt. Es wird an der Korrektheit und der Effizienz der Arbeit anderer gezweifelt. Ein rigoroser Komponentenentwurf wird auch als Beschränkung der Entwurfsfreiheit angesehen. Motivierte Entwickler sind aber nach Elisabeth Kauba ([Kauba, 1996]) ein weiterer Schlüsselfaktor für erfolgreiche Wiederverwendung.

 

Finanzielle Gründe

Die bereits angesprochene kapitalintensive Softwareherstellung durch den Einkauf von umfangreichen Bausteinbibliotheken und entsprechenden Werkzeugen, stößt oftmals an die Budgetgrenzen eines normalen Projekts. Die Kosten für Projekte mit Wiederverwendung scheinen erheblich über den Projekten ohne umfangreiche Wiederverwendung zu liegen. Projekte mit dieser Ausrichtung treffen daher oftmals im Management auf Ablehnung. Dabei wird die Tatsache verkannt, daß einmal getätigte Investitionen nach Abschluß eines Projekts nicht verloren sind, sondern für weitere Projekte ähnlicher Art verwendet werden können. Die Umstellung der Entwicklungsabteilungen auf die Ansprüche der Wiederverwendung verursacht zu einem Zeitpunkt Kosten, zu dem nur geschätzt werden kann, wie hoch die Einsparungen in zukünftigen Projekten sein werden. A. Endres [Endress, 1988] gibt eine abschätzende Formel für die Kosten der Wiederverwendung an:

Dabei sind KW die Kosten der Wiederverwendung, KG die Kosten der Vorleistungen, KA die Kosten der Anpassung und n die Häufigkeit der Wiederverwendung. Unter der Voraussetzung, daß die Kosten für Vorleistungen und Anpassungen bekannt sind, bleibt immer noch die Abschätzung über die Anzahl der Möglichkeiten, ein Element wieder zu verwenden.

Ein weiterer finanzieller Aspekt besteht hauptsächlich für Zulieferfirmen. Je allgemeiner und wiederverwendbarer eine Software ist und je breiter das Einsatzgebiet, desto weniger benötigt ein Kunde in Zukunft neue Software. Mit guter und wiederverwendbarer Software verschlechtert der Hersteller seinen Absatzmarkt. Aus diesem Grunde werden meist Lizenzgebühren je verkaufte, mit fremdbestandteilen ausgestattete Software erhoben. Auch dies ist ein Aspekt, der nicht sonderlich zur Akzeptanz von Wiederverwendung und Komponentenkauf beiträgt.

 

Rechtliche Gründe

Dieser Abschnitt befaßt sich mit den Rechten von Softwareherstellern und Benutzern. Darunter fallen Begriffe wie z.B. Patent, Copyright, Lizenz und Produkthaftung. Auf die einzelnen Bedeutungen soll hier nicht näher eingegangen werden, da es sich dabei um ein serh umfangreiches Gebiet handelt und den Rahmen dieser Arbeit sprengen würde. Eine kurze übersicht hierzu bietet zum Beispiel der Informatik-Duden [Claus & Schwill, 1993]. Ausführliche Betrachtungen zu diesem Thema liefern [Koch & Schnupp, 91]. Die im Kapitel 1.2 angesprochene Kapitalintensive Softwaretechnik , d.h.die Softwareentwicklung mit gekauften Komponenten, ruft vermehrt diese Probleme hervor. Wer übernimmt beispielsweise im Schadensfall die Produkthaftung, wenn an einer Software mehrere Firmen beteiligt sind, und zu welchen Teilen? Wem gehören die Rechte an einer Software? Diese und andere Probleme müssen in Zukunft noch geklärt werden.

 

Fazit

Wiederverwendung ist eine der wichtigsten Methoden zur Bewältigung großer Softwareprojekte. Durch Wiederverwendung kann die Produktivität gesteigert und gleichzeitig die Qualität der Software verbessert werden. Obwohl die ersten Vorschläge aus den 60er Jahren stammen und die Vorteile allgemein anerkannt sind, wird dennoch zu häufig von Grund auf neu programmiert. Einige Faktoren gegen Wiederverwendung wurden vorgestellt, z.B. organisatorische und psychologische Probleme. Bei den Betrachtungen wurden bisher die technischen Problemstellungen ignoriert, wie z.B. fehlende Methoden und Werkzeuge zur Spezifikation wiederverwendbarer Software. Dieses Versäumnis soll nun im folgenden Kapitel nachgeholt werden. Dazu werden einige verbreitete Arten der Wiederverwendungsmethoden vorgestellt.