In der vorliegenden Arbeit wird ein Konzept zur Entwicklung und Evolution ontologiegetriebener Softwaresysteme erarbeitet. Ontologiegetriebene Softwaresysteme sind Softwaresysteme, bei denen Ontologien als zentrale Designdokumente zum Einsatz kommen. Ontologien sind gleichzeitig zentrale Bestandteile des ausführbaren Systems und dienen zur Strukturbeschreibung und Datenhaltung. Dabei werden Teile des Softwaresystems automatisch aus den Strukturbeschreibungen der Ontologie abgeleitet. Diese Arbeit konzentriert sich auf die Weiterentwicklung solcher Systeme und stellt dafür einen Katalog von Ontologie-Refactorings auf. Es werden mehrere Werkzeuge, gemeinsam als OntoMore bezeichnet, implementiert, um die Umsetzbarkeit des aufgestellten Konzepts zu zeigen. OntoMore kann Ontologien in Metamodelle und Modelle des EMF umwandeln und somit in Softwaresysteme integrieren. Außerdem ist es in der Lage, Refactorings auf beiden Strukturen synchron auszuführen. Dieser Prozess wird als Co-Refactoring bezeichnet. Damit wird die konsistente Evolution von Ontologien und Modellen sichergestellt. Die Implementierung wird anhand einer Beispiel-Ontologie zum Freelancer-Management evaluiert.
Inhaltsverzeichnis
1 Einleitung
1.1 Motivation
1.2 Zielsetzung
1.3 Gliederung
2 Grundlagen
2.1 Modellgetriebene Softwareentwicklung
2.2 Refactoring
3 Ontologien und semantische Techniken
3.1 Grundlagen semantischer Techniken
3.2 Ontologien
3.2.1 Definition und Begriffe
3.2.2 Die Web Ontology Language (OWL)
3.2.3 Ontologie-Syntaxen
3.2.4 Beschreibungslogiken, Teilsprachen und Profile
3.2.5 Abfragen mit SPARQL
3.2.6 Beispiele für Ontologien
3.3 Ontologie-Evolution und Versionierung
3.4 Unterschiede zwischen Ontologie-Evolution und Refactoring
3.5 Zukünftige Entwicklungen – Linked Data
3.6 Zusammenfassung
4 Eingesetzte Werkzeuge
4.1 Verbindung von Ontologien und Modellen mit OntoMoPP
4.2 Generisches Modell-Refactoring mit Refactory
5 Stand der Forschung
5.1 Abbildung von Ontologien auf Domänenmodelle
5.1.1 Einsatz von Ontologien in der Modellierung
5.1.2 Abbildungen zwischen Ontologien und Datenbanken
5.2 Ontologie-Evolution
5.2.1 Anforderungen an Ontologie-Evolution
5.2.2 Elementare und komplexe Änderungsoperationen
5.2.3 KAON – Das Karlsruhe Ontology and Semantic Web Framework
5.2.4 Das NeOn-Toolkit
5.2.5 Protégé
5.2.6 Bewertung vorhandener Systeme zur Ontologie-Evolution
5.3 Co-Evolution von Metamodellen und Modellen
5.4 Zusammenfassung
6 Konzept zur Entwicklung und Evolution ontologiegetriebener Softwaresysteme
6.1 Gesamtkonzept
6.2 OWL-Ecore-Transformation
6.3 Refactorings für OWL und Ecore
6.3.1 Definition und Katalog von Ontologie-Refactorings
6.3.2 Schema eines Ontologie-Refactorings
6.3.3 Beispiel eines Ontologie-Refactorings
6.4 Co-Refactoring
6.4.1 Definition und Ansätze
6.4.2 Herleitung und Architekturvergleich
6.4.3 Der CoRefactorer
6.5 Zusammenfassung
7 Praktische Umsetzung
7.1 Architektur und eingesetzte Techniken
7.2 Testgetriebene Entwicklung
7.3 OWL-Ecore-Transformator
7.4 Refactoring mit Refactory
7.5 CoRefactorer
7.6 Zusammenfassung
8 Evaluation
8.1 Die Beispiel-Ontologie: FrOnto
8.2 Bewertung der Umsetzung
8.3 Grenzen der Umsetzung
8.4 Grenzen der Konzeption
8.5 Zusammenfassung
9 Zusammenfassung
9.1 Ergebnisse
9.1.1 Das Gesamtkonzept
9.1.2 Beziehung zwischen Ontologien und Domänenmodellen
9.1.3 Konzeption von Refactorings und Co-Refactorings
9.1.4 Implementierung von OntoMore
9.1.5 Evaluation anhand einer Beispiel-Ontologie
9.2 Ausblick
Zielsetzung & Themen
Die Arbeit verfolgt das Ziel, einen Ansatz zur Entwicklung und Evolution ontologiegetriebener Softwaresysteme zu erarbeiten, bei dem Ontologien sowohl das Systemdesign als auch einen zentralen Bestandteil der Laufzeitumgebung bilden. Dabei steht die Synchronisation zwischen Ontologien und Domänenmodellen durch formale Refactoring-Operationen sowie deren automatisierte Umsetzung im Mittelpunkt.
- Entwicklung eines Konzepts zur Integration von Ontologien in die modellgetriebene Softwareentwicklung.
- Definition und Katalogisierung formaler Refactoring-Operationen für Ontologien und Ecore-Modelle.
- Einführung des "Co-Refactorings" zur konsistenten Synchronisation zwischen unterschiedlichen Modellstrukturen.
- Implementierung der Werkzeugsuite "OntoMore" zur Transformation und automatisierten Modellpflege.
- Evaluation des Konzepts anhand einer Beispiel-Ontologie für das Freelancer-Management.
Auszug aus dem Buch
6.4 Co-Refactoring
In diesem Abschnitt wird ein Co-Refactoring-Ansatz erarbeitet. Wie im Gesamtkonzept in Abbildung 6.1 gezeigt, ist ein synchrones Refactoring über unterschiedlichen Modellen nötig, um das beschriebene Konzept zur Entwicklung und Evolution ontologiegetriebener Softwaresysteme umzusetzen. Dieses synchrone Refactoring wird durch ein Co-Refactoring verwirklicht. Der hier erarbeitete Ansatz für Co-Refactoring ist jedoch völlig unabhängig von der Art der Modelle. Er ist also nicht auf Ontologien und Ecore-Modelle beschränkt.
Die Idee eines Co-Refactorings besteht also darin, jeweils ein Refactoring auf zwei (bzw. im allgemeinen Fall mehreren) Modellen gleichzeitig auszuführen. Dabei können sich die beiden Refactorings durchaus unterscheiden. Da keine Annahme über die Art der Modelle getroffen wird, können diese auch zu unterschiedlichen Metamodellen gehören. Dies erfordert unter Umständen völlig unterschiedliche Refactorings in den beiden Modellen. Generische Refactorings bieten nicht genügend Flexibilität, um alle diese Unterschiede abzudecken. Es müssen also konkrete Refactorings zum Einsatz kommen. Wobei diese konkreten Refactorings von den gleichen aber durchaus auch von unterschiedlichen generischen Refactorings abgeleitet sein können.
Zusammenfassung der Kapitel
1 Einleitung: Beschreibt die Motivation zur Nutzung von Ontologien in der Softwareentwicklung sowie die grundlegenden Ziele und die Gliederung der Arbeit.
2 Grundlagen: Erläutert die modellgetriebene Softwareentwicklung (MDSD) und das Konzept des Refactorings als Basis für die weiteren Untersuchungen.
3 Ontologien und semantische Techniken: Vermittelt die theoretischen Grundlagen des Semantic Web, der Ontologien sowie deren Evolution und Abgrenzung zum Refactoring.
4 Eingesetzte Werkzeuge: Stellt die für die Arbeit relevanten Werkzeuge OntoMoPP und Refactory vor, die der Modellierung und dem Refactoring dienen.
5 Stand der Forschung: Analysiert den aktuellen Forschungsstand zur Abbildung von Ontologien auf Domänenmodelle, zur Ontologie-Evolution und zur Co-Evolution von Metamodellen.
6 Konzept zur Entwicklung und Evolution ontologiegetriebener Softwaresysteme: Präsentiert das Hauptkonzept der Arbeit, inklusive der OWL-Ecore-Transformation, dem Refactoring-Katalog und dem Co-Refactoring-Ansatz.
7 Praktische Umsetzung: Beschreibt die technische Implementierung von OntoMore mittels Eclipse-Plugins sowie die Anwendung testgetriebener Entwicklung (TDD) bei der Umsetzung.
8 Evaluation: Validiert die erarbeiteten Konzepte anhand der Beispiel-Ontologie FrOnto und bewertet die praktische Umsetzbarkeit und Grenzen des Ansatzes.
9 Zusammenfassung: Fasst die Ergebnisse der Arbeit zusammen und gibt einen Ausblick auf zukünftige Forschungsmöglichkeiten.
Schlüsselwörter
Ontologie, Modellgetriebene Softwareentwicklung, MDSD, Refactoring, Co-Refactoring, OntoMore, OWL, Ecore, Ontologie-Evolution, Softwareentwicklung, Metamodell, Semantic Web, Testgetriebene Entwicklung, TDD, Datenmigration
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit untersucht, wie Ontologien effektiv als zentrales Design-Artefakt und Bestandteil für die Entwicklung und Evolution von Softwaresystemen eingesetzt werden können.
Was sind die zentralen Themenfelder?
Die zentralen Themen umfassen die modellgetriebene Softwareentwicklung, das semantische Web, formale Refactoring-Methoden und die Synchronisation verschiedener Modellstrukturen.
Was ist das primäre Ziel der Arbeit?
Das primäre Ziel ist die Entwicklung eines Konzepts (OntoMore) für ontologiegetriebene Softwaresysteme, das eine konsistente Weiterentwicklung von Ontologien und zugehörigen Domänenmodellen ermöglicht.
Welche wissenschaftliche Methode wird verwendet?
Die Arbeit kombiniert theoretische Analysen des Forschungsstandes mit der Entwicklung und Implementierung eines Prototyps (basierend auf EMF) sowie einer anschließenden Evaluation mittels einer Beispiel-Ontologie.
Was wird im Hauptteil behandelt?
Der Hauptteil erarbeitet ein Gesamtkonzept, definiert einen Refactoring-Katalog für OWL und Ecore und führt das Prinzip des Co-Refactorings zur synchronen Modellpflege ein.
Welche Schlüsselwörter charakterisieren die Arbeit?
Die Arbeit wird maßgeblich durch Begriffe wie Ontologie, Refactoring, Co-Refactoring, MDSD und Modell-Evolution charakterisiert.
Was ist das Besondere am "Co-Refactoring"?
Co-Refactoring erlaubt es, Refactoring-Operationen synchron auf zwei oder mehr voneinander abhängigen Strukturen auszuführen, sodass deren Beziehung konsistent bleibt.
Warum ist die Erhaltung der Individuen bei Ontologie-Refactorings wichtig?
Bei Ontologien bilden Daten (Individuen) und Struktur eine Einheit. Änderungen an der Struktur können zu Inkonsistenzen im Datenbestand führen; daher muss das Refactoring explizit die Auswirkungen auf die Daten berücksichtigen.
- Arbeit zitieren
- Erik Tittel (Autor:in), 2011, Refactoring in der Ontologiegetriebenen Softwareentwicklung, München, GRIN Verlag, https://www.grin.com/document/177623