Semantic component retrieval in software engineering [Elektronische Ressource] / vorgelegt von Oliver Hummel
191 pages
English

Semantic component retrieval in software engineering [Elektronische Ressource] / vorgelegt von Oliver Hummel

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
191 pages
English
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Semantic Component Retrievalin Software EngineeringInauguraldissertationzur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften derUniversität Mannheimvorgelegt vonDiplom-Informatiker Oliver Hummelaus Neustadt an der WeinstraßeMannheim, 2008Dekan: Prof. Dr. Matthias Krause, Universität MannheimReferent: Prof. Dr. Colin Atkinson, Universität MannheimKorreferent: Prof. Dr. Ivica Crnkovic, Mälardalen UniversityTag der mündlichen Prüfung: 11.03.20084 - AbstractIn the early days of programming the concept of subroutines, and through this software reuse, was invented tospare limited hardware resources. Since then software systems have become increasingly complex and developingthem 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 linesand design patterns have become very successful in recent years. However, there are still no software componentmarkets available that would make buying software components as simple as buying parts in a do-it-yourselfhardware store and millions of software fragments are still lying un(re)used in configuration managementrepositories all over the world.

Sujets

Informations

Publié par
Publié le 01 janvier 2008
Nombre de lectures 42
Langue English
Poids de l'ouvrage 2 Mo

Extrait

Semantic Component Retrieval
in Software Engineering
Inauguraldissertation
zur Erlangung des akademischen Grades
eines Doktors der Naturwissenschaften der
Universität Mannheim
vorgelegt von
Diplom-Informatiker Oliver Hummel
aus Neustadt an der Weinstraße
Mannheim, 2008Dekan: Prof. Dr. Matthias Krause, Universität Mannheim
Referent: Prof. Dr. Colin Atkinson, Universität Mannheim
Korreferent: Prof. Dr. Ivica Crnkovic, Mälardalen University
Tag der mündlichen Prüfung: 11.03.20084 -
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 t his thesis, we developed
a proactive component reuse recommendation system, naturally integrated into test-first developme nt 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 bo ok. 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.
Zusammenfassung
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, üblicherw eise unter
dem Begriff Software Reuse zusammengefasste Ansätze, wie z.B. Produktlinien und Entwurfsmuster ware n in den
letzten Jahren ebenfalls sehr erfolgreich, gleichzeitig existieren allerdings noch immer keine Marktplätz e, 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-Fragmente n 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-Reposit ories getrieben
werden musste, an. Zusammen mit den ungenauen Algorithmen, wie sie bisher zum Durc hsuchen 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 vor liegenden Arbeit ein
proaktives Komponenten-Empfehlungssystem, das eng an testgetriebene Entwicklungsprozesse angelehnt ist un d
darauf aufbauend wiederverwendbare Komponenten vorschlagen kann, die genau die Funktionalität er bringen, die
ein Entwickler gerade benötigt. Wir haben das System als Plugin für die bekannte Eclipse IDE ent wickelt und seine
Nutzbarkeit unter Beweis gestellt, in dem wir ein Beispiel aus einem bekannten Buch über agile Ent wicklung damit
nachimplementiert haben. Weiterhin enthält diese Arbeit eine Analyse der Precision unseres Ansat zes sowie
zahlreiche Beispiele, wie gewöhnliche Testfälle als vereinfachte semantische Beschreibung einer Komponent e und
als Ausgangspunkt für die Suche nach wiederverwendbaren Komponenten genutzt werden können. - 5
Thank you...
... to my parents Bärbel and Robert Hum(amndel sofo r mluifceh more)...
... to Konrad Zuse for the computer...
... to Peter Luffy for teaching me my first program...
... to Stephan Baumann where it all got started...
... to Colin Atkinson for his faith and support...
... to my colleagues for discussions and distraction...
... to my students for their commitment...
..o. Itvica Crnkovic for coming from Sweden to report on this...
1
... and to myself for all the rest.
1
Actually, I don't know whom to thank for the universe. So, if you should find out, please let me know.6 - C ONTENT
1 NITRODUCTION................................1..1.......................................................
1.1 Motivatio.................................................................................................................................n 11 ................
1.2 Research Obje...............................................................................................................ctive 12 ....................
1.2.1 Out of .sc.o.p.e.....................................................15..................................................................................................................
1.3 Research Stra......................................................................................................................tegy 15 ................
1.4 Outlin....................................................................................................................................e 17 ...................
2 FOUNDATIONS.................................1.9.......................................................
2.1 Software Engineering Bas.............................................................................................ics 19 ......................
2.2 Software Development Proce.........................................................................................sses 20 ..................
2.2.1 Traditional Process M.o.de.l.s............................................2.1.................................................................................................
2.2.2 Today's Best Practice Pro.c.e.ss.es..........................................2.4.............................................................................................
2.2.3 Agile Developm.en.t...................................................2.5..........................................................................................................
2.3 Software Verification and Va......................................................................................lidation 27 ..............
2.3.1 Software Test.in.g....................................................2.7..............................................................................................................
2.4 Software Compone.............................................................................................................................nts 29 .
2.4.1 Component-Based Developm.e.n.t..........................................3.1..........................................................................................
2.4.2 Component Technologies and Service-Oriented Ar.c.hi.te.c.ture.s.......................3.3........................................................
2.4.3 Semantic Web (Serv.ic.e.s.)..............................................3.6....................................................................................................
2.5 Software Re........................................................................................................................use 38 ..................
2.5.1 The Reuse Lan.d.sc.a.p.e...............................................39........................................................................................................
2.5.2 Success and Failure Factors fo.r ..R.eu.s.e.....................................4.1.....................................................................................
2.5.3 Reuse Me.tr.ic.s.....................................................4.3................................................................................................................
2.6 Component-based R..................................................................................................................euse 45 .......
3 COMPONENT RETRIEVAL SO FAR........................49........................................
3.1 Software Component Reposit.....................................................................................ories 50 ...................
3.1.1 Component Representation Me.th.od..s.......................................50......................................................................................
3.1.2 The Repository Pro.b.l.em...............................................5.1....................................................................................................
3.1.3 Usab.ili.ty.........................................................5.2..

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents