Gründe für Software-Wiederverwendung

Gründe für Software-Wiederverwendung Es stellt sich die Frage, welche Vorteile die Softwareentwicklung mit umfangreicher Wiederverwendung gegenüber einer Entwicklung ohne Wiederverwendung bietet. Im folgenden werden die Auswirkungen der Wiederverwendung auf die Aspekte Produktivitätssteigerung, Markteinführungszeit, Softwarekosten und Softwarequalität betrachtet.

 

Produktivitätssteigerung

Der jährliche Zuwachs der Softwareentwicklungen betrug in den 60er und 70er Jahren etwa 3% bis 8%. Das ist nicht viel, wenn man die Zuwachsraten anderer Branchen betrachtet. Beispielsweise hat die Rechenleistung im gleichen Zeitraum um 40% zugenommen [Quibeldey-Cirkel, 1994, S. 62]. Die Softwareentwicklung kann der Rechnerentwicklung nicht folgen. Die Vorteile der Hardware liegen zum einen in den regulären Strukturen, die große Teile der integrierten Schaltungen aufweisen. Zum anderen existieren für alle Standardprobleme Lösungen in Form von Bausteinbibliotheken, so daß Hardwareentwickler auf eine Vielzahl von Implementierungen zurückgreifen können und davon auch Gebrauch machen.

Reguläre Strukturen sind bei Software wesentlich schwerer festzustellen als bei Hardware. Programme weisen aber häufig wiederkehrende Bestandteile auf. Der Anteil der wiederverwendbaren Bestandteile bei einer Softwareentwicklung liegt, je nach Angaben des Autors, zwischen 30% und 90% (vgl. [Küffman, 1994, S. 32]). Nachzuweisen sind davon aber nur Angaben im Bereich von 30% bis 60%, z.B. durch empirische Studien von Lamergan & Grasso (vgl.[Küffmann, 1994, S. 33]) oder Wayne C. Lim [Lim, 1994] . Durch den systematischen Einsatz von wiederverwendbaren Softwarebausteinen läßt sich ein erheblicher Produktivitätszuwachs erreichen. Auch hierbei schwanken die Angaben von 10% bis 90% [Küffman, 1994, S. 34]. Diese Schwankungen lassen sich unter anderem auf die unterschiedliche Art der zugrundeliegenden Programme zurückführen. An den dargestellten Zahlen läßt sich erahnen, daß Software-Wiederverwendung im großen Stil zu erheblichen Produktivitätszuwächsen führen kann.

 

Markteinführungszeit

Umfangreiche Softwareprojekte haben meist mit großer Zeitnot zu kämpfen. Planungen, die ohnehin schon im Bereich von mehreren Monaten und Jahren angesiedelt sind, werden oftmals um das Mehrfache überschritten. Softwareprodukte gelangen daher mit erheblicher Verspätung oder auch gar nicht auf den Markt. Es werden mögliche Vorteile gegenüber anderen Herstellern eingebüßt und die Kosten erheblich erhöht. Nicht umsonst sind Softwarefirmen darauf bedacht, ihre Produkte so schnell wie möglich auf den Markt zu bringen ( Time-to-Market ), um Wettbewerbsvorteile gegenüber anderen Firmen auszunutzen. Wiederverwendung ist eine Möglichkeit, den Softwareentwurfsprozeß erheblich zu beschleunigen. Anstatt Komponenten selbst zu entwickeln, sollten diese bei spezialisierten Firmen eingekauft werden. Dadurch fällt die Entwicklungs- und Testzeit für diese Teile weg, was zu einer erheblichen Zeitersparnis führt.

 

Softwarekosten

Der Entwurf von Software mit Wiederverwendung verändert unter anderem die Kostenverteilung. Wo zuvor alle Teile in hauseigenen Abteilungen entstanden, sollen nun umfangreiche, vorgefertigte Komponenten eingesetzt werden, wie z.B. Modulbibliotheken oder komplette Benutzungsoberflächen. Die zunächst höheren Kosten für die Anschaffung können dabei nicht einem einzelnen Projekt auferlegt werden, sondern müssen wegen der Wiederverwendbarkeit der Teile auf mehrere verteilt werden. Peter Wegner formuliert diesen Aspekt der Wiederverwendung unter der Bezeichnung "Kapitalintensive Softwaretechnik" [Wegner, 1984]. Er befürwortet den Wandel der vorherrschenden arbeitsintensiven Strukturen zu kapitalintensiven Softwareindustrien auf der Basis von Softwarekomponenten. "Software components are the capital-intensive building blocks out of which large programs are constructed." [Wegner, 1984]. Auf lange Sicht kann der Kauf von Softwarekomponenten und deren Wiederverwendung zur Verminderung der Softwareentwicklungskosten beitragen, nicht zuletzt durch die im vorherigen Abschnitt beschriebene Zeiteinsparung.

 

Softwarequalität

Die Korrektheit von Software ist eines der wichtigsten Merkmale, an denen der Kunde interessiert ist. Kann die Funktionalität eines Programms nicht gewährleistet werden, so ist es wertlos. Bertrand Meyer unterteilt den Begriff Softwarequalität in äußere und innere Faktoren [Meyer, 1989]. Äußere Faktoren sind solche, die den Endbenutzer eines Softwareproduktes direkt betreffen, wie z.B. Korrektheit, Robustheit, Erweiterbarkeit oder Wiederverwendbarkeit. Innere Qualitätsfaktoren sind dagegen nur für Softwareentwickler sichtbar, wie z.B. Lesbarkeit und Modularität. Hier interessiert vor allem die Wiederverwendbarkeit als Qualitätsfaktor.

Durch Wiederverwendung kann die Qualität der Software erheblich verbessert werden. Durch den vermehrten Einsatz von erprobten Komponenten, deren Funktionalität bereits unter Beweis gestellt wurde, verringert sich die Anzahl der möglichen Fehler. Der Aufwand für die Fehlersuche, sprich Zeit und Kosten, verringert sich.