Universität Stuttgart
Permanent URI for this communityhttps://elib.uni-stuttgart.de/handle/11682/1
Browse
Search Results
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 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 Implementation of an automatic extract method refactoring(2019) Hubert, JohannesSoftware quality is an important aspect to guarantee maintainability and comprehensibility of developed source code. Modern software projects use static code analysis tools to continuously monitor the software quality. Based on findings from these tools, developers refactor their code with the aim to remove detected code smells. Refactorings can use up a lot of resources when done manually and a lot of authors suggest semi-automated solutions to improve the refactoring experience for developers. One of the most applied refactorings is the extract method refactoring which is often used to improve long and complex methods. Recent studies showed, that existing semi-automated tools for this refactoring are not preferred by developers. We propose an approach to fully automate the extract method refactorings based on findings from static code analysis tools. Our approach finds refactoring opportunities in a selected method and ranks these candidates according to a scoring function. The highest ranked candidate will be automatically refactored using the extract method refactoring. We implement our approach using the existing Refactoring Bot framework, a software development bot which seamlessly integrates into the build pipeline of existing projects.Item Open Access Cloud Manufacturing : eine systematische Mapping-Studie(2019) Kapitza, StefaniaDie Herstellungsindustrie ist durch die Globalisierung und Digitalisierung im Wandel. Dies führt dazu das Unternehmen traditionelle Herstellungsverfahren ändern müssen, um konkurrenzfähig bleiben zu können. Technologien wie Cloud Computing, Internet der Dinge und Virtualisierung erlauben die Einführung des neuen Paradigmas Cloud Manufacturing. Cloud Manuacturing erlaubt ein serviceorientiertes Herstellungsverfahren durch die Virtualisierung und Kapselung von Ressourcen und Kapazitäten. Dies führt dazu, dass Kollaborationspartner oder Konsumenten weltweit einfach auf Herstellungsressourcen zugreifen und ihr Wissen teilen können. Durch die Vorteile die Cloud Manufacturing bietet hat das Interesse seit der Einführung der Thematik zugenommen. Dies führt dazu, dass viele Studien in diesem Bereich veröffentlicht wurden. Da die Nutzung von verschiedenen Technologien in Cloud Manufacturing viele Teilaspekte beinhaltet, gibt es viele Forschungsthemen, die unterschiedlich ausgeprägt untersucht worden sind. Das Ziel dieser Arbeit ist den aktuellen Forschungsstand des Cloud Manufacturings aufzuzeigen, indem eine systematische Mappingstudie durchgeführt wird. Dabei erfolgt die Identifizierung aktueller Forschungsschwerpunkte und häufig auftretender Lösungsansätze. Zusätzlich wird die Publikationsflora in diesem Bereich untersucht, wodurch relevante Verlage, Fachzeitschriften, Beiträge und Autoren aufgezeigt werden. Des Weiteren erfolgt die Ermittlung der Forschung bekannten unzureichend untersuchten Cloud Manufacturing Aspekte.Item Open Access Konzeption und Realisierung einer Cloud-Manufacturing-Orchestrations- und Planungsplattform(2019) Pawlowicz, DanielCloud Manufacturing ist ein Paradigma, welches den Ansatz des Cloud Computings auf die Fertigung überträgt. Der Grundgedanke dafür ist, einen allgegenwärtigen und bedarfsgerechten Zugriff auf einen virtualisierten Pool an Ressourcen zu ermöglichen. Eine Plattform soll dabei die Zuordnung dieser Ressourcen zwischen den Teilnehmern in diesem Netzwerk übernehmen. Ein Vorteil davon ist, dass Hersteller und Dienstleister in einer neuen Form miteinander kollaborieren können. Fertigungsaufträge können aufgeteilt und einzelne Aufgaben an spezialisierte Hersteller oder Dienstleister abgegeben werden. Diese Orchestration der auf der Plattform verfügbaren Ressourcen, die als Services angeboten werden, muss geplant und koordiniert werden, um einen Kundenauftrag zu erfüllen. Herausforderungen für dieses Paradigma sind der Datenschutz sowie die Sicherheit der Daten. Sensible Daten der Teilnehmer, Informationen über das Produkt oder Kenntnisse über Technologien und Prozesse müssen über die Plattform ausgetauscht werden. Die vorliegende Arbeit befasst sich mit der Ausarbeitung eines Konzepts für eine Plattform, die eine Orchestrierung der Services sowie eine Planung von Aufträgen ermöglichen soll. Dabei sollen sensible Daten und geistiges Eigentum im Kontext des kollaborativen Cloud Manufacturing geschützt werden können. Dafür wurden bereits existierende wissenschaftliche Arbeiten analysiert und ausgewertet. Basierend auf diesen Erkenntnissen wurde ein Konzept für eine Plattform ausgearbeitet, die eine transparente Kollaboration der Teilnehmer des Netzwerks ermöglicht. Die Plattform wurde mit einer Blockchain umgesetzt, die Teilnehmer veröffentlichen konzeptionierte Smart Contracts, die ihre Ressourcen, Dienstleistungen und Aufträge repräsentieren. Dabei werden Daten nur mit autorisierten Teilnehmern ausgetauscht. Zudem wird für den Austausch keine weitere Instanz benötigt, wie ein Plattform-Betreiber als Vermittler, der die Daten dann ebenfalls einsehen könnte.Item Open Access Interdisciplinary system courses - teaching agile systems engineering(2019) Seitz, Andreas; Avezum, Mariana; Bruegge, Bernd; Wagner, StefanWith the advent of technologies like the Internet of Things, Industry 4.0 and Cyber-Physical Systems, many software engineering courses turn into system engineering courses. Recent advances in technologies such as 3D printing and low-cost micro controllers enable to teach agile hard- and software co-design in system engineering courses. In this paper, we describe Interdisciplinary System Courses (ISC) - a teaching approach based on interdisciplinary projects, light-weight agile techniques and solving real problems by integrating industry customers. We describe our experiences from an exploratory case study where we applied ISC in a two-week international summer school with a customer from the aerospace industry. We derive a set of hypotheses on the effects of ISC.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 Issue management for multi-project, multi-team microservice architectures(2019) Speth, SandroMany modern software architectures follow a microservice style. An microservice architecture consists of several independent developed and operated services. Often, issues, e.g. interface model changes, or design decision changes must be communicated between multiple teams. For example, if there are any changes of an interface of a service, all depending services must be changed too, otherwise their functionality might break. Changes in artefacts and models concerning multiple teams, therefore, must be synchronized between all affected teams in order to be in a consistent state. However, this is difficult and current approaches to communicate issues affecting multiple projects or teams comes with a communication overhead. Various methods are used to communicate them, for example, e-mail, instant messengers, calls or additional meetings. In order to synchronize models or design decisions, traceability towards them can be used as suggested by some researches. Yet, this does not solve the communication problem. This thesis introduces multi-project coding issues as solution approach for communicating issues concerning multiple projects/services and teams in a qualitative way. A multi-project coding issue is a coding issue that can concern more than one projects at the same time. They can link other coding issues which could concern other projects/services. Since their body text can be extended with semantic links, multi-project coding issues build a perfect platform to include such traceability links mentioned. Therefore, artefacts can easily be synchronized over multiple teams. This reduces development complexity while keeping communication overhead small. In addition to this, multi-project coding issues can have non-functional requirements to improve quality-of-service properties. This work presents the Multi-Project Issue Management and Notation, a modelling language to notate multi-project coding issues and projects/services together in a system architecture graph. Furthermore, a prototype of a multi-project coding issue management system is described. To validate this solution approach a Goal-Question-Metric plan is depicted, and an expert survey conducted. Finally, future research challenges are introduced.Item Open Access Evaluation and improvement of automated software test suites(2019) Niedermayr, Rainer; Wagner, Stefan (Prof. Dr.)Automatisierte Softwaretests sind eine wichtige Qualitätssicherungsmaßnahme in Softwareprojekten und helfen Fehler in einer Anwendung frühzeitig aufzudecken. Zur Bewertung von Testsuiten wurden in der Vergangenheit verschiedene Metriken und Verfahren vorgeschlagen. Dabei sind Code-Coverage-Metriken am weitesten verbreitet und werden vor allem in der kommerziellen Softwareentwicklung eingesetzt. Jedoch sind diese nur bedingt geeignet, die Effektivität von Testsuiten hinsichtlich ihrer Fehleraufdeckungsrate zu bewerten. Ein anderes wirkungsvolles und aussagekräftiges Verfahren ist Mutation Testing, bei dem Fehler in den Anwendungscode einer Software eingefügt werden und geprüft wird, ob die vorhandenen Testfälle diese aufdecken können. In Bezug auf die Bestimmung der Testeffektivität ist Mutation Testing anderen Verfahren deutlich überlegen, jedoch ist es sehr rechenintensiv und sogenannte äquivalente Mutanten können die Ergebnisse verfälschen. Wegen dieser Probleme wird Mutation Testing in der Praxis derzeit kaum eingesetzt. Das Ziel dieser Dissertation ist es, aussagekräftigere Metriken und Verfahren zur Bewertung von Testsuiten zu entwickeln, welche mit vertretbarem Berechnungsaufwand anwendbar sind. Diese sollen Code-Coverage-Metriken in Bezug auf die Aussagekraft übertreffen und gleichzeitig weniger rechenintensiv als derzeit verwendete Mutation-Testing-Verfahren sein. Dazu wurde ein leichtgewichtiges Verfahren zur Erkennung von scheingetesteten Methoden konzipiert, umgesetzt und evaluiert. Scheingetestete Methoden sind von mindestens einem Testfall überdeckt, jedoch erkennt keiner der überdeckenden Testfälle, wenn die gesamte Logik aus der Methode entfernt wird. Außerdem wurde ein Machine-Learning-Modell zur Vorhersage von scheingetesteten Methoden entwickelt, welches ein neu eingeführtes Maß für die Aufrufdistanz zwischen Methoden und Testfällen sowie weitere kostengünstig berechenbare Metriken verwendet. Im Rahmen der Arbeit wurde ein weiteres Machine-Learning-Modell zur Identifizierung von Methoden mit einem niedrigem Fehlerrisiko vorgeschlagen. Solche Methoden können bei Qualitätssicherungsmaßnahmen nachrangig behandelt oder ausgeschlossen werden, sodass beispielsweise der Aufwand für die Erkennung scheingetesteter Methoden weiter reduziert wird. Die Ergebnisse zeigen, dass scheingetestete Methoden in allen untersuchten Studienobjekten auftreten und relevante Testunzulänglichkeiten darstellen. Machine-Learning-Modelle können scheingetestete Methoden effizient vorhersagen, sodass diese Modelle als eine kostengünstige Annäherung vor einer Mutationsanalyse eingesetzt oder in Situationen verwendet werden können, in denen Mutationsanalysen nicht anwendbar sind. Mit einem weiteren Machine-Learning-Modell können basierend auf Code-Metriken Methoden identifiziert werden, die ein niedriges Fehlerrisiko aufweisen. Dies trifft auf etwa ein Drittel der Methoden zu, die folglich im Test mit einer niedrigeren Priorität behandelt werden können. Die entworfenen Verfahren ermöglichen sowohl eine verhältnismäßig leichtgewichtige, anwendbare Berechnung von scheingetesteten Methoden als auch eine Vorhersage derselben basierend auf Methoden- und Testfallmetriken. Durch scheingetestete Methoden aufgedeckte Probleme in Testsuiten sind für Entwickler einfach verständlich und adressierbar, sodass Entwickler die Effektivität ihrer Testsuite verbessern können. Außerdem hilft die Identifikation von Methoden mit einem niedrigen Fehlerrisiko, Testaufwände auf relevante Methoden zu fokussieren. Effektivere Testsuiten können mehr Fehler bereits während des Softwareentwicklungsprozesses aufdecken und helfen damit, die Qualität eines Softwareprodukts zu verbessern sowie Fehlerfolgekosten zu reduzieren.Item Open Access Integration Model for Automated Model Generation from Source Code Based on AUTOSAR(2019) Kaiser, ShomaNowadays software development in automotive industry plays an important role. In- creasing networking between vehicle systems and large number of software components lead to high complex systems. A modern high-end car has up to 100 Million lines of code [GTD15]. To master this complexity in the automotive industry, model-driven software development has been introduced. A model is an abstraction of the software. It can be applied on different abstraction levels from different viewpoints. Models are necessary to simplify and develop software. Besides that, in the automotive industry AUTOSAR has been introduced too. The main goal of AUTOSAR is to improve the complexity management of vehicles integrated E/E architectures through increased reuse and exchangeability of software modules. In reality the model-driven software development is not continuously introduced yet. The software development process is just used partly so that components of the development process are incomplete and inconsistent. This leads to the risk of information loss, errors, missing transparency and overall to lose against the complexity. That is because software changes are implemented in source code but not into the corresponding models. Thus, a part of software diagrams in the model-driven software development process are not consistent and model-driven software development not realized continuously. This thesis aims to develop an integration model which applies reverse engineering with modifications to generate software models based on source code. In this integration model AUTOSAR should be considered too. Main goal of the integration model is to automatically generate software architecture models. Goal of these models is to increase source code readability, improve software quality and yield advantages for software engineers. The models should guarantee no information loss, correctness and a good transparency for further software development. Therefore, the practical aspects of the generated models will be considered and evaluated. This integration model will be applied with an example from the software development at Daimler AG. Finally the integration model will be applied as prototype on internal source code.