Universität Stuttgart

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

Browse

Search Results

Now showing 1 - 10 of 77
  • 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
    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
    Serialization of foreign types with SKilL
    (2016) Weißer, Constantin
    SKilL provides a language independent means to specify serialisable data types. Bindings for these types can be generated automatically for multiple supported languages based on this specification. However, using these bindings is only hassle-free for newly written code, because existing types must be replaced by the controlled generated bindings. This impedes the usefulness of SKilL in old projects. We investigate a new approach. SKilL is to be extended in order to support the reuse of existing Java classes, so-called foreign types. The tool shall be able to analyse classes, associate them with specified SKilL types, verify the type correctness of this association and generate the required code in order to serialise objects of these types. This thesis points out the occurring challenges and discusses potential solutions. We experiment with several alternatives and provide insight into their pros and cons, as well as justification for our design. Functional and performance tests assess our implementation and shortcomings are addressed in detail.
  • Thumbnail Image
    ItemOpen Access
    How to ensure safety and security during condition monitoring and predictive maintenance : a case study
    (2018) Jain, Suneet
    Effective communication from machines and embedded sensors, actuators in industries are crucial to achieve industrial digitalization. Efficient remote monitoring as well as maintenance methodologies helps to accomplish and transform the existing industries to Smart Factories. Monitoring and maintenance leads to the aggregation of the real-time data from sensors via different existing and new industrial communication protocols. Development of user-friendly interface allows remote Condition Monitoring (CM). Context aware analysis of real-time and historical data provides capability to accomplish active Predictive Maintenance (PdM). Both CM and PdM needs access to the machine process data, industrial net-work and communication layer. Furthermore, data flow between individual components from the Cyber-Physical System (CPS) components starting from the actual machine to the database or analyze engine to the real visualization is important. Security and safety aspects on the application, communication, network and data flow level should be considered. This thesis presents a case study on benefits of PdM and CM, the security and safety aspect of the system and the current challenges and improvements. Components of the CPS ecosystem are taken into consideration to further investigate the individual components which en-ables predictive maintenance and condition monitoring. Additionally, safety and security aspects of each component is analyzed. Moreover, the current challenges and the possible improvements of the PdM and CM systems are analyzed. Also, challenges and improvements regarding the components is taken into consideration. Finally, based on the research, possible improvements have been proposed and validated by the researcher. For the new digital era of secure and robust PdM 4.0, the improvements are vital references.
  • 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
    Automated root cause isolation in performance regression testing
    (2017) Vogel, Sebastian
    Testing of software is an important aspect of software development. There exist multiple kinds of tests, like unit tests and integration tests. The tests this thesis will focus on will be load tests, which are used to observe a system’s behavior under load. The presented approach will use these load tests in order to observe and analyze the performance of a system, like e.g. the response times of methods. Next these observations are compared with those made on other versions of the system, in order to detect performance regressions, deteriorations in performance, between versions. Another goal of the approach will be to identify the root cause of the regressions, which is the source code change responsible for introducing them. By doing this, the task of fixing this problem will be made easier for the software engineer, since he has an entry point for the problem.
  • Thumbnail Image
    ItemOpen Access
    Java interface for secure crypto config
    (2020) Teis, Lisa-Marie
    Context: Cryptography is mainly considered in the field of information security for the protection of digital data. But the right selection of a secure set of cryptographic algorithms and parameters can be difficult. Another problem is that provided cryptographic Application Programming Interface (API)s cannot change their default configurations, meaning that they get insecure over time. Aim: The general aim is to create a cryptographic library that allows developers to easily use secure default configurations. Such a library should realize all security-relevant details internally by safe default configurations, which are adapting to changing security standards. To achieve this goal the Secure Crypto Config (SCC) can be used which ensures security, usability, maintainability and up- /downward compatibility. Method: First, a draft for a future standardized Request for comments (RFC) was created. In addition, a sample implementation for the corresponding API in Java was developed. This implementation was evaluated by conducting a study that consists of live programming tasks and online questionnaires. The study should compare the Secure Crypto Config Interface (SCCI) with the standard cryptographic libraries of the Java Development Kit (JDK) and Google Tink. Result: The evaluation has shown that the SCCI is more usable than JDK and Google Tink. By considering the number of security bugs the SCCI is also more secure than JDK. Unfortunately, there was no significant result by comparing the security of the SCCI and Google Tink. Furthermore, no significant difference in the maintainability between the SCCI and the other libraries could be shown. In terms of security and maintainability the SCCI was not significantly better according to statistical tests, nevertheless there are fewer security bugs with the usage of the SCCI. Conclusion: The SCCI is a future-proof alternative to other cryptographic libraries as it has proven to be both more usable and more secure than other implementations. In the next steps, it is now necessary to drive the standardization process forward. Furthermore, implementations in other languages must follow.
  • 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
    Konzeption und Realisierung einer Cloud-Plattform zur Konfiguration und dem Deployment von Services
    (2018) Link, Vincent
    Die Industrie befindet sich im Rahmen der Industrie 4.0 seit wenigen Jahren durch eine digitale Transformation im Wandel. Durch moderne Informations- und Kommunikationstechnologien werden Maschinenanlagen miteinander vernetzt, sodass intelligente Prozesse gebildet werden können. Dadurch soll nicht nur eine Automatisierung der einzelnen Teilschritte stattfinden, sondern auch zusammenhängende Prozesse modernisiert werden, um eine individuellere und effizientere Produktion zu ermöglichen. Um diese Prozesse abbilden und verwalten zu können, wird hierfür eine Plattform konzipiert. Die Plattform soll allgemein in der Lage sein, die Daten von Werkzeugmaschinen in Services in einer Cloud zu nutzen. Über mehrere Cloud-Anbieter hinweg soll nach dem Multi-Cloud-Szenario eine anbieterunabhängige und flexible Nutzung möglich sein. Entwickler stellen verschiedenste Funktionalitäten in Services in einem Marktplatz bereit. Die Services sollen hierbei dynamisch in einer Komposition miteinander verknüpft und deployt werden können, um somit die einzelnen Schritte eines Produktionsprozesses in einer Cloud abzubilden. Services sollen aus dieser Plattform heraus auch ohne technische Kenntnisse an eine Werkzeugmaschine angebunden und allgemein zuverlässig und ausfallsicher betrieben werden. Das Konzept für die obige Plattform wird anhand einer prototypischen Implementierung validiert, um daraufhin abschließend einen Ausblick mit möglichen Erweiterungen zu geben.