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

 


  • Code Smells in Model Based Development

    In classic text-based programming languages, the notion of code smells and the resolvement thereof is well-established. Examples of famous code smells are God Classes, Primitive Obsession, or Duplicate Code. Finding and resolving code smells in a code base helps create better code which leads to more productive development and less bugs.
    While catalogues of smells for various modeling languages are readily available, there is still a lack of techniques and tools for reliably detecting these smells in a given model. The goal of this thesis is to develop such model smell detection techniques. Furthermore, the developed techniques shall be used to investigate which kinds of model smells can be found in existing open source models.
     

  • An Efficient Graph Matcher for the Henshin Model and Graph Transformation Framework
    Henshin is a model transformation framework which is based on graph transformation concepts implemented on top of the Eclipse modeling framework. The computationally most expensive part supported by the Henshin transformation engine is to find all occurrences of the left-hand side graph of a transformation rule in a larger host graph. The problem to be solved is a variant of the well-known subgraph isomorphism problem, namely to find all subgraphs of the host graph which are isomorphic to the left-hand side graph. The current implementation translates the problem to a constraint satisfaction problem amenable to an off-the-shelf constraint solver. While this approach is generic and works reasonably well for small to medium sized graphs, it suffers from performance and scalability problems for larger host and/or rule graphs. The goal of this thesis is to implement a simple pattern matching algorithm and to try out heuristic methods similar to those for the special case of triangle listing [Ortmann & Brandes 2014] for speeding up the search. Furthermore, experiments on finding partial patterns will be made to determine whether a suitable ordering of the pattern search leads to a speed up. The thesis will be co-supervised by Prof. Kratsch
     
  • 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.
     
  • 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.