Universität Stuttgart

Permanent URI for this communityhttps://elib.uni-stuttgart.de/handle/11682/1

Browse

Search Results

Now showing 1 - 10 of 306
  • Thumbnail Image
    ItemOpen Access
    Individual characteristics of successful coding challengers
    (2017) Wyrich, Marvin
    Assessing a software engineer's problem-solving ability to algorithmic programming tasks has been an essential part of technical interviews at some of the most successful technology companies for several years now. Despite the adoption of coding challenges among these companies, we do not know what influences the performance of different software engineers in solving such coding challenges. We conducted an exploratory study with software engineering students to find hypothesis on what individual characteristics make a good coding challenge solver. Our findings show that the better coding challengers have also better exam grades and more programming experience. Furthermore, conscientious as well as sad software engineers performed worse in our study.
  • 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 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
    Erstellung von CryptoExamples in C#
    (2018) Rusam, Nico
    Kontext: Kryptografie und Softwaresicherheit werden in der heutigen Zeit immer wichtiger. Jedoch fehlt Softwareentwicklern häufig das Wissen über diese Themengebiete. Das führt dazu, dass entwickelte Software immer wieder Sicherheitslücken aufweist oder von vornherein nicht sicher ist. Daraus können Angriffe resultieren, was zu einer Gefahr für Länder, Firmen und Privatleute werden kann. Es existieren kryptografische Bibliotheken die entsprechende Algorithmen bereitstellen. Jedoch sind diese häufig schlecht dokumentiert und Beispiele, die zeigen wie die Bibliothek verwendet wird, sind veraltet. Die Probleme mit den veralteten Beispielen reichen von geänderten Schnittstellen bis hin zur Verwendung von nicht mehr sicheren kryptografischen Methoden. Ziel: Für die Plattform CryptoExamples werden sichere Codebeispiele für die Sprache C# entwickelt. Zusätzlich werden Richtlinien erarbeitet, die die Anforderungen der Plattform abdecken, sodass mit deren Verwendung die Entwicklung weiterer Beispiele einfacher wird. Verfahren: Für verschiedene kryptografische Szenarien werden Codebeispiele erstellt und fortlaufend verbessert. Währenddessen fließen die Erfahrungen, die beim Erstellen der Beispiele gesammelt wurden, in die Erstellung der Richtlinien ein. Ergebnis: In dieser Arbeit werden Beispiele für die Sprache C# und die Richtlinien für die Umsetzung weiterer Beispiele mit dieser Sprache erarbeitet. Die Beispiele decken die Szenarien Hashing, digitale Signatur, symmetrische Verschlüsselung sowie asymmetrische Verschlüsselung ab. Des Weiteren werden 25 Richtlinien für die Sprache C# angepasst oder neu erstellt. Fazit: Auf der Plattform CryptoExamples wird der Beispielcode bereitgestellt, von dem garantiert wird, dass er sichere kryptografische Verfahren verwendet. Außerdem werden die Beispiele fortlaufend aktualisiert, womit die zukünftige Sicherheit des Codes gewährleistet wird. Zusätzlich gibt es Richtlinien für die Entwicklung neuer Beispiele. Damit soll die Einhaltung der Anforderungen der Plattform sichergestellt werden. Zum jetzigen Zeitpunkt ist die Plattform noch recht klein, sodass die Auswahl an Beispielen zu verschiedenen Programmiersprachen stark eingeschränkt ist.
  • Thumbnail Image
    ItemOpen Access
    Paradigmenübergreifende Quelltexttransformation von Haskell nach Ruby
    (2013) Zschiesche, Jannik
    There is a trend amongst programming languages to mix multiple programming paradigms into one language or environment. Some languages directly include multiple paradigms, some environments (like the JVM) need to support languages from multiple paradigms. The automatic translation with usage of metamodells from concepts of functional languages into concepts of the object-orientation is analysed, described and implemented in this elaboration, including a working implementation of a Haskell to Ruby compiler in Haskell.
  • Thumbnail Image
    ItemOpen Access
    Software Repositories Mining von Issue Tasks und Coupled File Changes
    (2017) Alakus, Deniz
    Versionsverwaltungssysteme wie Git sind eine große Hilfe bei der Entwicklung von komplexen Softwaresystemen. Issue-Tracker, die neben den Software Repositories verwaltet werden, tragen ebenfalls dazu bei. Die Software Repositories enthalten neben der Entwicklungs-Historie einer Software auch weitere auf den ersten Blick nicht offensichtliche Daten und Muster. Mit Hilfe von Software Repository Mining lassen sich diese aus Software Repositories extrahieren. In dieser Diplomarbeit wurde ein Tool entwickelt und evaluiert, mit der aus Software Repositories und Issue-Tasks Coupled Changes, also Dateien die häufig gemeinsam geändert wurden, extrahiert und angezeigt werden können.
  • 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
    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
    Empirical research plan: effects of sketching on program comprehension
    (2016) Baltes, Sebastian; Wagner, Stefan
    Sketching is an important means of communication in software engineering practice. Yet, there is little research investigating the use of sketches. We want to contribute a better understanding of sketching, in particular its use during program comprehension. We propose a controlled experiment to investigate the effectiveness and efficiency of program comprehension with the support of sketches as well as what sketches are used in what way.
  • 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.