Fakultät für Informatik

TU München - Fakultät für Informatik
Software- and Systems Engineering Research Group

TUM
 
 

Agenda

Es sprechen Studenten über ihre abgeschlossenen Diplomarbeiten und Systementwicklungsprojekte.

Am Montag, 24.09.18, ab 13:30 Uhr, im Raum Neumann (00.11.038):

ZeitVortragenderTyp(Betreuer)Titel
12:40 - 13:05:Adrian HölzlBA (Dr. Tobias Röhm)Automated Extraction of Static References between Source Code and Database
13:05 - 13:30:Alice ReyBA (Dr. Elmar Jürgens, Roman Haas)Inkrementelle Berechnung von Graphzentralitätsmetriken
13:30 - 13:55:Andreas WehrleBA (Benedikt Hauptmann, Maximilian Junker)Automatische Erkennung von Ursachen und Wirkungen in textuellen Anforderungen
13:55 - 14:20:Patrick BassnerBA (Dr. Benjamin Hummel)Error localization in source code using error stacktraces
14:20 - 14:45:Enis CaliskanBA (Dr. Elmar Jürgens, Daniel Veihelmann)Extraktion von Interaktionsmodellen

Automated Extraction of Static References between Source Code and Database

Many existing software systems rely on a relational database for managing their persistent data. However, the software system itself and the database often change independently from each other. This may lead to inconsistencies between them, for instance tables or columns in the database which are not referenced from the source code any longer. To recognize or prevent such inconsistencies, a procedure was developed that extracts all locations in the source code of a project where the database is accessed using the Java Database Connectivity. Furthermore, all referenced database entities are extracted out of the corresponding query expressions and their CRUD type is determined. This serves the ultimate purpose of finding all those tables and columns which are referenced in any location in the code-base to compare them with the ones existing in the database. The presentation illustrates the initial problem, the developed approach and the results of its evaluation.

Inkrementelle Berechnung von Graphzentralitätsmetriken

In the past, graph centrality metrics were already successfully used in static software analysis. The computation of centrality metrics on large graphs typically is very time consuming due to the fact that these metrics have to be recomputed after every change made to the software. The main idea of the incremental software analysis is to speed up the recomputations to be able to give immediate feedback to developers. However, recomputation of centrality measures for every change to a software system is too costly. For practical use of code centrality information in software analysis, incremental calculation approaches are more applicable as they are much cheaper. In this bachelor's thesis we discuss different incremental approaches for calculating the PageRank centrality. In the literature, there can be found incremental approaches for the PageRank computation, but these were made for the analysis of the Web structure. We evaluate their applicability in incremental software analysis.

Automatische Erkennung von Ursachen und Wirkungen in textuellen Anforderungen

Die Testerstellung mit Hilfe von formalen Diagrammen ist eine bewährte Methode zur strukturierten Erstellung einer Testsuite. Regelorientierte Anforderungen können dabei als Cause-Effect-Graphen dargestellt werden. Da die Erstellung der Graphen ein manueller und somit zeitintensiver Prozess ist, wird diese Methode in der Praxis wenig genutzt. In dieser Bachelorarbeit wird ein Algorithmus vorgestellt der Ursachen und Wirkungen in einer Anforderung erkennt und daraus automatisiert einen ersten Entwurf des Cause-Effect-Graphens erstellt. Durch die Teilautomatisierung des Prozesses kann die Produktivität deutlich gesteigert werden, da der Graph nur noch angepasst und ergänzt werden muss, ohne ihn komplett manuell erstellen zu müssen. Dies hat nicht nur eine Erhöhung der Produktivität, sondern auch eine Verbesserung der Testqualität zur Folge, da die Tests strukturiert und nachvollziehbar erstellt werden. Der Algorithmus erkannte in der durchgeführten Studie 52,7% der vorhandenen Ursachen und Wirkungen.

Error localization in source code using error stacktraces

In huge software systems, locating a bug described in a bug report is one of the most time consuming tasks. Such reports are often enriched with a stack trace. However, it is not always trivial to identify the real cause of an exception. To address this problem, we implemented two techniques that alleviate fixing bugs that are described by a stack trace. The first approach uses a statistical analysis on a method call graph to suggest which locations in the stack trace are most likely to contain the error and therefore to be part of the fix. The second approach tracks the state of variables throughout a symbolic execution of the code in order to give hints about their state at the line of the exception. We evaluated our approaches on some bug reports of Teamscale. The results show that the overall usefulness of our first approach is questionable due to low accuracy. The second approach, however, shows an overall usefulness of 76% in our evaluation.

Extraktion von Interaktionsmodellen

Unterschiedliche Stakeholder im Softwareentwicklungsprozess haben häufig auch unterschiedliche Sichten auf dasselbe System. Während Entwickler typischerweise auf der Ebene von Quellcode und Systemarchitektur denken, kann für Tester und Endnutzer beispielweise das User Interface die primäre Sicht auf ein System darstellen. In der Praxis haben sich eine Reihe von dynamischen und statisches Analysen etabliert, etwa die Ermittlung von Test-Coverage, Code-Nutzungsanalysen oder die Test Gap Analyse. Die zugehörigen Artefakte beziehen sich oft auf den Quellcode, zum Beispiel Ausführungsinformationen für eine bestimmte Code-Datei. Diese Informationen sind für Personen ohne Implementierungssicht (z.B. Testmanager) jedoch häufig zu abstrakt, was zu zusätzlichem Kommunikationsaufwand und Verzögerungen führen kann. Hierfür wurde eine Methode entwickelt, die aus dem schwer zugänglichen Quellcode ein Modell ableitet, das aus dem User Interface bekannte Interaktionspunkte, wie zum Beispiel Buttons oder Menüeinträge, extrahiert und die Codeartefakte darin visualisiert. Das Modell passt sich den Veränderungen des Quellcodes automatisiert an. Als Zielsprache der Extrahierung wurde C# gewählt in Kombination mit XAML-Files, die die Benutzeroberfläche in XML-konformer Struktur deklariert.

© Software & Systems Engineering Research Group
Sitemap |  Kontakt/Impressum
Letzte Änderung: 2018-09-24 09:58:09