Data - Goethe-Universität Frankfurt

Werbung
Wiederverwendung von Softwareelementen: Das Java Repository
Seite 1 von 6
Wiederverwendung von Software-Elementen: Das Java Repository
FACHTAGUNG SOFTWARE-MANAGEMENT '97: 29. - 31. Oktober 1997, München
Peter Buxmann, Frank Rose und Wolfgang König
Institut für Wirtschaftsinformatik
Johann Wolfgang Goethe-Universität
Frankfurt am Main
Tel. 069/7982-3318
Fax. 069/7982-8585
E-mail: { [email protected], [email protected], [email protected])
Zusammenfassung
Die weltweite Entwicklung von Java-Applets und -Klassen eröffnet ein enormes Potential für die Wiederverwendung
dieser Software-Elemente mit dem Internet als einer großen "Klassenbibliothek". Das Hauptproblem der Nutzung von
Klassenbibliotheken besteht häufig darin, die richtigen Klassen für bestimmte Problemstellungen zu finden. Zur
Unterstützung der Suche, Evaluation und anschlie ßendem Austausch von Java -Elementen wurde das Java Repository
(http://java.wiwi.uni -frankfurt.de) entwickelt, das in diesem Beitrag vor dem Hintergrund der Wiederverwendung
vorgestellt wird.
Abstract
The emergence of the programming language Java offers new opportunities for the reuse of Java software elements. The
Internet can serve as a class library. One main problem that arises in the use of software repositories is usually the search
for an appropriate class or problem solution. The Java Repository (http://java.wiwi.uni -frankfurt.de) has been developed
in order to support search, evaluation, and the exchange of Java software elements over the Internet.
1. Einleitung
Mit der Entwicklung der Programmiersprache Java [Gosling 95] wurde das Internet um die M öglichkeit erweitert,
weltweit Anwendungen und Dienste zur Verfügung zu stellen. Seit ihrer Einführung Mitte 1995 nahm die Verbreitung
der Sprache ständig zu. Es entstehen weltweit User-Gruppen, und Gremien beschäftigen sich mit der Standardisierung
der Sprache. W ährend Java zu Beginn überwiegend zur graphischen Gestaltung von Webseiten genutzt wurde, so hat
sich inzwischen die Situation grundlegend verändert. Unternehmen entwickeln mit Java Individual- und
Standardanwendungen, prominente Beispiele sind die Software für den Internet-Auftritt der Bank 24 sowie das OfficePaket der Firma Corel.
Die weltweite Entwicklung von Java-Applets und -Klassen (Java -Elemente) und deren Verfügbarkeit im World Wide
Web eröffnet ein enormes Potential für die Wiederverwendung dieser Elemente. Das Internet kann hierbei als eine große
"Klassenbibliothek" angesehen werden. Das Hauptproblem der Nutzung von Klassenbibliotheken besteht meist darin, die
richtigen Klassen für bestimmte Problemstellungen zu finden. Zur Unterstützung der Suche, Evaluation und
anschlie ßendem Austausch von Java -Elementen wurde das Java Repository (http://java.wiwi.uni-frankfurt.de) entwickelt.
Das Ziel dieses Beitrages besteht darin, diesen Intermediär für Java-Elemente vorzustellen sowie Möglichkeiten und
Grenzen der Wiederverwendung vor dem Hintergrund der "Klassenbibliothek Internet" zu diskutieren.
Im zweiten Kapitel werden zunächst Grundlagen der Wiederverwendung mit einem Schwerpunkt auf Java -Elementen
dargestellt. Gegenstand des dritten Kapitels ist die Vorstellung des Java Repository. Im vierten Kapitel werden
schließlich offene Probleme und Fragen behandelt.
2. Wiederverwendung von Java Software-Elementen
file://C:\Download\java-papers\JavaRep\html\papers\SwMgmtMuOkt97.htm
23.08.2002
Wiederverwendung von Softwareelementen: Das Java Repository
Seite 2 von 6
Unter Wirtschaftlichkeitsaspekten ist die Wiederverwendung von Software -Elementen seit langer Zeit eine wichtige
Anforderung an die Software -Entwicklung. Man versteht darunter allgemein das Benutzen bereits fr üher erstellter
Software-Elemente für die Entwicklung neuer Software [Endres 88, 86]. Die Vorteile der Wiederverwendung liegen auf
der Hand, so brauchen bereits verfügbare Software-Elemente nicht neu entwickelt und getestet werden [Sneed 87, 85-86]
("das Rad nicht jedes Mal neu erfinden"). Ermöglicht wird diese Wiederverwendung dadurch, daß
l
l
l
Software keinem Verschleiß unterliegt,
die Kopierkosten vernachläßigbar gering sind und
viele der durch Software gelösten Problemstellungen sich auf die gleichen Lösungsstrategien zurückführen lassen
[Heß 93, 8-9].
Häufig wird das Thema der Wiederverwendung in engem Zusammenhang mit objektorientierter Programmierung
genannt. Problematisch wird diese Argumentationskette immer dann, wenn eine direkte Kausalität zwischen
Objektorientierung und Wiederverwendbarkeit hergestellt wird. So erwecken manche Autoren den Eindruck, als wenn
gerade die Objektorientierung es erst ermöglich hätte, daß Software-Elemente in anderen Anwendungen
wiederverwendet werden. Diese Argumentation greift zu kurz, da bereits in der traditionellen Programmierung
Bibliotheken existiert haben, die wiederverwendbare Funktionen enthielten.
Ein wesentlicher Vorteil des objektorientierten Konzeptes in bezug auf die Wiederverwendung besteht in den
Möglichkeiten der Vererbung, des Polymorphismus sowie der Verkapselung von Daten und Methoden [Meyer 87].
Dadurch läß t sich ein höherer Abstraktionsgrad und eine eindeutigere Trennung von Nutzung und Implementierung der
Klassen erreichen. Insbesondere in Verbindung mit der M öglichkeit zur Modifikation einzelner Teilfunktionalitäten auf
Subklassenebene sind Objektklassen einfacher ohne umfangreiche Code -Redundanzen wiederzuverwenden [König/Wolf
1993].
Diese M öglichkeiten der Wiederverwendung stehen natürlich auch Java-Elementen offen. Von noch größ erer Bedeutung
ist jedoch die weltweite Verfügbarkeit von Problemlösungen im World Wide Web. Mittlerweile finden sich im World
Wide Web Informationen zu allen denkbaren Themengebieten, und die Anzahl der verfügbaren Informationen steigt
weiterhin exponentiell. Zukünftig wird es dort wahrscheinlich auch fast alle denkbaren kommerziellen Services geben
sowie - so unsere Vermutung - Java -Elemente zu einer Vielzahl von Anwendungen und Problemstellungen. Die
Ausnutzung dieses Potentials stellt eine große Chance und zugleich Herausforderung für die Zukunft dar und kann zu
einer grundlegenden Änderung der zuk ünftigen Softwareproduktion führen. Wie bei den meisten Bibliotheken, stellt sich
stets das Problem, den richtigen Softwarebaustein für eine gegebene Problemstellung zu finden. Im Internet wird dieses
Problem trotz leistungsfähiger Suchmaschinen vermutlich mit der Anzahl vorhandener Java -Problemlösungen sowie der
insgesamt wachsenden Menge an Informationen eher zu- als abnehmen. Als ein Service zur Unterstützung der Suche und
Auswahl von Problemlösungen wurde das Java Repository entwickelt.
3. Das Java Repository
Das Java Repository (http://java.wiwi.uni -frankfurt.de) sammelt und verbreitet Klassen und Applets, die über das World
Wide Web verfügbar sind, und stellt sie Nutzern zur Verfügung. Damit erfüllt das Java Repository die klassische
Intermediärsfunktion [Buxmann 97]. Hat ein solcher Intermediär einen vollkommenen Marktüberblick, d. h. kann er alle
relevanten am Markt verfügbaren Software-Elemente anbieten, so müssen die Nachfrager nur noch mit dem Intermediär
und nicht mehr mit allen Anbietern Kontakt aufnehmen.
Eine wesentliche Voraussetzung für eine systematische Wiederverwendung von Software-Elementen ist eine
Unterstützung bei der Suche nach geeigneten Bausteinen [Heß 93, 16-19]. Diese Suche wird im Java Repository durch
zwei Sichten auf die registrierten Einträge unterstützt: Die programmiertechnische Sicht fokussiert mit den verwendeten
Methoden und Techniken die Belange des Programmierers, die anwendungsbezogene Sicht ist demgegenüber stärker auf
den Anwender ausgerichtet. Das Browsen innerhalb jeder Sicht wird durch vielfältige Sortier- und Suchmöglichkeiten
unterstützt. Durch Schlagwortsuche wird zusätzlich ein direkter Zugriff auf entsprechende Java-Elemente ermöglicht.
file://C:\Download\java-papers\JavaRep\html\papers\SwMgmtMuOkt97.htm
23.08.2002
Wiederverwendung von Softwareelementen: Das Java Repository
Seite 3 von 6
Abb. 1: Suche im Java Repository über Kategorien und direkte Schlagwortsuche
Sind geeignete Java -Klassen oder Applets gefunden, so m üssen sie auf ihre Einsetzbarkeit in der konkreten
Problemstellung untersucht werden. Die vom Java Repository bereitgestellte Beschreibung der Ressourcen sowie das
Rating und die Kommentierung durch andere Anwender leisten einen Beitrag zur Beurteilung der Bausteine. Alle Nutzer
des Repository haben die M öglichkeit, registrierte Software -Elemente nach einem standardisierten Verfahren zu
bewerten und zu kommentieren. Die so gesammelten Informationen werden zusammen mit der Software präsentiert und
können dem Nachfrager bei der Auswahl geeigneter Software -Elemente Hilfestellung geben.
Ziel der Bewertungs- und Kommentarmöglichkeit ist zum einen, dem potentiellen Nutzer einer Software bereits vor
deren Einsatz oder Erwerb Anhaltspunkte über die Qualität zu geben. Kritisch ist dabei zu beurteilen, daß die
Bewertungen von allen Nutzern, gleich welcher Qualifikation oder Intention, abgegeben werden können und so leicht ein
nicht objektives Bild entstehen kann. Die Kommentierung und Weiterleitung der Kommentare an die Anbieter der im
Repository verfügbaren Ressourcen dagegen stellte sich als eine geeignete Möglichkeit heraus, den Kontakt zwischen
Anbietern und Nachfragern herzustellen und dem Programmierer wertvolle Hinweise für weitere Entwicklungen zu
geben.
file://C:\Download\java-papers\JavaRep\html\papers\SwMgmtMuOkt97.htm
23.08.2002
Wiederverwendung von Softwareelementen: Das Java Repository
Seite 4 von 6
Abb. 2: Darstellung der Bewertung und Kommentierung eines Applet im Java Repository
Das Java Repository wurde realisiert auf einer Sun Ultra Sparc 2, die Anwendung selbst wurde auf Basis einer OracleDatenbank mit Webserver entwickelt (Oracle RDBMS 7.3 mit Webserver 2.1, vgl. die Darstellung der technischen
Infrastruktur in Abbildung 3). In der Datenbank werden Informationen über den Autor, Adresse sowie zum Teil der
Quellcode der Java-Elemente verwaltet. Alle HTML -Seiten zur Navigation und Darstellung werden mit Hilfe von ca. 100
PL/SQL-Prozeduren dynamisch aus der Datenbank generiert.
Zur zukünftigen Unterstützung finanzieller Transaktionen wurde das Ecash-System der Mark-Twain-Bank
(http://www.marktwain.com) implementiert [Kalakota 96] [Lynch 96] [Wayner 96]. Hierbei tritt das Java Repository als
Intermediär zwischen Anbieter und Nachfrager von/nach Java-Elementen auf. Die Zahlungen werden dabei mit Hilfe von
Ecash vom Käufer über das Java Repository direkt an den Anbieter geleitet; dieser zusätzliche Service des Java Market
ist sowohl für Anbieter als auch Nachfrager kostenlos und optional.
Abb. 3: Technische Realisierung des Java Repository
Das Java Repository besteht seit April 1996 und enthält zur Zeit etwa 650 Java-Elemente für unterschiedliche
Problemstellungen. Während anfangs Applets zur Realisierung von Grafikanimationen dominierten, ist in der letzten Zeit
ein Trend zu kommerziell orientierten Applets und Applikationen zu beobachten. So enthält das Java Repository
beispielsweise 55 Ressourcen in den Kategorien "Finance" bzw. "Economics". Die zunehmende Anzahl der SoftwareElemente sowie die Einführung einiger in diesem Abschnitt dargestellten Dienste führte auch zu einer zunehmenden
Nutzung des Java Repository. In der folgenden Abbildung ist die auf den Monat aggregierte durchschnittliche Anzahl
von Zugriffen auf die Homepage pro Tag dargestellt.
file://C:\Download\java-papers\JavaRep\html\papers\SwMgmtMuOkt97.htm
23.08.2002
Wiederverwendung von Softwareelementen: Das Java Repository
Seite 5 von 6
Abb. 4: Durchschnittliche Anzahl von Zugriffen auf die Homepage des Java Repository pro Tag
4. Ausblick: Kommerzielle Wiederverwendung von
Software im Internet
Die Anzahl der Java-Programmierer und die bereits vorhandenen Java -Elemente bilden ein vielversprechendes Potential
für die Wiederverwendung dieser Klassen und Applets. So wie im World Wide Web nahezu alle möglichen
Informationen verfügbar sind, wird es zukünftig auch für eine Vielzahl von Problemstellungen Java-Elemente geben.
Diese Anwendungen werden - wie die Informationen im World Wide Web - dezentral ohne Vorgabe durch eine zentrale
Instanz erstellt und angeboten. Diese dezentrale Struktur ermöglicht erst die Vielfalt der verfügbaren Java-Elemente. Auf
der anderen Seite verursacht diese dezentrale Struktur jedoch auch Probleme. In der überwältigenden Vielzahl von
Angeboten ist eine gezielte Suche nach Problemlösungen nur schwer und mit hohem Zeitaufwand möglich, zudem
besteht keine einheitliche Darstellung und Dokumentation der verfügbaren Software, und es findet keine zertifizierte
Qualitätssicherung statt.
Das Java Repository unterstützt im aktuellen Entwicklungsstand den Nutzer - wie im dritten Abschnitt dargestellt lediglich bei der Suche und vorläufigen Evaluation von Java-Elementen. Um die Potentiale der Wiederverwendung von
Java -Elementen aus dem Internet jedoch noch weiter ausschöpfen zu können, sind an ein solches Repository zusätzliche
Anforderungen zu stellen, die ähnlich sind wie Anforderungen an klassische Werkzeuge zur Wiederverwendung
[Appelfeller 95], [Heß 93], [Zendler 96] und häufig eine zentrale Organisation benötigen, z.B.
l
l
l
l
l
l
eine Erweiterung der gespeicherten Informationen auf Ergebnisse der Analyse- und Entwurfsphase, die auch
semantische Aspekte sowie Beziehungstypen zwischen den Elementen enthält, wie etwa uses, used-by oder partof (einschließlich der Nutzung von Frameworks) [Booch 94] [Rumbaugh 91],
ein von zentraler Stelle durchgeführter Source-Code Review, der einzelne im Repository registrierten SoftwareElemente nach fest definierten Qualitätsmaßstäben bewertet,
eine Dokumentation der Schnittstellen aller Elemente, anhand derer auch ohne Kenntnis der Implementierung
über die Wiederverwendbarkeit entschieden werden kann,
die rechtliche Problematik den Entwicklern die ihnen zustehenden Erträge zu sichern, ist noch nicht gelöst, auch
wenn bereits Lösungsansätze exisitieren [Endres 92],
Import- und Exportschnittstellen und Integration mit Case-Tools sowie
umfangreiche Reports und Statistiken zur durchgeführten Wiederverwendung der Softwarelemente.
Die Liste der Anforderungen zeigt, da ß viele dieser Maßnahmen zentral geplant und durchgeführt werden müssen, um
eine Wiederverwendung von Software -Elementen aus dem Internet wie mit einem unternehmensinternen SoftwareRepository zu unterstützen. Dabei haben wir die Erfahrungen gemacht, daß diese Aufgaben nicht immer dezentralisiert
werden können. So wurde in der Anfangsphase versucht, einen zentralen Dokumentationsstandard auf der Basis des
objektorientierten Entwicklungswerkzeugs OEW für Java einzuführen. Die Entwickler der Java -Elemente wurden
aufgefordert, neben der "normalen" Registrierung auch eine Dokumentation ihrer Klassen mit diesem Werkzeug zu
erzeugen und bereitzustellen. Die Erfahrung zeigte jedoch, daß die meisten Entwickler nicht bereit waren, diesen
file://C:\Download\java-papers\JavaRep\html\papers\SwMgmtMuOkt97.htm
23.08.2002
Wiederverwendung von Softwareelementen: Das Java Repository
Seite 6 von 6
Aufwand in Kauf zu nehmen, solange sie dafür nicht einen direkten zusätzlichen Nutzen oder eine Entschädigung sahen.
Bei dem nicht-kommerziellen Betrieb des Java Repository war der Aufwand einer Nachdokumentation der Software für
den Betrieb des Repository nicht zentral durchführbar, so daß die Dokumentation für den Anbieter optional ist.
Einen möglichen Ausweg aus diesem Dilemma stellt die Kommerzialisierung des Betriebes eines solchen Repository im
Internet dar. Ein bei kommerziellen Intermediären üblicher Ansatz ist, daß dem Intermediär ein Prozentsatz des zwischen
Anbieter und Nachfrager gehandelten Umsatz-Volumens zusteht. Dieser Betrag könnte für die Finanzierung weiterer
zentraler Dienste eingesetzt werden, die wiederum zu einer Steigerung der Attraktivität führt und dadurch mehr
Nachfrager anlocken kann, was wiederum einen Anreiz für Entwickler darstellt.
Obwohl diese wünschenswerten weiteren Funktionalitäten heute noch nicht zur Verfügung stehen, erhielten wir eine
Vielzahl von Reaktionen, die uns bereits auf dem heutigen Status Quo von der nutzbringenden Wiederverwendung
berichteten. Dieses positive Feedback spiegelt sich auch in den stetig zunehmenden Nutzungszahlen des Java Repository
wider, die sich wie Abbildung 4 aus Kapitel 3 zeigte von Mai 1996 bis heute etwa vervierfacht hat.
Literaturverzeichnis
[Appelfeller 95]
[Bailey 96]
[Boehm 81]
[Booch 94]
[Brands 95]
[Buxmann 97]
[Endres 88]
[Endres 92]
[Frakes 95]
[Gosling 95]
[Heß 93]
[Jones 94]
[Kalakota 96]
[König 93]
[Lynch 96]
[Meyer 87]
[Rumbough 91]
[Sarkar 96]
[Sneed 87]
[Wayner 96]
[Zendler 96]
Appelfeller, W.: Wiederverwendung im objektorientierten Softwareentwicklungsprozeß,
dargestellt am Beispiel der Entwicklung eines Lagerlogistiksystems, Frankfurt 1995
Bailey, J.: The Emergence of Electronic Market Intermediaries, in: Proceedings of the 17th
International Conference on Information Systems, Cleveland 1996, S. 391-399
Boehm, B.: Wirtschaftliche Software-Produktion, Wiesbaden 1981
Booch, G.: Objekt-Oriented Analysis and Design with Applications, Redwood 1994
Brands, S.: Electronic Cash on the Internet, Proceedings of the Internet Society 1995
Symposium on Network and Distributed Systems Security, San Diego, California, USA
Buxmann, P.; König, W.; Rose, F.: Aufbau eines elektronischen Handelsplatzes für JavaApplets, in: Krallmann, H. (Hrsg.): Wirtschaftsinformatik 1997, S. 35 -47
Endres, A.: Software -Wiederverwendung: Ziele, Wege und Erfahrungen, in: InformatikSpektrum 11 (1988), S. 85 -95
Endres, A.: Der rechtliche Schutz von Software: Aktuelle Fragen und Probleme, in:
Informatik-Spektrum 15 (1992), S. 89 -100
Frakes, W.; Fox, C.: Sixteen Questions about Software Reuse, in: Communications of the
ACM, 6 (1995), S. 75-87
Gosling, J.; McGilton, H.: The Java Language Environment - A White Paper, Sun
Microsystems Computer Company, Oktober 1995
He ß, H.: Wiederverwendung von Software, Wiesbaden 1993
Jones, T.: Economics of Sotware Reuse, in: IEEE Computer, 1994
Kalakota, R; Whinston, A.: Frontiers of Electronic Commerce, Addison Wesley, 1996
König, W.; Wolf, S.: Objektorientierte Software-Entwicklung - Anforderungen an das
Informationsmanagement, in: Scheer, A.-W.: Handbuch Informationsmanagement,
Wiesbaden, 1993
Lynch, D.; Lundquist, L.: Digital Money, John Wiley & Sons Inc., New York, 1996
Meyer, B.: Reusability: The Case for Object-oriented Design, IEEE Software, 4 (1987), S.
50-64
Rumbaugh, J. et al.: Object-Oriented Modeling and Design, Prentice Hall, Englewood Cliffs
1991
Sarkar, M.; Butler, B.; Steinfeld, C.: Intermediaries and Cybermediaries: A Continuing Role
for Mediating Players in the Electronic Marketplace,
(http://shum.cc.huji.ac.il/jcmc/vol1/issue3/sarkar.html, March, 27 th 1997)
Sneed, H. M.: Software Management, Köln 1987
Wayner, P.: Digital Cash: Commerce on the Net, Boston et al. 1996
Zendler, A.: Kommerzielle Werkzeuge zur Administration von wiederverwendbaren
Software-Dokumenten, in: Wirtschaftsinformatik 2 (1996), S. 147-159.
file://C:\Download\java-papers\JavaRep\html\papers\SwMgmtMuOkt97.htm
23.08.2002
Herunterladen