Titelaufnahme

Titel
Design and development of a service for software interrelationships / von Nikola Ilo
VerfasserIlo, Nikola
Begutachter / BegutachterinGrechenig, Thomas ; Bernhart, Mario
Erschienen2014
UmfangXIII, 125 S. : Ill., graph. Darst.
HochschulschriftWien, Techn. Univ., Dipl.-Arb., 2015
Anmerkung
Zsfassung in dt. Sprache
SpracheEnglisch
DokumenttypDiplomarbeit
Schlagwörter (DE)Software Beziehungen / Software Abhängigkeiten / Semantik Web / Ontologie / Temporales SPARQL / metaservice / Mining Software Repositories
Schlagwörter (EN)Software Relationships / Software Dependencies / Semantic Web / Ontology / Temporal SPARQL / Metaservice / Mining Software Repositories
URNurn:nbn:at:at-ubtuw:1-68965 Persistent Identifier (URN)
Zugriffsbeschränkung
 Das Werk ist frei verfügbar
Dateien
Design and development of a service for software interrelationships [3.65 mb]
Links
Nachweis
Klassifikation
Zusammenfassung (Deutsch)

Inter-Software-Beziehungen, wie z.B. Software-Abhaengigkeiten, haben Auswirkung auf die Qualitaet und Entwicklung von Software und Software-Projekten und sind daher von essentieller Bedeutung fuer die Software-Entwicklung und Wartung. Aus diesem Grund gibt es bereits ausgekluegelte Systeme, um Software-Beziehungen zu deklarieren, zu verwalten und nutzbringend fuer Softwarebetriebs- und Entwicklungsprozesse einzusetzen. Nennenswerte Beispiele hierfuer sind Packet-Management-Systeme von Linux-Distributionen und Build-Management-Systeme wie Apache Maven. Die Software-Netzwerke, auf denen diese Systeme agieren, bilden in sich interoperable, aber jeweils abgeschlossene Software-Oekosysteme, die sich in Syntax und Semantik voneinander unterscheiden, obwohl es Ueberlappungen in der Menge der enthaltenen Software gibt. Derzeit gibt es kein anwendbares System, welches Software-Oekosystem uebergreifende Abfragen und Auswertungen zulaesst. Diese Arbeit greift die Problemstellung auf, die semantischen und syntaktischen Grenzen von Software-Oekosystemen zu ueberwinden und dadurch die praktische Nutzung von Informationen ueber Inter-Software-Beziehungen fuer die Software-Entwicklung und Wartung zu ermoeglichen. Im Rahmen dieser Arbeit wurde ein Software-Prototyp entwickelt, der es ermoeglicht, verschiedene Software-Oekosysteme zu integrieren und dadurch systemuebergreifende Abfragen durchzufuehren. Ein besonderes Augenmerk wurde auf Erweiterbarkeit und Skalierbarkeit gelegt, damit moeglichst einfach neue, aber auch zahlreiche Software-Oekosysteme integriert werden koennen. Waehrend der Entwicklung zeigte sich, dass Semantic Web-Technologien einen guten Rahmen fuer die Bearbeitung der Problemstellung bieten. Mehrere Software-Oekosysteme wurden, z.B. aus den Debian/Ubuntu-Quellen oder den Common Vulnerability Enumeration (CVE)- und Common Platform Enumeration (CPE)-Verzeichnissen des National Institute of Standards and Technology (NIST), fuer die Evaluierung der Datenintegration eingebunden. Weiters wurden Applikationen, wie ein Sicherheitsluecken-Benachrichtigungssystem oder ein Lizenz-Einhaltungs-Ueberpruefungsprogramm, beispielhaft implementiert, um das Potential von Software-Oekosystem uebergreifenden Abfragen aufzuzeigen und das Ergebnis zu evaluieren. Die wissenschaftlichen Beitraege dieser Arbeit gliedern sich wie folgt: eine verteilte Architektur fuer das Abgreifen, Parsen, Umlegen, Nachbearbeiten und Abrufen von generischen Datenquellen in ein semantisches RDF-Datenmodel; eine abstrakte OWL-Ontologie fuer die semantische Modellierung von Inter-Software-Beziehungen; sowie ein System fuer die Verarbeitung von temporalen Resource Description Framework (RDF)-Aussagen mit SPARQL Protocol and RDF Query Language (SPARQL). Hierbei werden die Anfragen unter Beachtung der zeitlichen Gueltigkeit, jedoch ohne vorheriger zeitlichen Normalisierung von Beobachtungszeitpunkten in Gueltigkeitszeiträume, evaluiert.

Zusammenfassung (Englisch)

Software interrelationships, like software dependencies, have impact on the quality and evolution of software projects and are therefore important to software development and maintenance. Sophisticated systems have been created in the past to define, manage, and utilize relationships in software processes. Mentionable examples for this are package management systems of Linux distributions and build systems like Apache Maven. These systems are clustered in software-ecosystems, which most of the times are syntactically and semantically incompatible to each other, although the described software can overlap. Currently there are no viable systems for querying information across different ecosystems. This thesis is about how to overcome semantic and syntactic borders of software ecosystems and thereby enable practical usage of information about software interrelationships in software development and maintenance. An iterative approach was used to develop a prototype, which enables integration of - and therefore queries across - different software ecosystems. Particular emphasis was placed on the extendibility and the scalability, i.e., to be able to easily integrate new and many ecosystems. During development, Semantic Web technologies showed to provide a suitable framework to approach this task. Several ecosystems, like Debian/Ubuntu repositories, and CVEs and CPEs defined by the NIST, were used to evaluate data integration. Additionally small applications, like a vulnerability notification system and license violation detector were used to show the usefulness of aggregated cross-ecosystem-interrelationships. Contributions of this thesis consist of: a distributed architecture for data retrieval, parsing, mapping, post-processing and querying of generic data into semantic RDF data model; an abstract owl-ontology for semantic modeling of inter-software relationships; and a model for processing temporally scoped RDF statements using SPARQL without previous normalization of observation times to time periods.