Wiederverwendbarkeit

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel beschäftigt sich mit der Wiederverwendbarkeit von Programmmodulen. Für den Begriff im Sinne von Weiternutzung von Gegenständen siehe Wiederverwendung.

Wiederverwendbarkeit ist ein Qualitätsmerkmal von Software-Bausteinen. Unter dem Begriff werden Eigenschaften eines solchen Bausteins zusammengefasst, die dazu führen, dass dieser nicht nur im Rahmen des Projektes eingesetzt werden kann, für das er ursprünglich entwickelt wurde. Wiederverwendbare Bausteine wurden mit dem Aufkommen der modularen Programmierung und der Objektorientierten Programmierung populär, da diese Paradigmen Mittel schufen, sie auf einfache Weise zu implementieren. Durch die Wiederverwendung von Programmcode und Programmpaketen können Codewiederholungen vermieden werden.

Abstraktion[Bearbeiten]

Die hervorstechende Eigenschaft eines wiederverwendbaren Bausteins ist dessen abstrakter Charakter. Das bedeutet, dass der Baustein in der Regel keine weiteren Bausteine oder gar die Bedingungen eines bestimmten Softwareprojektes voraussetzt. In der objektorientierten Programmierung kann dies beispielsweise dadurch unterstützt werden, bei Interaktion zwischen verschiedenen Bausteinen das Event-Listener-Modell einzusetzen. Hierbei wird bei Kommunikationsbedarf der abstrakten Komponente ein Ereignis (event) an vorher angemeldete Listener-Komponenten vermittelt. Da durch dieses Verfahren ein direkter Aufruf einer Methode oder Funktion in einem anderen Modul vermieden wird, wird die Komponente dadurch abstrakter.

Flexibilität[Bearbeiten]

Die flexible Planung eines Bausteins geht Hand in Hand mit seinem abstrakten Charakter. Bei der Entwicklung eines Softwareprojektes passiert es leicht, dass bei der Planung der einzelnen Komponenten nur auf die Anforderungen bezüglich dieses Projektes geachtet werden. Soll ein Baustein wiederverwendbar sein, müssen jedoch weitere, eventuell auftretende Anforderungen vorhergesehen werden. Am oben genannten Beispiel mit dem Event-Listener-Modell könnte dies bedeuten, dass für alle Ereignisse, die in einer Komponente auftreten können, ein solcher event erzeugt wird, unabhängig davon, ob diese offensichtlich relevant sind.

Implementierungen[Bearbeiten]

Perl, Python und weitere Skriptsprachen[Bearbeiten]

Skriptsprachen sind in Bezug auf wiederverwendbare Komponenten von jeher Vorreiter gewesen. Für die weiter verbreiteten Exemplare existieren große Sammlungen von frei verfügbaren Modulen. Legendär, jedoch nicht einzigartig, ist in dieser Hinsicht das Perl-Archiv CPAN. Auch für andere Skriptsprachen, exemplarisch sei hier Python genannt, gibt es scheinbar unerschöpfliche Quellen für solche Module.

Java[Bearbeiten]

Die Programmiersprache und Laufzeitumgebung Java wird unter der Bezeichnung Java EE als komponentenorientierte Entwicklungsumgebung für Webservices angeboten. Aufgrund der Modularität von Java EE existieren unter dem Schlagwort Enterprise Java Beans zahllose, kommerziell angebotene, wiederverwendbare Komponenten. Außerhalb von Java EE gibt es ein ähnlich benanntes, aber sehr unterschiedlich implementiertes Konzept unter dem Namen Java Beans, ein Framework, das beschreibt, wie wiederverwendbare Komponenten ihre Eigenschaften und Methoden veröffentlichen können. Auf dieser Grundlage kann beispielsweise eine grafische Entwicklungsoberfläche erlauben, per Mausclick Verknüpfungen zwischen den Eigenschaften verschiedener Beans herzustellen.

.NET[Bearbeiten]

Die Java nachempfundene Technologie .NET stellt ähnliche Möglichkeiten zur Verfügung wie Java selbst. Während das Java EE-Pendant .NET Enterprise Services noch keine weite Verbreitung hat, hat sich im Bereich der Anwendungsentwicklung ein zu Java vergleichbarer Markt für wiederverwendbare Komponenten entwickelt.