Direkt zum InhaltDirekt zur SucheDirekt zur Navigation
▼ Zielgruppen ▼
 

Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Modellgetriebene Software Entwicklung

 

Modellgetriebene Software Entwicklung

Abschlussarbeiten

Themen, die noch zu vergeben sind

 


  • Entwicklung eines Rahmenwerks zur beispielgetriebenen Spezifikation komplexer Editieroperationen
    Komplexe Editieroperationen wie bspw. Refactoring-Operationen sind ein wichtiger Konfigurationsparameter für viele Werkzeuge zur Unterstützung von Modellevolution im Kontext der modellbasierten Softwareentwicklung (MBSE). Hierfür werden meist deklarative, regelbasierte Spezifikationen von Editieroperationen benötigt, welche mittels dedizierter Modelltransformationssprachen formuliert werden können. Für Domänenexperten ist eine präzise Spezifikation aus mehreren Gründen nicht trivial, so z.B. weil Modelltransformationen auf der abstrakten Syntax von Modellen arbeiten, welche von der konkreten Syntax oftmals erheblich abweichen kann. „Model-Transformation-By-Example“ ist ein vielversprechender Ansatz, diese Hürde zu überwinden. Domänenexperten demonstrieren hierbei die Transformation in Form von Beispielen in ihrer gewohnten Modellierungsumgebung, und aus den Beispielen wird die Transformationsspezifikation automatisch abgeleitet. Allerdings ist die Spezifikation nur so gut wie die zur Verfügung gestellten Beispiele. Ziel dieser Arbeit ist es, ein Rahmenwerk zu schaffen, um Modellierer in den Prozess der beispielgetriebenen Transformationsspezifikation in Form einer Feedback-Schleife einzubinden. Grundlegende Idee ist es, die aus Beispielen inferierten Editieroperationen in Standardeditoren zu integrieren, um so auf weitere Modelle anzuwenden zu können. Entsprechende Resultate sollen durch die Modellierer beurteilt werden, um so neue Beispiele zur inkrementellen Verfeinerung der Transformationsregeln zu erzeugen.
  • Systematische Behandlung von Variabilität bei der Generierung von Editieroperationen für Modelle in der modellbasierten Softwareentwicklung
    Editieroperationen auf Modellen sind ein wichtiger Konfigurationsparameter vieler variabler Werkzeuge zur Unterstützung von Modellevolution im Kontext der modellbasierten Softwareentwicklung (MBSE). Konsens herrscht in der Literatur darüber, dass die Menge der zur Verfügung stehenden Editieroperationen an den Modelltyp angepasst werden muss; so sind bspw. für UML-Klassendiagramme andere Editieroperationen sinnvoll als für Matlab/Simulink-Modelle. Ebenfalls Konsens herrscht darüber, dass sich die zur Verfügung stehenden Editieroperationen grob in komplexe und elementare Operationen klassifizieren lassen. In dieser Arbeit sollen elementare Editieroperationen betrachtet werden. Tatsächlich existieren hierfür bereits verschiedene Variationspunkte in der Spezifikation der Editieroperationen, welche bislang nicht in systematischer Weise untersucht wurden. Eine solche systematische Analyse ist Gegenstand dieser Arbeit mit dem Ziel, die Ergebnisse in einem Variabilitätsmodell formal zu dokumentieren. Die Ergebnisse sollen ferner zur Konfiguration eines bereits existierenden Generatorwerkzeugs für Editieroperationen genutzt werden.
  • Einsatz mehrdimensionaler Suchstrukturen zur Analyse von ähnlichen Modellelementen in modellbasierten Softwareproduktfamilien
    Ad-hoc Wiederverwendungsmechanismen wie das „Clone and Own“ Paradigma führen im Laufe der Zeit zu einer Menge von ähnlichen jedoch nicht identischen Varianten eines Softwareprodukts. Solche Softwareproduktfamilien sind schwer zu überblicken und verursachen hohe Wartungskosten. In der Literatur wurden bereits verschiedene Methoden und Techniken vorgeschlagen, ad-hoc entstandene Softwareproduktfamilien zu analysieren und unter Ausnutzung systematischer Wiederverwendungsmechanismen zu restrukturieren. Ein erster grundlegender Schritt solcher Familienanalysen ist die Identifikation gemeinsamer und unterschiedlicher Anteile in den einzelnen Varianten. Im Falle modellbasierter Produktfamilien besteht das Kernproblem darin, im Falle von N Varianten eine optimale (oder hinreichend gute) Menge von N-Tupeln gleicher (oder ähnlicher) Modellelemente zu identifizieren. Tatsächlich ist dies für Modelle bereits für N=2, also im Falle der Bestimmung korrespondierender Elemente in zwei miteinander zu vergleichenden Modellen, ein schwieriges Problem. Dies gilt insbesondere dann, wenn für den Vergleich die Ähnlichkeit von Modellelementen herangezogen werden soll. Mehrdimensionale Suchbäume wurden als ein skalierbares Verfahren zum Finden von ähnlichen Elementen in Paaren von Modellen bereits erfolgreich eingesetzt. Im Rahmen dieser Arbeit soll untersucht werden, ob und wie dieses Verfahren auf N>2 verallgemeinert werden kann.
  • Abgleich objektorientierter Datenmodelle mittels Verfahren des Ontologie-Matching
    Werkzeuge zum Abgleich von Modellen werden für unterschiedlichste Zwecke in allen Phasen modellbasierter Softwareentwicklungsprojekte benötigt. Gängige Verfahren des Modellvergleichs unterstellen hierfür meist eine Menge von Modelleigenschaften, welche die Identifikation korrespondierender Modellelemente stark erleichtert. Beispiele hierfür sind die Verfügbarkeit von eindeutigen Identifizierern von Modellelementen oder die Stabilität von Namen evolvierender Modelle. Diese günstigen Rahmenbedingungen treffen jedoch in frühen Projektphasen nicht zu, da Modelle hier oftmals unabhängig voneinander entstehen, so z.B. in Form von unterschiedlichen Sichten verschiedener Stakeholder. Ferner existiert meist noch keine projektweit einheitliche Terminologie für fachliche Entitäten. Ziel dieser Arbeit ist es zu prüfen, inwiefern Verfahren des Ontologie-Matching, also Verfahren zur Bestimmung korrespondierender Konzepte in Ontologien, hierfür geeignet sind. Im Fokus stehen dabei objektorientierte Analysedatenmodelle, da deren Beschreibungssprachen, bspw. Klassendiagramme der UML, eine hohe Ähnlichkeiten zu Ontologie-Beschreibungssprachen aufweisen.
  • Graph Grammar-Based Fuzzing for Testing Model-Based Software Engineering Tools
    Fuzzing is an established technique for testing programs that take structured inputs; desktop publishing tools, web browsers etc. being typical examples of this. The basic idea is to systematically generate input documents causing unexpected program behaviors, typically program crashes. Grammar-based fuzzing has been studied in the context of textual documents whose structure may be described using traditional context-free grammars. That is, documents used as test inputs are generated with the help of the production rules specified by the grammar. This thesis shall investigate how this idea can be transferred from context-free grammars to graph grammars, which provide a constructive means for specifying the abstract syntax of visual models in model-based software engineering. The ultimate goal is to come up with an effective yet generic technique for fuzz testing model-based software engineering tools.