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 16
  • Thumbnail Image
    ItemOpen Access
    Implementation of an automatic extract method refactoring
    (2019) Hubert, Johannes
    Software 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.
  • Thumbnail Image
    ItemOpen Access
    Cloud Manufacturing : eine systematische Mapping-Studie
    (2019) Kapitza, Stefania
    Die 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.
  • Thumbnail Image
    ItemOpen Access
    Konzeption und Realisierung einer Cloud-Manufacturing-Orchestrations- und Planungsplattform
    (2019) Pawlowicz, Daniel
    Cloud 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.
  • Thumbnail Image
    ItemOpen Access
    Issue management for multi-project, multi-team microservice architectures
    (2019) Speth, Sandro
    Many 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.
  • Thumbnail Image
    ItemOpen Access
    Resilient continuous delivery pipelines based on BPMN
    (2019) Kabierschke, Oliver
    The “Continuous Delivery” (CD) approach promises to significantly reduce the time-to-market of new features in a software development project, enabling faster feedback for the developers and in effect higher customer satisfaction. The key of implementing CD is automating the delivery process, which involves building, testing, and deploying the application to the target platform. With an increasing application size, the delivery process becomes more complex and is likely to fail at various points. A failure can interrupt the development process and should consequently be prevented whenever possible. The “Business Process Model and Notation” (BPMN) specifies approaches to introduce reliability increasing structures in a business process, which prevent failures or compensate their effects during process execution. The goal of this master’s thesis is to support the design of resilient CD processes by bringing concepts from BPMN to the CD domain. A graphical representation of a CD pipeline can make complex processes more manageable by abstracting relevant structures. Particularly the compensation concept in BPMN is a promising way of abstracting complicated parts of a CD pipeline. In order to create compatibility between BPMN and the CD domain, the “Domain Specific Language” (DSL) StalkCD has been invented. It stores the CD process of a Jenkinsfile and combines it with information that is relevant when generating a BPMN model. Transformations from Jenkinsfiles via StalkCD to BPMN and back have been developed, enabling to depict Jenkinsfiles using BPMN. Evaluation results show that the support of the provided implementations for the declarative syntax of Jenkinsfiles is good. Jenkinsfiles that have been translated to BPMN models can be visualized and edited comprehensively, however, the graphical user support is still improvable. Because of the lack of sufficiently complex real-world-examples, this thesis could not prove that there actually result resilience benefits from using BPMN as abstraction layer when designing CD pipelines.
  • Thumbnail Image
    ItemOpen Access
    A Systematic Approach to extend the common Software Testing Types with modules specific to the field of Machine Learning
    (2019) Revanna, Sweekar
    In this data-driven age, many Machine learning (ML) or predictive analytics related software applications are developed, utilizing the data to extract knowledge and provide insights to the customers. Software testing plays an important role in assuring the quality of a software application. Hence, there is a need to combine these two distinctive domains and develop a systematic approach to detect the errors in the ML by practicing the principles of software testing. Recent publications emphasize the necessity of testing the ML model, the aspects to test in the ML domain and provide suggestions for possible tests. However, the extent and rigor of software testing principles as specified in the ISO/IEC/IEEE 29119 series was not sufficiently considered by these publications. Therefore, this thesis focuses on the applicability of common software testing types, techniques, and methods to the field of ML. To do so, we determine defects and errors that affect the model quality through expert interviews, literature review and occurrence frequency of the defects in a discussion group of the Kaggle website. Unit testing, data quality checks, and model evaluation metrics were common Quality Assurance (QA) practices followed by the interviewed data scientists. As the main contribution, this thesis presents a set of automated tests based on the ISO/IEC/IEEE 29119 series of software testing standards that check data and model for the ML related defects. The automated tests were evaluated against publicly available data and the codes of ML model for the competition, "Titanic: Machine Learning from Disaster" on Kaggle website. The evaluation revealed defects hidden in the data and the model, demonstrating the benefit of our proposed extension of software testing principles to the ML domain. Furthermore, from seven data scientists indicated that these additional tests are easily understandable and usable.
  • Thumbnail Image
    ItemOpen Access
    Herausforderungen in der Releaseplanung im Umfeld Automotive
    (2019) Iazzolino, Aretina
    Kaum 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.
  • Thumbnail Image
    ItemOpen Access
    Software test automation for IoT applications : design and implementation of a test framework for the digital concepts gateway
    (2019) Basaula, Aanal Raj
    The 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.
  • Thumbnail Image
    ItemOpen Access
    Benutzung von Laufzeitdaten für die Wartbarkeitsanalyse von Service- und Microservice-basierten Systemen
    (2019) Schlinger, Steffen Matthias
    Mit der Entwicklung von immer mehr neuen IT-Produkten entsteht gleichzeitig eine immer größer werdende Menge an Quellcode. Da während der Entwicklung selten der Fokus auf eine gute Wartbarkeit gelegt wird, sondern auf andere Qualitätsattribute und die schnelle Fertigstellung des Projekts, wird ein Großteil der Entwicklungskosten für die Wartung benötigt [37, 40, 41]. Selbst wenn die Wartbarkeit eine Anforderung während der Entwicklung darstellt, ist sie schwer umzusetzen und noch schwerer zu messen. Traditionelle Ansätze basieren auf statischen oder dynamischen Analysen, beispielsweise Quellcode-Analysen, um Erkenntnisse über die Wartbarkeit zu gewinnen. Mit dem Aufkommen neuer Architekturen, wie Service- und Microservice-basierten Systemen, lässt sich die Wartbarkeit noch schlechter bis gar nicht mehr bestimmen. Diese Systeme verfolgen einen verteilten, heterogenen und teils dezentralen Ansatz, worauf die bisherigen Methoden nicht anwendbar sind. Um die Wartbarkeit dieser Systeme zu bestimmen reicht außerdem nicht die Sicht einer einzelnen Komponente des Systems aus, sondern es müssen alle beteiligten Komponenten gleichzeitig betrachtet werden, um die benötigten Informationen zu gewinnen. Da sich statische Analysen durch die starke Verteiltheit und hohe Heterogenität nicht anwenden lassen, bedarf es eines neuen Ansatzes, um die Wartbarkeit zu bestimmen. Diese Arbeit beschäftigt sich deshalb mit der Nutzung von Laufzeitdaten zur Bestimmung der Wartbarkeit von Service- und Microservice-basierten Systemen. Es wird geprüft, ob sich Laufzeitdaten für diesen Anwendungsbereich eignen und wo die Vor- und Nachteile dieses Ansatzes liegen. Um die Eignung zu prüfen, wird eine Übersicht über vorhandene Wartbarkeitsmetriken sowie Werkzeuge zum Sammeln von Laufzeitdaten erstellt. Es wird weiterhin ein Framework entworfen und implementiert, welches mithilfe der gefundenen Metriken und Werkzeuge Erkenntnisse über die Wartbarkeit eines Systems berechnen kann. Letztendlich wird das Framework anhand eines Beispielsystems demonstriert und die gewonnenen Erkenntnisse werden ausgewertet und diskutiert.
  • Thumbnail Image
    ItemOpen Access
    Techniques for visualization and interaction in software architecture optimization
    (2019) Frank, Sebastian
    Software 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.