05 Fakultät Informatik, Elektrotechnik und Informationstechnik
Permanent URI for this collectionhttps://elib.uni-stuttgart.de/handle/11682/6
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 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 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 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 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 A Validation of Cognitive Complexity as a Measure of Source Code Understandability(2019) Muñoz Barón, MarvinDas 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.Item Open Access Software test automation for IoT applications : design and implementation of a test framework for the digital concepts gateway(2019) Basaula, Aanal RajThe popularity of Smart Devices are increasing everyday, with new devices designed and developed to help people with their daily tasks. Smart Home is one such example of amalgamation of devices where different sensors and actuators work together to help users perform day-to-day activities. This wide-spread adoption of such devices necessitates quality and reliability. This work focuses in the field of IoT devices for methods and measures that are available to test such devices. It presents Digital Concepts gateway as a case study and explores the findings of the special needs of testing within the context of this project. A test framework is proposed to tackle the discovered requirements of testing. An automated test environment is designed and implemented to further improve the quality of the software and an evaluation based on the effort required to maintain and execute tests is used as a decision making tool for Digital Concepts.Item Open Access Herausforderungen in der Releaseplanung im Umfeld Automotive(2019) Iazzolino, AretinaKaum ein Industriezweig steht unter starken Konkurrenzdruck wie die Automobilbranche. Die Fahrzeuge müssen bei möglichst gleichbleibender Qualität und kürzeren Produktzyklen, immer schneller zur Marktreife gebracht werden. Das ist auf den ständigen Zyklus der Neuerung und Verbesserung zurückzuführen. Mehr als 90% der Kundenanforderungen werden prädominant durch Software umgesetzt. So hat sich ein cross-funktionales Umfeld, in der von der Mechanik geprägten Automobilwelt aufgebaut, bestehend aus den weiteren Bereichen Elektrik und Elektronik. Die Vernetzung dieser Bereiche führt zu einer erhöhten technischen Komplexität. Dies muss bei der Releaseplanung von sicherheitskritischen Systemen, wie das Automobil einzustufen ist, berücksichtigt werden. Alle involvierten Disziplinen und ihre technischen Abhängigkeiten müssen in ein funktionierendes Ganzes vereint und validiert werden. So wird beispielsweise die Steuergerätesoftware in Verbindung mit dem zugehörigen Steuergerät getestet und Umgekehrt. Die Schwierigkeit ergibt sich, wenn die Teilsysteme ihre eigenen Releasezyklen und Fertigstellungstermine besitzen. Sie können zum einen stark an die Meilensteinstruktur angelehnt sein, und somit klassisch abgewickelt werden. Zum anderen führt der Einzug agiler Methoden im automotive Umfeld, vorzüglich in Softwareumgebungen, zu schneller lieferfähige Produktinkremente. Die unterschiedlichen Releasezyklen der Teilsysteme und ihre Abhängigkeiten, erschweren einen reibungslosen Ablauf der Qualifikationsphase im Verbund. Ziel dieser Arbeit ist es diese Herausforderungen in der Releaseplanung im automobilen Umfeld zu identifizieren. Dazu soll eine Studie mit Experten aus dem automotive oder automotive-ähnlichen Umfeld durchgeführt werden, um den Stand des Markts wiedergeben zu können.Item Open Access Context-aware load testing in continuous software engineering(2019) Hidiroglu, AlperTo ensure adequate performance of a system, performance regressions have to be detected early in the software development process. Before a new software version is released, load tests should be applied on the system. In the context of continuous software engineering, it is crucial to keep delivery pipelines as short-running as possible in order to release software changes frequently. Since load tests typically take longer than functional tests, it is not possible to test for every possible workload scenario every time before a change is committed. It would be better to focus only on those load scenarios that are relevant for a given context, that consists, for example, of marketing campaigns, sports events, weather, etc. The goal of this work is to automatically generate load tests that test for the relevant load scenarios in the future. Thereby, we aim at reducing the resource usage and the test execution time. We develop a context description language to express contexts that can occur in the future. Our approach takes as input a context description and recorded request logs from the production system. It then uses the WESSBAS approach to calculate historical workload data from the recorded request logs. Based on the historical workload data and the passed context description, our approach then forecasts the future workload. The forecasted workload is processed and relevant load scenarios are identified that will occur in the future. Our approach then uses the WESSBAS approach again to automatically generate load tests that test for the identified load scenarios. We evaluated our approach with a real-world data set, that contains recorded requests from the Student Information System (SIS) of the Charles University in Prague. The evaluation shows that contexts help to reduce the testing effort and to focus only on the relevant workload scenarios. However, the evaluation also shows that our approach has limitations regarding the accuracy of the forecasted workload. Load tests, that are generated from inaccurately forecasted workload, do not test for the relevant load scenarios.Item Open Access Techniques for visualization and interaction in software architecture optimization(2019) Frank, SebastianSoftware architecture optimization aims at improving the architecture of software systems with regard to a set of quality attributes, e.g., performance, reliability, and modifiability. However, particular tasks in the optimization process are hard to automate. For this reason, architects have to participate in the optimization process, e.g., by making trade-offs and selecting acceptable architectural proposals. The existing software architecture optimization approaches only offer limited support in assisting architects in the necessary tasks by visualizing the architectural proposals. In the best case, these approaches provide very basic visualizations, but often results are only delivered in textual form, which does not allow for an efficient assessment by humans. Hence, this work investigates strategies and techniques to assist architects in specific use cases of software architecture optimization through visualization and interaction. Based on this, an approach to assist architects in these use cases is proposed. A prototype of the proposed approach has been implemented. Domain experts solved tasks based on two case studies. The results show that the approach can assist architects in some of the typical use cases of the domain. Conducted time measurements indicate that several hundred architectural proposals can be handled. Therefore, the approach usefully complements existing software architecture optimization approaches. Furthermore, it is a foundation for the participation of humans in the optimization process and further research in this field.