Universität Stuttgart
Permanent URI for this communityhttps://elib.uni-stuttgart.de/handle/11682/1
Browse
122 results
Search Results
Item Open Access Qualitätsanalyse von Studienprojekten anhand von Quellcode-Repositories(2017) Kersjes, BenediktAn 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.Item Open Access A methodology and initial exploration of personality traits of GitHub Developers as expressed in GitHub issues(2019) Greinert, FlorianSoftware 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.Item Open Access Erstellung von CryptoExamples in C#(2018) Rusam, NicoKontext: 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.Item Open Access Einsatz von Machine-Learning-Methoden zur adaptiven Darstellung von Software-Metriken(2017) Hermann, MatthiasAuf 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.Item Open Access Evaluating the Effectiveness of Proposed Service-based Maintainability Metrics for Microservices(2019) Szidlovszky, MarcelDie 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.Item Open Access Adaption des Systems XSTAMPP 4 an die Analysemethode STAMP/CAST in der Einzelplatzanwendung(2020) Zimmermann, EvaTä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.Item Open Access Evaluating mobile monitoring strategies for native iOS applications(2018) Sassano, MatteoThe 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.Item Open Access Integration von manuellem Testen in das Continuous Deployment durch das SystemTestPortal(2018) Schneider, SteffenQualitä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.Item Open Access Automatische Extraktion von Funktionen aus klassifizierten E-Mails(2019) Tiessen, AlexanderIn vielen kleinen und großen Unternehmen hat die Zahl der eintreffenden E-Mails ein hohes Niveau erreicht. Die Bearbeitung dieser E-Mails ist mit einem hohen Zeit- und Kostenaufwand verbunden. Um diesen Aufwand zu reduzieren, wurde ein System entwickelt, das in zwei Teilschritten arbeitet. Zunächst findet eine Klassifikation statt, in der die E-Mails nach der Absicht des Senders klassifiziert werden. Hierfür wurden mehrere Klassifikatoren des maschinellen Lernens miteinander verglichen, um ein bestmögliches Ergebnis zu erreichen. Im zweiten Schritt wurden für geeignete Klassen Parameter definiert, die die Absicht des Senders genauer beschreiben. Die Werte der Parameter werden dann aus den E-Mails extrahiert. Dies wurde mit Hilfe von Natural-Language-Processing- Methoden in Verbindung mit regelbasierten Ansätzen gelöst. In dieser Arbeit wurde ein selbst erstellter E-Mail-Korpus aus ca. 1.500 E-Mails verwendet.Item Open Access Scenario-based modifiability evaluation of service-based systems : tool support for lightweight scenario templates(2018) Breul, GerhardIn modern software development, modifiability has arguably become one of the most important software quality attributes. There has been extensive research on the topic of the evaluation of a system's or architecture's ability to be modified. Scenario-based methods such as ALMA or SAAM have been around for a long time, and have proven to be effective ways to evaluate software. However, these methods are usually quite expensive in terms of time and require a big part of a project's stakeholders to align. One thing there has been a notable lack of is the modifiability evaluation specifically of systems using a service-based architecture. Properties of this architectural style can be useful to make more efficient assessments of a software's modifiability. This work seeks to propose a method to evaluate modifiability of service-based systems using a scenario-based analysis approach. Special emphasis is placed on this method being lightweight, i.e. less time-consuming and more flexible than similar methods. To achieve this, existing works on the topics of scenario-based software evaluation and the evolution of service-based systems were studied. Based on the acquired knowledge, a model of software change and an approach to analyze a system’s modifiability utilizing this model was designed. A tool was created to support our proposed method. Testing and applying the tool leads to iterative adjustments to the method. To demonstrate the insights that can be won using this method as well as how it is used, we perform an example application of it. The result of this work is a method that exchanges some of the reliability and accuracy of other scenario-based methods for flexibility and brevity. While the method achieves its goal of being lightweight, real-world testing and validation may lead to improvements to it.