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 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
    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
    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
    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
    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
    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
    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
    Analysing and improving the crypto ecosystem of Rust
    (2017) Keck, Philipp
    Context: Rust is an emerging systems programming language that suits security-critical applications because it guarantees memory safety without a garbage collector. Its growing ecosystem already encompasses several crypto libraries, though the competition is still open. Previous cryptography research found that vulnerabilities are often due to misunderstandings and misuse of cryptographic APIs rather than bugs in the libraries themselves. Aim: This thesis presents a holistic analysis of Rust's current crypto ecosystem and aims to improve its further development. A particular focus is on API design because all libraries are still open to change their APIs and it will become increasingly difficult to change them later. Method: All parts of the ecosystem are systematically analysed, guided by the general structure of a crypto ecosystem. Research methods include a systematic search for libraries, a survey among contributors, GitHub analyses as well as a self-experiment and a controlled experiment to test the usability. Results: The contributors are typical open source developers and they collaborate in typical ways on GitHub. Most libraries have a clear main developer and there is a general lack of contributors. While two of the major libraries focus on usability and are consequently easier to use and more resistant to misuse, the two most widespread libraries consciously neglect these topics and exhibit flaws known from crypto libraries in other languages. Conclusion: The misuse resistant Rust crypto libraries should be advertised more actively. In the medium term, an officially endorsed API could improve interoperability and foster competition. For such an API and for the improvement of existing APIs, the thesis discusses a number of design decisions and their usability implications.
  • Thumbnail Image
    ItemOpen Access
    Entwicklung eines Systems zur kontinuierlichen Integration für autonome Roboter
    (2015) Wenz, Kevin
    Autonome Roboter basieren auf dem komplexen Zusammenspiel vieler Sensoren. Dieses Zusammenspiel muss durch Software beobachtet und geregelt werden. Damit Roboter sich autonom - ohne ständige Überwachung - bewegen können, muss die Software ihre Funktion fehlerfrei ausführen. Um dies zu unterstützen, wurde im Rahmen dieser Arbeit ein Continuous Delivery-Prozess entwickelt. Dieser Prozess sieht vor, dass die Software des Roboters "ständig" und automatisiert geprüft wird. Ein besonderer Fokus lag dabei auf der Entwicklung eines Funktionstestsystems für Robotersoftware. Dieses Testsystem führt Testfälle aus, die auf Basis von Szenarien, bestehend aus einer Aufgabe, einem Kontext und mehreren Metriken, modelliert werden. Am Ende wurde der Nutzen des Testsystems durch Robotersoftware-Entwickler evaluiert.
  • Thumbnail Image
    ItemOpen Access
    Context-aware load testing in continuous software engineering
    (2019) Hidiroglu, Alper
    To 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.