05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Permanent URI for this collectionhttps://elib.uni-stuttgart.de/handle/11682/6

Browse

Search Results

Now showing 1 - 10 of 122
  • Thumbnail Image
    ItemOpen Access
    Adaption des Systems XSTAMPP 4 an die Analysemethode STAMP/CAST in der Einzelplatzanwendung
    (2020) Zimmermann, Eva
    Täglich geschehen Unfälle, die analysiert werden müssen und für die Erklärungen gefunden warden sollten. Dazu gibt es einen Analyseprozess CAST, der auf STAMPP aufbauend, existierende Unfälle betrachtet und durch dessen Erkenntnisse weitere Unfälle verhindert werden sollen. Um diesen Prozess zu unterstützen, wird in dieser Bachelorarbeit eine Einzelplatzanwendung umgesetzt, die den Anwender bei der Analyse von Unfällen unterstützt. Dafür wurde aufbauend auf der Theorie und den existierenden Arbeiten, eine Anforderungsanalyse durchgeführt, auf dessen Grundlage dann die Einzelplatzanwendung implementiert wurde. Als Ergebnis der Arbeit wurde eine Software fertiggestellt, die es dem Analyst ermöglicht, alle Schritte von CAST durchzuführen.
  • Thumbnail Image
    ItemOpen Access
    Evaluating mobile monitoring strategies for native iOS applications
    (2018) Sassano, Matteo
    The success of a company is often influenced by the service and by a product they offer. If the supplied service or the offered product is a software system, a good performance will be essential to achieve desired goals such as high product sales. Slow applications and server responses due to performance issues, may cause a negative chain reaction. The amount of actual and potential users will probably decrease, and so does the users’ satisfaction and the number of product sales. Application Performance Management (APM) is necessary to avoid these cases. The usage of APM could help detecting eventual software problems and to remediate performance issues afterwards. Meanwhile, the usage of mobile devices, e.g., smartphones and tablets, for accessing enterprise systems is increasing in every application category. This expands the space where a potential software problem might be located in. Performance of mobile applications is more influenced by external circumstances, e.g., user location and access from bandwidth limited networks. APM tools not supporting mobile monitoring, are not able to recognize the mentioned performance issues. There are different implementation strategies for application monitoring agents such as call stack sampling and full source code instrumentation. The goal of this thesis is to research agent strategies for mobile devices, to develop an own version of each agent type, to analyze and evaluate the different agent approaches in combination of various mobile application types. The evaluation will be done with a series of experiments, by measuring the outcoming overhead of the developed agents, integrated into previously selected representative iOS open-source applications.
  • Thumbnail Image
    ItemOpen Access
    A methodology and initial exploration of personality traits of GitHub Developers as expressed in GitHub issues
    (2019) Greinert, Florian
    Software engineering as a collaborative task relies on the fact that people work together. This work can be influenced by personalities of the participating developers and because projects can fail because of individual differences it becomes more important to understand the human side of software engineering. This work will look at the question of GitHub issues can be used to study the personality of its authors and which, if any, constraints may apply. Using LIWC a methodology will be developed to facilitate that research with a firm grounding in personality theory and it’s practical usage within the domain of software engineering using the Five Factor Model to construct a personality profile of the type of users on GitHub who open up and comment in issues.
  • Thumbnail Image
    ItemOpen Access
    Einsatz von Machine-Learning-Methoden zur adaptiven Darstellung von Software-Metriken
    (2017) Hermann, Matthias
    Auf manchen SonarQube-Instanzen wird die verfügbare Fläche der Webseite nicht effizient genutzt und große Teile der Seite enthalten Leerflächen. Damit diese Flächen genutzt werden können, um genau die Informationen darzustellen, weswegen der Benutzer die Webseite aufgerufen hat, wurde im Rahmen dieser Arbeit mit DeepSonar eine adaptive Benutzeroberfläche für die Codeanalyse-Plattform SonarQube entwickelt. Diese erlernt mittels Machine-Learning die für den aktuellen Benutzer und Nutzungskontext relevantesten Informationen, d. h. die aus einer Programmcodeanalyse resultierenden Software-Metriken. Anhand der Ergebnisse des Machine-Learnings wird die Weboberfläche von SonarQube angepasst, sodass diese Metriken in der davor ungenutzten Fläche auf der Startseite angezeigt werden.
  • Thumbnail Image
    ItemOpen Access
    Integration von manuellem Testen in das Continuous Deployment durch das SystemTestPortal
    (2018) Schneider, Steffen
    Qualitätssicherung durch manuelles Testen scheint heute in der agilen Softwareentwicklung fehl am Platz zu sein. Kontinuierliche Entwicklung benötigt für die hochfrequente Integration und Auslieferung schnelle und wiederholbare Tests. Menschen sind langsamer und bei repetitiven Aufgaben nicht konsequent und teilweise überfordert. Dennoch ist die Kreativität des Menschen beim Testen der ausschlaggebende Faktor. Mit dieser Arbeit soll ein Ansatz der Integration von manuellen Tests in die kontinuierliche Entwicklung vorgestellt und untersucht werden. Hierbei werden die Ergebnisse der manuellen Tests verwendet um automatisch den Veröffentlichungsprozess zu steuern. Gleichzeitig wird der Verwaltungs- und Kommunikationsaufwand reduziert. Damit kann manuelles Testen für die Praxis attraktiver gemacht und eine Steigerung der Testqualität bewirkt werden. Das zeichnet sich durch weniger Defekte im Endprodukt, kürzere Entwicklungszeiten und Kosteneinsparungen aus. Zur Evaluation wurde der Ansatz in einem Prototypen auf seine Praxistauglichkeit untersucht. Das Ergebnis zeichnet eine positive Resonanz gegenüber dem Einsatz in der Praxis ab. Um konkrete Änderungen in der Qualität eines Produktes zu messen, ist eine weiterführende Langzeitstudie nötig. Diese Studie misst die Auswirkungen des Einsatzes der Integration von manuellen Tests in das Continuous Deployment. Basierend darauf lässt sich untersuchen, wie sich manuelle Tests weiter in die kontinuierliche Entwicklung einbinden lassen. Mögliche Gebiete sind die Reduzierung der Ausführungszeit oder die automatisierte Bestimmung einer ausreichenden Testabdeckung.
  • Thumbnail Image
    ItemOpen Access
    Evaluating the Effectiveness of Proposed Service-based Maintainability Metrics for Microservices
    (2019) Szidlovszky, Marcel
    Die Wartung von Softwaresystemen ist ein kritischer Prozess in der Entwicklung. Obwohl die Kosten der Wartung auf 60-80% des Softwareentwicklungslebenszyklus geschätzt wird, kommt es trotzdem häufig vor, dass in der Entwicklung die Wartbarkeit an letzter Stelle gesetzt und man den Fokus mehr auf andere Komponenten legt. Dies bekommen, dann die Entwickler, die aus präventiven, korrektiven, adaptiven oder perfektiven Gründen die Software warten müssen, zu spüren. Um eine aufwändige Wartung richtig planen zu können, das heißt den Kosten- und Zeitaufwand zu schätzen, muss man als erstes bestimmen wie wartbar eine Software ist. Dafür werden vor allem Statische-Code und Runtime-Daten Analysen verwendet, welche sich unter anderem auch auf Software Metriken beziehen. Für die herkömmlichen Monolithische Architekturen gibt es bereits eine Menge Literatur, die die Wirksamkeit von Wartbarkeitsmetriken bewertet und nachweist. Da es aber in den letzten Jahren, vor allem bei großen Enterprise Systemen und Software As A Service (SAAS) einen Wechsel von Monolithischen Architekturen zu Microservice Architekturen gab, müssen wir uns anpassen. Weltbekannte Webservices wie Netflix und Amazon zeigen uns dabei wie erfolgreich dieser relativ neuer Architekturtyp sein kann. Diese Systeme folgen dem SAAS Modell und haben somit einen konstanten Wartungsprozess, wobei eine effektive Wartbarkeitsmessung, sehr von Vorteil wäre. Mit diesem Paper wollen wir die Lücke in der Literatur füllen und evaluieren ob Service-basierte Wartbarkeitsmetriken effektiv für Microservices benutzt werden können. Spezifisch sollen bisher noch nicht evaluierte Service-basierten Metriken untersucht werden. Um dieses Ziel zu erreichen wurde als erstes eine aktuelle Liste von vorgestellten Service-basierten Wartbarkeitsmetriken erstellt und eine Menge von Beispielsystemen zusammengestellt, anhand deren wir die Messbarkeit und Effektivität evaluieren können. Die Effektivität wurde dabei über die Messbarkeit und der Aussagekraft der untersuchten Metriken bestimmt. Die Aussagekraft wurde mithilfe folgender Evaluationsmethoden evaluiert: Zum einen wurde eine Korrelation zwischen Metriken und Expertenbewertungen, basierend auf den Wartbarkeitseigenschaften: Größe, Kopplung und Kohäsion, für Beispielsysteme aufgestellt und nach signifikanten Übereinstimmungen untersucht. Der zweite Teil der Evaluation beinhaltet eine Szenario-basierte Analyse, in der qualitativ Evaluiert wurde, wie Metriken im Verhältnis zu theoretischen Reaktionen von Architekturen stehen. Dabei wurde analysiert ob sie den geschätzten Aufwand und die Verschiedenheiten, der Reaktionen von den verschiedenen Architekturen, vorhersagen konnten. Das Ergebnis der Evaluationen zeigt, dass sowohl die untersuchten Kopplungsmetriken, als auch Größenmetriken, sehr effektiv sein können um die Wartbarkeit zu bestimmen. Allerdings konnte keine Aussage über die untersuchte Kohäsionsmetrik getroffen werden, da sich herausgestellt hat, dass die, für die Evaluation benutzten Beispielsysteme, möglicherweise ungeeignet waren.
  • Thumbnail Image
    ItemOpen Access
    Qualitätsanalyse von Studienprojekten anhand von Quellcode-Repositories
    (2017) Kersjes, Benedikt
    An vielen Hochschulen werden studentische Softwareentwicklungsprojekte als Teil der akademischen Ausbildung in Studiengängen wie Informatik oder Softwaretechnik durchgeführt. Auch an der Universität Stuttgart und insbesondere am Fraunhofer IAO werden im Bachelorstudiengang Softwaretechnik Studienprojekte durchgeführt. Da das Institut die Studienprojekte als Grundlage ihrer weiteren Forschungstätigkeit verwendet, besteht ein Interesse, dass in den Projekten qualitativ hochwertige Software entsteht. In dieser Arbeit wurde die Qualität von sechs Studienprojekten anhand ihres Quellcodes analysiert, die in den letzten Jahren am Fraunhofer IAO durchgeführt wurden. Darüber hinaus wurde eine Analyse der Repositories durchgeführt und eine Befragung der Betreuer vorgenommen, um mögliche Einflussfaktoren auf die Qualität der Projekte zu ermitteln. Hierzu wurde ein Werkzeug entwickelt, das die Analyse automatisiert durchführt und verwendet werden kann, um zukünftige Projekte am Institut nach der gleichen Methodik auszuwerten. Die Analysen ergaben, dass die gleichmäßige Verteilung der Arbeit über das Projekt, die Teilnehmerzahl, die Qualifikation der Betreuer und die Verwendung von Drittanbieter-Bibliotheken einen hohen Einfluss auf die Qualität der untersuchten Projekte hatten. Aus diesen Erkenntnissen wurden Handlungsempfehlungen für die Betreuung und Durchführung zukünftiger Studienprojekte am Fraunhofer IAO abgeleitet.
  • Thumbnail Image
    ItemOpen Access
    A Validation of Cognitive Complexity as a Measure of Source Code Understandability
    (2019) Muñoz Barón, Marvin
    Das Verstehen von Quellcode ist ein wesentlicher Bestandteil des Softwareentwicklungsprozesses. Es hat bereits zahlreiche Versuche gegeben, Quellcodemetriken zu beschreiben, die mit der Verständlichkeit korrelieren, aber nur wenige werden empirisch ausgewertet und diejenigen, die es sind, zeigen keine bedeutsame Unterstützung für ihren Zweck. Eine neuere Anstrengung ist Cognitive Complexity, ein Maß, das speziell als Metrik für die Verständlichkeit beschrieben wird. Das primäre Ziel dieser Studie war es, Beweise für die Bestimmung der Validität von Cognitive Complexity als Maß für die Verständlichkeit von Quellcode zu finden. Um dies zu erreichen, haben wir eine systematische Literaturrecherche geplant und durchgeführt, um Quellcode-Schnipsel zu finden, die in früheren Studien hinsichtlich ihrer Verständlichkeit bewertet wurden. Die Cognitive Complexity dieser Schnipsel wurde dann mit den in den Studien verwendeten Maßen der Verständlichkeit korreliert. Die Literaturrecherche identifizierte Daten aus 14 Studien, die 324 Code-Schnipsel und ungefähr 24.400 individuelle menschliche Auswertungen umfassten und in der Korrelationsanalyse verwendet wurden. Die Ergebnisse zeigen, dass die Cognitive Complexity bei den meisten Maßen aus bestehenden Studien signifikant mit der Verständlichkeit des Quellcodes korreliert. Der Mittelwert der signifikanten Korrelationen betrug 0,654 für die Zeit zum Verstehen und 0,411 für die subjektive Bewertung der Verständlichkeit, Lesbarkeit und der Zuversicht der Studienteilnehmer. Die Korrelation mit der Korrektheit der Veständnisaufgaben zeigte gemischte Ergebnisse, mit einigen signifikanten positiven und einigen signifikanten negativen Korrelationen. Insgesamt zeigen die in dieser Studie gesammelten Beweise eine signifikante Unterstützung für die Validität von Cognitive Complexity. Nach unserer Kenntnis ist Cognitive Complexity die erste rein codebasierte Metrik, die in bedeutsamer Weise mit der Verständlichkeit von Quellcode korreliert.
  • Thumbnail Image
    ItemOpen Access
    Erstellung von CryptoExamples in Python
    (2018) Kloppenburg, Manuel
    Kontext: Python ist eine sehr verbreitete und leicht zu erlernende Programmiersprache. Die Verwendung von kryptographischen Programmbibliotheken ist aber selbst in Python oft nicht einfach. Außerdem gibt es viele Beispiele im Internet, die veraltet und nicht sicher sind. Gerade für Entwickler, die keine Erfahrung in der Kryptographie haben, stellt es eine Schwierigkeit dar, kryptographisch sichere Software zu programmieren. Ziel: Es sollen Code-Beispiele für die Open Source Plattform CryptoExamples in der Programmiersprache Python erstellt werden. Diese Code-Beispiele haben die Anforderung sicher, minimal, vollständig, kopierbar, ausführbar und getestet zu sein, und helfen dadurch Entwicklern, sicheren Code zu schreiben. Methode: Es wurden generelle Richtlinien für das Erstellen und die Wartung von Code-Beispielen für CryptoExamples definiert. In den Richtlinien wird auf das Bundesamt für Sicherheit in der Informationstechnik (BSI) und das National Institute of Standards & Technology (NIST) der Vereinigten Staaten verwiesen, um sichere Algorithmen und Parameter auszuwählen. Auf Basis dieser Richtlinien wurde ein Umsatzkonzept für die Programmiersprache Python geschaffen und davon ausgehend Code-Beispiele entwickelt, die den Anforderungen gerecht werden. Für die Code-Beispiele wurde die kryptographische Programmbibliothek cryptography.io verwendet. Ergebnisse: Code-Beispiele für symmetrische Verschlüsselung, asymmetrische Verschlüsselung, digitale Signatur, Speichern von Schlüsselpaaren und Hashing sind entstanden. Die Code-Beispiele wurden auf der Open Source Plattform GitHub veröffentlicht und stehen somit der Öffentlichkeit zur Verfügung. Durch Statische Code-Analyse und automatische Tests ist die Code Qualität und Korrektheit gewährleistet. Außerdem werden die Code-Beispiele durch automatische Prüfung auf Konformität mit den Richtlinien überprüft. Fazit: Die erstellten Code-Beispiele helfen, sichereren Code zu schreiben. Sie müssen aber noch von Experten begutachtet werden, und es besteht die Möglichkeit, noch weitere Beispiele zu verwirklichen. Außerdem muss die Plattform CryptoExamples eine größere Reichweite erlangen, sodass jeder Entwickler diese Beispiele und keine anderen sieht.
  • Thumbnail Image
    ItemOpen Access
    SKilL language server
    (2018) Schäufele, Johannes
    Language analysis features offered by integrated development environments (IDEs) can ease and accelerate the task of writing code, but are often not available for domain-specific languages. The Language Server Protocol (LSP) aims to solve this problem by allowing language servers that support these features for a certain programming language to be used portably in a number of IDEs. A language server for Serialization Killer Language (SKilL) was implemented that supports a multitude of language features including automatic formatting, completion suggestions, and display of references and documentation associated with symbols. This thesis presents how the language server was implemented and discusses associated challenges that arose due to the nature of the SKilL and LSP specification.