Semantic Component Retrieval in Software Engineering


Hummel, Oliver


[img]
Preview
PDF
Dissertation_OliverHummel.pdf - Published

Download (2MB)

URL: http://ub-madoc.bib.uni-mannheim.de/1883
URN: urn:nbn:de:bsz:180-madoc-18836
Document Type: Doctoral dissertation
Year of publication: 2008
The title of a journal, publication series: None
Publishing house: Universität Mannheim
Evaluator: Atkinson, Colin
Date of oral examination: 11 March 2008
Publication language: English
Institution: School of Business Informatics and Mathematics > Software Engineering (Atkinson 2003-)
Subject: 004 Computer science, internet
Classification: CCS: D.2.13 Reu D.2.2 Desi ,
Subject headings (SWD): Software Engineering , Softwarewiederverwendung , Information Retrieval
Individual keywords (German): testgetriebene Wiederverwendung
Keywords (English): software , component , retrieval , test-driven reuse
Abstract: In the early days of programming the concept of subroutines, and through this software reuse, was invented to spare limited hardware resources. Since then software systems have become increasingly complex and developing them would not have been possible without reusable software elements such as standard libraries and frameworks. Furthermore, other approaches commonly subsumed under the umbrella of software reuse such as product lines and design patterns have become very successful in recent years. However, there are still no software component markets available that would make buying software components as simple as buying parts in a do-it-yourself hardware store and millions of software fragments are still lying un(re)used in configuration management repositories all over the world. The literature primarily blames this on the immense effort required so far to set up and maintain searchable component repositories and the weak mechanisms available for retrieving components from them, resulting in a severe usability problem. In order to address these issues within this thesis, we developed a proactive component reuse recommendation system, naturally integrated into test-first development approaches, which is able to propose semantically appropriate, reusable components according to the specification a developer is just working on. We have implemented an appropriate system as a plugin for the well-known Eclipse IDE and demonstrated its usefulness by carrying out a case study from a popular agile development book. Furthermore, we present a precision analysis for our approach and examples of how components can be retrieved based on a simplified semantics description in terms of standard test cases.
Translation of the title: Semantisches Komponenten-Retrieval im Software-Engineering (German)
Translation of the abstract: Zu Zeiten der ersten Programmiersprachen wurde die Idee von Unterprogrammen und damit die Idee der Wiederverwendung von Software zur Einsparung knapper Hardware-Ressourcen erdacht. Seit dieser Zeit wurden Software-Systeme immer komplexer und ihre Entwicklung wäre ohne weitere wiederverwendbare Software-Elemente wie Bibliotheken und Frameworks schlichtweg nicht mehr handhabbar. Weitere, üblicherweise unter dem Begriff Software Reuse zusammengefasste Ansätze, wie z.B. Produktlinien und Entwurfsmuster waren in den letzten Jahren ebenfalls sehr erfolgreich, gleichzeitig existieren allerdings noch immer keine Marktplätze, die das Kaufen von Software-Komponenten so einfach machen würden, wie den Einkauf von Kleinteilen in einem Heimwerkermarkt. Daher schlummern derzeit Millionen von nicht (wieder) genutzten Software-Fragmenten in Konfigurations-Management-Systemen auf der ganzen Welt. Die Fachliteratur lastet dies primär dem hohen Aufwand, der bisher für Aufbau und Instandhaltung von durchsuchbaren Komponenten-Repositories getrieben werden musste, an. Zusammen mit den ungenauen Algorithmen, wie sie bisher zum Durchsuchen solcher Komponentenspeicher zur Verfügung stehen, macht diese Tatsache die Benutzung dieser Systeme zu kompliziert und damit unattraktiv. Um diese Hürde künftig abzumildern, entwickelten wir in der vorliegenden Arbeit ein proaktives Komponenten-Empfehlungssystem, das eng an testgetriebene Entwicklungsprozesse angelehnt ist und darauf aufbauend wiederverwendbare Komponenten vorschlagen kann, die genau die Funktionalität erbringen, die ein Entwickler gerade benötigt. Wir haben das System als Plugin für die bekannte Eclipse IDE entwickelt und seine Nutzbarkeit unter Beweis gestellt, in dem wir ein Beispiel aus einem bekannten Buch über agile Entwicklung damit nachimplementiert haben. Weiterhin enthält diese Arbeit eine Analyse der Precision unseres Ansatzes sowie zahlreiche Beispiele, wie gewöhnliche Testfälle als vereinfachte semantische Beschreibung einer Komponente und als Ausgangspunkt für die Suche nach wiederverwendbaren Komponenten genutzt werden können. (German)
Additional information:




Das Dokument wird vom Publikationsserver der Universitätsbibliothek Mannheim bereitgestellt.




Metadata export


Citation


+ Search Authors in

+ Download Statistics

Downloads per month over past year

View more statistics



You have found an error? Please let us know about your desired correction here: E-Mail


Actions (login required)

Show item Show item