Filtern
Dokumenttyp
- Diplomarbeit (2)
- Bachelorarbeit (1)
Sprache
- Englisch (3) (entfernen)
Volltext vorhanden
- ja (3) (entfernen)
Schlagworte
- API (3) (entfernen)
Institut
Die vorliegende Arbeit stellt eine Methode für die korpusbasierte Analyse der Verwendung von Softwarebibliotheken in Java-Programmen vor. Die meisten größeren Softwareprojekte verwenden Softwarebibliotheken, die als Schnittstelle für den Programmierer sogenannte APIs (application programming interfaces) bereitstellen. Um den Umstieg von einer solchen API auf eine andere zu unterstützen, strebt man Werkzeuge zur automatisierten API-Migration an. Zur Entwicklung solcher Werkzeuge fehlen allerdings noch Basisdaten. Statistiken und Beobachtungen zur Verwendung von APIs in der Praxis wurden bisher nur mit sehr kleinen Korpora von Projekten und APIs durchgeführt. Wir stellen in dieser Arbeit daher eine Analysemethode vor, die für Messungen an großen Korpora geeignet ist. Hierzu erzeugen wir zunächst einen Korpus von auf SourceForge gehosteten Open-Source-Projekten sowie einen Korpus von Softwarebibliotheken. In der Folge werden alle Projekte des Korpus compiliert, wobei ein Compiler-Plugin für den javac detaillierte Informationen über jede einzelne Methode liefert, die der Compiler erstellt. Diese Informationen werden in einer Datenbank gespeichert und analysiert.
In recent years ontologies have become common on the WWW to provide high-level descriptions of specific domains. These descriptions could be effectively used to build applications with the ability to find implicit consequences of their represented knowledge. The W3C developed the Resource Description Framework RDF, a language to describe the semantics of the data on the web, and the Ontology Web Language OWL, a family of knowledge representation languages for authoring ontologies. In this thesis we propose an ontology API engineering framework that makes use of the state-of-the-art ontology modeling technologies as well as of software engineering technologies. This system simplifies the design and implementation process of developing dedicated APIs for ontologies. Developers of semantic web applications usually face the problem of mapping entities or complex relations described in the ontology to object-oriented representations. Mapping complex relationship structures that come with complex ontologies to a useful API requires more complicated API representations than does the mere mapping of concepts to classes. The implementation of correct object persistence functions in such class representations also becomes quite complex.
API Migration bezeichnet den Wechsel einer benutzten API eines Programms in eine andere. Eine spezielle Form ist die sogenannte wrapper-basierte API Migration. In diesem Fall wird die API gewechselt, ohne das eigentliche Programm zu berühren. Sie wird unter Benutzung der neuen API reimplementiert. Dieser so genannte Wrapper besitzt das Interface der alten API, benutzt jedoch die Implementierung der neuen.
Dies ist ein interessanter Ansatz, da der Wrapper in jedem Programm eingesetzt werden kann, das bislang die alte API verwendet hat.
Um diesen Vorgang reproduzierbar zu machen, entwickeln wir eine ranking-basierte Methode, um einen Wrapper zu entwickeln. Hierbei implementieren wir abhängig von fehlschlagenden Testfällen immer die API-Methode mit der jeweils höchsten Priorität. So können wir jeden Implementierungssschritt rekonstruieren.
Im ersten Schritt entwickeln wir eine Infrastruktur, mit der wir Testsuites von Java-Projekten starten und messen können.
Mittels dieser Basis können wir nun die Ranking-Methode anweden, um einen Wrapper zu entwickeln.