Attribut:Kurzfassung
Dies ist ein Attribut des Datentyps Text.
E
Erzeugung von Verschlüsselungsregeln auf Modelländerungen aus Zugriffskontrollregeln auf Modellelementen +
In der Softwareentwicklung werden häufig Modelle genutzt. Bei einer Zusammenarbeit an diesen Modellen werden Zugriffskontrollsysteme eingesetzt, um die darin enthaltenen Daten vor unbefugtem Zugriff zu schützen. Aktuell genutzte Ansätze benötigen dafür entweder eine zentrale Zugriffskontrolle, der alle Beteiligten vertrauen müssen, oder sind nur für einen bestimmten Typ Modell nutzbar. Daher befassen wir uns in dieser Arbeit mit der Problemstellung, verschiedene Arten von Modellen ohne eine zentrale Zugriffskontrolle zu teilen. Wir stellen ein Konzept zur Ableitung von Verschlüsselungsregeln aus den Regeln einer Rollenbasierten Zugriffskontrolle, die auf Modellelemente definiert sind, vor. Durch Nutzung von symmetrischer Verschlüsselung und Digitaler Signaturen können Lese- und Schreibrechte ohne einen zentralen Server zur Zugriffskontrolle umgesetzt werden. Modelle werden in unserem Ansatz als Delta Chain und somit als Abfolge von einzelnen Modelländerungen dargestellt, wodurch unser Ansatz für verschiedene Arten von Modellen funktioniert. Die Verschlüsselungsregeln werden auf die einzelnen Modelländerungen angewendet. Zusätzlich haben wir das Konzept prototypisch implementiert. Unsere Implementierung haben wir ausführlich evaluiert. Durch eine funktionale Analyse anhand von Software-Tests konnten wir die Funktionalität unseres Ansatzes zeigen. Eine zusätzlich durchgeführte empirische Evaluation bestätigt diese Aussage, zeigt aber auch Einbußen bei Laufzeit und benötigtem Speicherplatz, die durch die Verschlüsselung in Kauf genommen werden müssen. Die für die empirische Evaluation benötigten realitätsnahen Fallstudien haben wir aus Github-Projekten abgeleitet. +
Die Generierung von Quellcode ist ein wesentlicher Bestandteil der modellgetriebenen Softwareentwicklung. Ohne die Möglichkeit, ausführbaren Quellcode aus den entwickelten Modellen zu generieren, nimmt der Nutzen dieses Entwicklungsparadigmas erheblich ab. Obwohl es verschiedene Ansätze zur Generierung von Quellcode aus Modellen gibt, findet sich wenig Forschung, die diese bestehenden Ansätze objektiv vergleicht. Das Ziel dieser Arbeit ist es, diese Lücke zu schließen, indem wir bestehende Ansätze zur Quellcodegenerierung analysieren und vergleichen. Zusätzlich haben wir die Ergebnisse unserer Analyse getestet, indem wir sie auf eine Industrie-Fallstudie angewendet haben. Hierfür wählten wir den, basierend auf den Ergebnissen unserer allgemeinen Analyse und den spezifischen Bedingungen dieses Projekts, am besten geeigneten Ansatz. Wir entwickelten einen Prototyp, um zu beweisen, dass unser Prototyp den aktuellen Ansatz ersetzen kann und führten ein Experiment durch, um zu bewerten, ob die neue Implementierung eine Verbesserung für die Entwickler bringen würde. +
In today’s world, most datasets do not have only a small number of attributes. The high
number of attributes, which are referred to as dimensions, hinder the search of objects
that normally not occur. For instance, consider a money transaction that has been not
legally carried out. Such objects are called outlier. A common method to detect outliers
in high dimensional datasets are based on the search in subspaces of the dataset. These
subspaces have the characteristics to reveal possible outliers. The most common evaluation of algorithms searching for subspaces is based on benchmark datasets. However, the
benchmark datasets are often not suitable for the evaluation of these subspace search algorithms. In this context, we present a method that evaluates subspace search algorithms
without relying on benchmark datasets by hiding outliers in the result set of a subspace
search algorithm. +
One research field of High Performance Computing (HPC) is computing clusters. Computing clusters are distributed memory systems where different machines are connected through a network. To enable the machines to communicate with each other they need the ability to pass messages to each other through the network. The Message Passing Interface (MPI) is the standard in implementing parallel systems for distributed memory systems. To enable software architects in predicting the performance of MPI-based systems several approaches have been proposed. However, those approaches depend either on an existing implementation of a program or are tailored for specific programming languages or use cases. In our approach, we use the Palladio Component Model (PCM) that allows us to model component-based architectures and to predict the performance of the modeled system. We modeled different MPI functions in the PCM that serve as reusable patterns and a communicator that is required for the MPI functions. The expected benefit is to provide patterns for different MPI functions that allow a precise modelation of MPI-based systems in the PCM. And to obtain a precise performance prediction of a PCM instance. +
In the past decades, there has been an increased interest in the development of automated vehicles. Automated vehicles are vehicles that are able to drive without the need for constant interaction by a human driver. Instead they use multiple sensors to observe their environment and act accordingly to observed stimuli. In order to avoid accidents, the reaction to these stimuli needs to happen in a sufficiently short amount of time. To keep implementation overhead and cost low, it is highly beneficial to know the reaction time of a system as soon as possible. Thus, being able to assess their performance already at design time allows system architects to make informed decisions when comparing software components for the use in automated vehicles. In the presented thesis, I analysed the applicability of architecture-based performance prediction in the context of automated vehicles using the Palladio Approach. In particular, I focused on the prediction of design-time worst-case reaction time as the reaction ability of automated vehicles, which is a crucial metric when assessing their performance. +
Manual feature engineering is a time consuming and costly activity, when developing new Machine Learning applications, as it involves manual labor of a domain expert. Therefore, efforts have been made to automate the feature generation process. However, there exists no large benchmark of these Automated Feature Generation methods. It is therefore not obvious which method performs well in combination with specific Machine Learning models and what the strengths and weaknesses of these methods are.
In this thesis we present an evaluation framework for Automated Feature Generation methods, that is integrated into the scikit-learn framework for Python. We integrate nine Automated Feature Generation methods into this framework.
We further evaluate the methods on 91 datasets for classification problems. The datasets in our evaluation have up to 58 features and 12,958 observations. As Machine Learning models we investigate five models including state of the art models like XGBoost. +
This thesis aims to evaluate the component architecture generated by component-based software systems after reverse engineering. The evaluation method involves performing a manual analysis of the respective software systems and then comparing the component architecture obtained through the manual analysis with the results of reverse engineering. The goal is to evaluate a number of parameters, with a focus on correctness, related to the results of reverse engineering. This thesis presents the specific steps and considerations involved in manual analysis. It will also perform manual analysis on selected software systems that have already undergone reverse engineering analysis and compare the results to evaluate the differences between reverse engineering and ground truth. In summary, this paper evaluates the accuracy of reverse engineering by contrasting manual analysis with reverse engineering in the analysis of software systems, and provides some direction and support for the future development of reverse engineering. +
Die Wahrung von Vertraulichkeit ist essentiell für moderne Softwaresysteme. Eine Überprüfung auf Probleme bereits während der Entwurfsphase ermöglicht eine effiziente Fehlerbehebung. Mit dem datenzentrierten Palladio-Komponenten-Modell (DPCM) ist eine solche Prüfung möglich. Im Rahmen der Arbeit soll der Ansatz über eine realistische Fallstudie anhand der Corona-Warn-App evaluiert werden. Dazu müssen zunächst aus den Entwurfsdokumenten Vertraulichkeitsanforderungen extrahiert werden, um anschließend deren Einhaltung prüfen zu können. Um den Ansprüchen an ein systematisches und nachvollziehbares Vorgehen bei der Evaluierung zu genügen, wird zunächst ein Prozess zur Anforderungsextraktion konzipiert. Die Evaluation des DPCM findet anschließend für die Qualitätseigenschaften der Ausdrucksmächtigkeit und Genauigkeit statt. Das Ergebnis der Arbeit besteht aus einem Katalog von Vertraulichkeitsanforderungen für die Corona-Warn-App, dem entwickelten Extraktionsprozess, sowie initialen Ergebnissen für die Evaluation des DPCM. +
Die binäre Klassifikation von Daten mit unbalancierter Klassenverteilung ist ein relevantes Data-Mining-Problem. In vielen Anwendungsgebieten tritt die interessierende Klasse viel seltener auf als die Mehrheitsklasse, beispielsweise in der medizinischen Diagnose. Standard-Lernalgorithmen und -Evaluationsmaße sind in solchen Situationen nicht gut geeignet. In der Literatur gibt es viele Ansätze, die dieses Problem mit geeigneteren Evaluationsmaßen und Lernmethoden adressieren. Die Frage, unter welchen Umständen welche der Lernmethoden am besten funktionieren, soll durch eine umfassende experimentelle Vergleichsstudie beantwortet werden. Ein weiteres Ziel dieser Masterarbeit ist, den Einfluss verschiedener Datencharakteristiken auf die Performanz der Methoden mithilfe von Meta-Learning zu untersuchen. +
Die binäre Klassifikation von Daten mit unbalancierter Klassenverteilung ist ein relevantes Data-Mining-Problem. In vielen Anwendungsgebieten tritt die interessierende Klasse wesentlich seltener auf als die Mehrheitsklasse. Standard-Klassifikationsalgorithmen und -Evaluationsmaße sind in solchen Situationen nicht gut geeignet. In der Literatur gibt es viele Ansätze, die dieses Problem mit geeigneteren Evaluationsmaßen und Lernmethoden adressieren. Wir führen eine umfassende experimentelle Vergleichsstudie mit vielen Lernmethoden, Evaluationsmaßen und Klassifikationsalgorithmen durch, um herauszufinden, wie gut die Performanz der Methoden auf einer Vielzahl von Datensätzen ist. Im zweiten Teil unserer Arbeit untersuchen wir den Zusammenhang zwischen verschiedenen Datencharakteristiken und der Performanz der Methoden mithilfe von Meta-Learning. +
Programming assignments for students are target of plagiarism. Especially for graded assignments, instructors want to detect plagiarism among the students. For larger courses, however, manual inspection of all submissions is a resourceful task. For this purpose, there are numerous tools that can help detect plagiarism in submissions. Many well-known plagiarism detection tools are token-based detectors. In an abstraction step, they map source code to a list of tokens, and such lists are then compared with each other. While there is much research in the area of comparison algorithms, the mapping is often only considered superficially. In this work, we conduct two experiments that address the issue of token abstraction. For that, we design different token abstractions and explain their differences. We then evaluate these abstractions using multiple datasets. We show that different abstractions have pros and cons, and that a higher abstraction level does not necessarily perform better. These findings are useful when adding support for new programming languages and for improving existing plagiarism detection tools. Furthermore, the results can be helpful to choose abstractions tailored to specific requirements. +
Policy makers face the difficult task to make far-reaching decisions that impact the life of the the entire population based on uncertain parameters that they have little to no control
over, such as environmental impacts. Often, they use scenarios in their decision making process. Scenarios provide a common and intuitive way to communicate and characterize different uncertain outcomes in many decision support applications,
especially in broad public debates. However, they often fall short of their potential, particularly when applied for groups with diverse
interests and worldviews, due to the difficulty of choosing a small number of scenarios to summarize the entire range of uncertain future outcomes. Scenario discovery addresses these problems by using statistical or data-mining algorithms to find easy-to-interpret, policy-relevant regions in the space of uncertain input parameters of computer simulation models. One of many approaches to scenario discovery is subgroup discovery, an approach from the domain of explainable Artificial Intelligence.
In this thesis, we test and evaluate multiple different subgroup discovery methods for their applicabilty to scenario discovery applications. +
Der Ansatz der modellgetriebenen Softwareentwicklung (MDSD) kann diverse Vorzüge mit sich bringen: von einer erhöhten Entwicklungsgeschwindigkeit über eine verbesserte Wartbarkeit bis hin zu einer allgemein höheren Softwarequalität. Dennoch hat der Ansatz noch keine weite Verbreitung gefunden. Als einer der Gründe dafür wurde eine Eigenschaft von MDSD-Tools identifiziert: Oft handelt es sich bei ihnen um schwergewichtige Anwendungen mit komplexen Installationsvorgängen. Der Vitruvius-Ansatz ist ein sichtenbasierter MDSD-Ansatz, der dazu in der Lage ist, verschiedene Modellierungsartefakte (semi-)automatisch konsistent zu halten. Leider ist auch der Vitruvius-Ansatz nur über eine schwergewichtige, komplex einzurichtende Eclipse-IDE-Instanz verwendbar Die Eclipse Foundation betreibt mit EMF.cloud ein Projekt, das dem Zweck dient, Eclipse-Modellierungsanwendungen in modernen Cloud-Umgebungen verfügbar zu machen. In dieser Arbeit haben wir die Kompatibilität des Vitruvius-Ansatzes mit dem EMF.cloud-Projekt untersucht und eine prototypische Anwendung implementiert. Mittels einer Nutzerstudie haben wir erhoben, welche Nutzererfahrung dieser Prototyp bietet. +
Large language models like T5 perform excellently on various NLI benchmarks. However, it has been shown that even small changes in the structure of these tasks can significantly reduce accuracy. I build upon this insight and explore how robust the NLI skills of T5 are in three scenarios. First, I show that T5 is robust to some variations in the MNLI pattern, while others degenerate performance significantly. Second, I observe that some other patterns that T5 was trained on can be substituted for the MNLI pattern and still achieve good results. Third, I demonstrate that the MNLI pattern translate well to other NLI datasets, even improving accuracy by 13% in the case of RTE. All things considered, I conclude that the robustness of the NLI skills of T5 really depend on which alterations are applied. +
Zur effizienten Arbeit mit Code ist die Anforderung-zu-Code-Nachverfolgbarkeit entscheidend. Mit dem Aufkommen fortschrittlicher großer Sprachmodelle (engl. Large Language Models (LLMs)) besteht die Möglichkeit, diese Links mithilfe von LLMs anstelle spezialisierter Software oder Menschen zu identifizieren. Dies könnte Zeit und Kosten sparen sowie die Nutzung durch weniger erfahrene Anwender ermöglichen.
Diese Arbeit konzentriert sich auf die Entwicklung eines Ansatzes, der die entsprechende Eingabe vorbereitet und einen “um Informationsabruf ergänzten Generierungsansatz” (engl. Retrieval Augmented Generation (RAG)) sowie LLMs verwendet, um Links zu identifizieren und deren wissenschaftliche Validität zu bewerten. Der Kern des Ansatzes besteht darin, LLMs für diesen Zweck zu nutzen, unterstützt durch einen Prototypen, der die Kommunikation mit den Modellen und die erforderliche Vorbereitung ermöglicht. Zunächst werden Grundlagen sowie verwandte Arbeiten erarbeitet, um geeignete Evaluati onsmetriken und eine Vergleichsdatenbasis zu eruieren. Anschließend folgt eine Vorstudie, in der mit zwei selbst erstellten Datensätzen iterativ die Parameter des Prototyps ausgearbeitet und parallel der Prototyp implementiert werden. Nachdem die Ergebnisse des Prototyps basierend auf den Metriken Präzision, Ausbeute und F1-Punktzahl als zufriedenstellend bewertet werden, werden die beiden Datensätze aus der Vorstudie sowie zwei zusätzliche, aus verwandten Arbeiten identifizierte Datensätze mit denselben Parametern verwendet, um Daten für die Auswertung zu sammeln. Die Ergebnisse werden analysiert und Hypothesen formuliert, wobei sich zeigt, dass das Auffinden von Links auf Dateiebene mithilfe von LLMs relativ gut funktioniert. Anschließend wird
eine notwendige Stichprobe verwendet, um die Metriken für das Auffinden von Links auf Funktionsebene durch LLMs zu bewerten, wobei Potenzial für diese Anwendung identifiziert wird. Es zeigt sich, dass LLMs bei der Identifizierung von Links in gegebenem Code ähnlichen Einschränkungen wie Menschen unterliegen. LLMs können jedoch Vorteile bieten, wenn die identifizierten Voraussetzungen erfüllt sind, da sie möglicherweise schneller als Menschen arbeiten und gleichzeitig in der Lage sind, geeignete Dokumentationen zu erstellen. Letztlich erweist sich der in dieser Arbeit verfolgte Ansatz als sehr vielversprechend, da die Ergebnisse im Vergleich zu den aus verwandten Arbeiten als Benchmark gewählten Ergebnissen vergleichbare Resultate beim Auffinden von Links auf Dateiebene liefern und zusätzlich valide Hinweise auf die Möglichkeit geben, Links auf Funktionsebene mithilfe von LLMs zu finden.
Zum Schluss werden Optimierungspotenziale des gewählten Ansatzes basierend auf verwandten Arbeiten und den tatsächlichen Auswertungsergebnissen entwickelt.
A recent trend in the development of enterprise systems constitutes the design of software projects as microservices. When migrating monolithic systems, architectural performance models can provide a valuable contribution.
In this thesis, we present an approach for the automatic extraction of performance models based on tracing information. The extracted performance models reconstruct architecture, internal structure, control flow as well as usage scenarios of the system and can therefore support the migration process by simulations. The thesis includes an analysis of current standards in the field of distributed tracing, covering both the integration and the granularity of the extracted data. The architecture of our extraction process allows a flexible, vendor-independent adaptation according to the own system landscape. We also provide an evaluation of our approach, which includes aspects concerning the integration of tracing mechanisms, the examination of the extracted model elements as well as the deviation between model predictions and measurements on the real system. +
Extrahieren von Code-Änderungen aus einem Commit für kontinuierliche Integration von Leistungsmodellen +
Ein Leistungsmodell ermöglicht den Software-Entwicklern eine frühzeitige Analyse von programmierten Komponenten in Bezug auf Leistungseigenschaften. Um Inkonsistenzen zu vermeiden, soll das Leistungsmodell angepasst werden, sobald Entwickler den Quellcode ändern. Eine Aktualisierung von Leistungsmodellen ist kein triviales Problem. Der Ansatz "kontinuierliche Integration von Leistungsmodellen" (Abkürzung: KILM) führt eine automatische inkrementelle Aktualisierung von Leistungsmodellen durch und bietet somit eine Lösung des Problems an. Ein wichtiger Vorteil von diesem Ansatz ist, dass das Leistungsmodell weder manuell angepasst (aufwändig und fehleranfällig), noch nach jeder Änderung neu aufgebaut (ineffizient und aufwändig) werden muss.
In dieser Bachelorarbeit wurde der erste Schritt für die vorgestellte Lösung implementiert: der KILM-Ansatz wird mit Git-Repository verknüpft, Änderungen werden aus Commits extrahiert und auf Code- und Leistungsmodelle angewandt. Die Implementierung wurde in einer Fallstudie evaluiert. Auf einem Projekt wurden unterschiedliche Arten von Änderungen simuliert und die Korrektheit von den aktualisierten Code- und Leistungsmodellen überprüft. Die Ergebnisse bestätigen korrekte Aktualisierung von Code- und Leistungsmodellen in den 96,6 % der durchgeführten Tests. +
Extraktion von Label-Propagationsfunktionen für Informationsflussanalysen aus architekturellen Verhaltensbeschreibungen +
Vertraulichkeit stellt eine Sicherheitseigenschaft dar, die für Systeme von großer Bedeutung sein kann. Eine Möglichkeit, Vertraulichkeitsverletzungen bereits in frühen Phasen des Softwareentwicklungsprozesses zu finden, ist die Analyse auf Datenflussdiagrammen (DFDs). Für eine solche Analyse beschreibt Seifermann eine Transformation aus architekturellen Verhaltensbeschreibungen – insbesondere der des Palladio-Komponentenmodells (PCM). Diese erfordert jedoch noch eine manuelle Vertraulichkeitsspezifikation und berücksichtigt keine impliziten Informationsflüsse. In dieser Arbeit wird daher eine Erweiterung des Transformationsprozesses erarbeitet. Diese verringert den nötigen Spezifikationsaufwand in Form von Label-Propagationsfunktionen und bezieht vorhandene Informationen über implizite Flüsse mit ein. Dafür werden Konzepte aus Typsystemen für Sicherheit herangezogen und auf den Transformationsprozess übertragen. Variablenabhängigkeiten im PCM werden dabei extrahiert und dienen als Grundlage, um Label-Propagationsfunktionen zu generieren. Das Konzept des Sicherheitskontexts wird weiter in die Analyse eingebracht, um implizite Flüsse zu erkennen. Anschließend wird die Erweiterung implementiert und auf die Reduktion des Spezifikationsaufwands sowie die Genauigkeit evaluiert. +
F
In jedem Software-System, in dem Nutzerdaten anfallen, muss deren Verarbeitung strengen Auflagen unterliegen. Das bislang strengste und am weitesten verbreitete dieser Gesetze ist die Europäische Datenschutz-Grundverordnung. Um unter dieser Verordnung Daten legal zu verarbeiten, ist es für Software-Entwickler sehr günstig, diese so früh wie möglich im Entwicklungsprozess zu berücksichtigen.
Eine Möglichkeit, um datenschutzrechtliche Verstöße zur Designzeit festzustellen, ist die Datenflussanalyse. Dabei werden dem konventionellen Software-Modell noch Eigenschaften hinzugefügt, ebenso wie den modellierten Daten. Aus dem Aufruf-Graphen kann dann ein Datenflussdiagramm erstellt werden, welches anzeigt, welche Daten von welchen Komponenten wohin fließen. Diese Arbeit beschreibt eine Fallstudie, in welcher die Datenflussanalyse in einem konkreten System untersucht wird. Zunächst werden Anforderungen aufgestellt, welche eine Fallstudie der Bereiche Mobilität und Datenschutz erfüllen muss. Der wissenschaftliche Beitrag dieser Arbeit liegt dann in diesen Anforderungen sowie der testweisen Durchführung der Fallstudie. Dabei wird ein fiktives Ride-Pooling Unternehmen modelliert. Das Modell wird mithilfe der Datenflussanalyse untersucht, und aus den Ergebnissen werden Schlüsse über die Analyse
gezogen. +