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 Evaluating mobile monitoring strategies for native iOS applications(2018) Sassano, MatteoThe success of a company is often influenced by the service and by a product they offer. If the supplied service or the offered product is a software system, a good performance will be essential to achieve desired goals such as high product sales. Slow applications and server responses due to performance issues, may cause a negative chain reaction. The amount of actual and potential users will probably decrease, and so does the users’ satisfaction and the number of product sales. Application Performance Management (APM) is necessary to avoid these cases. The usage of APM could help detecting eventual software problems and to remediate performance issues afterwards. Meanwhile, the usage of mobile devices, e.g., smartphones and tablets, for accessing enterprise systems is increasing in every application category. This expands the space where a potential software problem might be located in. Performance of mobile applications is more influenced by external circumstances, e.g., user location and access from bandwidth limited networks. APM tools not supporting mobile monitoring, are not able to recognize the mentioned performance issues. There are different implementation strategies for application monitoring agents such as call stack sampling and full source code instrumentation. The goal of this thesis is to research agent strategies for mobile devices, to develop an own version of each agent type, to analyze and evaluate the different agent approaches in combination of various mobile application types. The evaluation will be done with a series of experiments, by measuring the outcoming overhead of the developed agents, integrated into previously selected representative iOS open-source applications.Item Open Access Integration von manuellem Testen in das Continuous Deployment durch das SystemTestPortal(2018) Schneider, SteffenQualitätssicherung durch manuelles Testen scheint heute in der agilen Softwareentwicklung fehl am Platz zu sein. Kontinuierliche Entwicklung benötigt für die hochfrequente Integration und Auslieferung schnelle und wiederholbare Tests. Menschen sind langsamer und bei repetitiven Aufgaben nicht konsequent und teilweise überfordert. Dennoch ist die Kreativität des Menschen beim Testen der ausschlaggebende Faktor. Mit dieser Arbeit soll ein Ansatz der Integration von manuellen Tests in die kontinuierliche Entwicklung vorgestellt und untersucht werden. Hierbei werden die Ergebnisse der manuellen Tests verwendet um automatisch den Veröffentlichungsprozess zu steuern. Gleichzeitig wird der Verwaltungs- und Kommunikationsaufwand reduziert. Damit kann manuelles Testen für die Praxis attraktiver gemacht und eine Steigerung der Testqualität bewirkt werden. Das zeichnet sich durch weniger Defekte im Endprodukt, kürzere Entwicklungszeiten und Kosteneinsparungen aus. Zur Evaluation wurde der Ansatz in einem Prototypen auf seine Praxistauglichkeit untersucht. Das Ergebnis zeichnet eine positive Resonanz gegenüber dem Einsatz in der Praxis ab. Um konkrete Änderungen in der Qualität eines Produktes zu messen, ist eine weiterführende Langzeitstudie nötig. Diese Studie misst die Auswirkungen des Einsatzes der Integration von manuellen Tests in das Continuous Deployment. Basierend darauf lässt sich untersuchen, wie sich manuelle Tests weiter in die kontinuierliche Entwicklung einbinden lassen. Mögliche Gebiete sind die Reduzierung der Ausführungszeit oder die automatisierte Bestimmung einer ausreichenden Testabdeckung.Item Open Access Erstellung von CryptoExamples in Python(2018) Kloppenburg, ManuelKontext: Python ist eine sehr verbreitete und leicht zu erlernende Programmiersprache. Die Verwendung von kryptographischen Programmbibliotheken ist aber selbst in Python oft nicht einfach. Außerdem gibt es viele Beispiele im Internet, die veraltet und nicht sicher sind. Gerade für Entwickler, die keine Erfahrung in der Kryptographie haben, stellt es eine Schwierigkeit dar, kryptographisch sichere Software zu programmieren. Ziel: Es sollen Code-Beispiele für die Open Source Plattform CryptoExamples in der Programmiersprache Python erstellt werden. Diese Code-Beispiele haben die Anforderung sicher, minimal, vollständig, kopierbar, ausführbar und getestet zu sein, und helfen dadurch Entwicklern, sicheren Code zu schreiben. Methode: Es wurden generelle Richtlinien für das Erstellen und die Wartung von Code-Beispielen für CryptoExamples definiert. In den Richtlinien wird auf das Bundesamt für Sicherheit in der Informationstechnik (BSI) und das National Institute of Standards & Technology (NIST) der Vereinigten Staaten verwiesen, um sichere Algorithmen und Parameter auszuwählen. Auf Basis dieser Richtlinien wurde ein Umsatzkonzept für die Programmiersprache Python geschaffen und davon ausgehend Code-Beispiele entwickelt, die den Anforderungen gerecht werden. Für die Code-Beispiele wurde die kryptographische Programmbibliothek cryptography.io verwendet. Ergebnisse: Code-Beispiele für symmetrische Verschlüsselung, asymmetrische Verschlüsselung, digitale Signatur, Speichern von Schlüsselpaaren und Hashing sind entstanden. Die Code-Beispiele wurden auf der Open Source Plattform GitHub veröffentlicht und stehen somit der Öffentlichkeit zur Verfügung. Durch Statische Code-Analyse und automatische Tests ist die Code Qualität und Korrektheit gewährleistet. Außerdem werden die Code-Beispiele durch automatische Prüfung auf Konformität mit den Richtlinien überprüft. Fazit: Die erstellten Code-Beispiele helfen, sichereren Code zu schreiben. Sie müssen aber noch von Experten begutachtet werden, und es besteht die Möglichkeit, noch weitere Beispiele zu verwirklichen. Außerdem muss die Plattform CryptoExamples eine größere Reichweite erlangen, sodass jeder Entwickler diese Beispiele und keine anderen sieht.Item Open Access SKilL language server(2018) Schäufele, JohannesLanguage analysis features offered by integrated development environments (IDEs) can ease and accelerate the task of writing code, but are often not available for domain-specific languages. The Language Server Protocol (LSP) aims to solve this problem by allowing language servers that support these features for a certain programming language to be used portably in a number of IDEs. A language server for Serialization Killer Language (SKilL) was implemented that supports a multitude of language features including automatic formatting, completion suggestions, and display of references and documentation associated with symbols. This thesis presents how the language server was implemented and discusses associated challenges that arose due to the nature of the SKilL and LSP specification.Item Open Access Observation of current approaches to utilize the elastic cloud for big data stream processing(2018) Zigldrum, MichaelThis paper conducts a systematic literature map to collect information about current approaches to utilize the elastic cloud for data stream processing in the big data context. First is a description and setup of the used scientific methodology which adheres to generally accepted methods for systematic literature maps. After building a reference set and constructing search queries for the data collection came the data set cleaning where the publications were first automatically filtered and consecutively manually reviewed to determine the relevant papers. The collected data was evaluated and visualized to help answer the defined research questions and present information. Finally the results of the thesis are discussed and the limitations and implications addressed.Item Open Access Erstellung von CryptoExamples in C#(2018) Rusam, NicoKontext: Kryptografie und Softwaresicherheit werden in der heutigen Zeit immer wichtiger. Jedoch fehlt Softwareentwicklern häufig das Wissen über diese Themengebiete. Das führt dazu, dass entwickelte Software immer wieder Sicherheitslücken aufweist oder von vornherein nicht sicher ist. Daraus können Angriffe resultieren, was zu einer Gefahr für Länder, Firmen und Privatleute werden kann. Es existieren kryptografische Bibliotheken die entsprechende Algorithmen bereitstellen. Jedoch sind diese häufig schlecht dokumentiert und Beispiele, die zeigen wie die Bibliothek verwendet wird, sind veraltet. Die Probleme mit den veralteten Beispielen reichen von geänderten Schnittstellen bis hin zur Verwendung von nicht mehr sicheren kryptografischen Methoden. Ziel: Für die Plattform CryptoExamples werden sichere Codebeispiele für die Sprache C# entwickelt. Zusätzlich werden Richtlinien erarbeitet, die die Anforderungen der Plattform abdecken, sodass mit deren Verwendung die Entwicklung weiterer Beispiele einfacher wird. Verfahren: Für verschiedene kryptografische Szenarien werden Codebeispiele erstellt und fortlaufend verbessert. Währenddessen fließen die Erfahrungen, die beim Erstellen der Beispiele gesammelt wurden, in die Erstellung der Richtlinien ein. Ergebnis: In dieser Arbeit werden Beispiele für die Sprache C# und die Richtlinien für die Umsetzung weiterer Beispiele mit dieser Sprache erarbeitet. Die Beispiele decken die Szenarien Hashing, digitale Signatur, symmetrische Verschlüsselung sowie asymmetrische Verschlüsselung ab. Des Weiteren werden 25 Richtlinien für die Sprache C# angepasst oder neu erstellt. Fazit: Auf der Plattform CryptoExamples wird der Beispielcode bereitgestellt, von dem garantiert wird, dass er sichere kryptografische Verfahren verwendet. Außerdem werden die Beispiele fortlaufend aktualisiert, womit die zukünftige Sicherheit des Codes gewährleistet wird. Zusätzlich gibt es Richtlinien für die Entwicklung neuer Beispiele. Damit soll die Einhaltung der Anforderungen der Plattform sichergestellt werden. Zum jetzigen Zeitpunkt ist die Plattform noch recht klein, sodass die Auswahl an Beispielen zu verschiedenen Programmiersprachen stark eingeschränkt ist.Item Open Access Design and implementation of a container-based architecture for real-time control applications(2018) Melcher, JanThe fourth industrial revolution and the advent of cyber-physical systems increase the flexibility and effectiveness in production, but they also change the role of software. Traditional monolithic systems need to split up in order to increase flexibility, maintainability and performance. There are existing approaches transforming traditional software towards a cloud-based infrastructure, but little work is done in applying this to real-time applications. This work proposes an architecture that uses containers to modularize real-time control applications, messaging for communication and a hardware abstraction layer to improve maintainability, reusability and flexibility. Using a prototypical implementation of the architecture, we validate the feasibility of this approach through a benchmark.Item Open Access Konzeption und Realisierung einer Cloud-Plattform zur Konfiguration und dem Deployment von Services(2018) Link, VincentDie 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.Item Open Access Evaluation and integration of a postprocessing tool into a container-based cloud platform(2018) Donsuypae, NakharinIn times of Cloud Computing and emerging technologies, more and more manufacturing enterprises are in search of new ways to utilize said concepts and technologies to reduce time and money spent on the production of parts. As a result, Cloud Manufacturing as a new paradigm has been introduced and fundamentally changes the way how manufacturing enterprises do their business. With Cloud Manufacturing, networked manufacturing is made possible and companies are able to order production parts and manage virtualized resources directly on the manufacturing platform. Rent'n'Produce, a research project of the Institute for Control Engineering of Machine Tools and Manufacturing Units, at the University of Stuttgart, focuses on the realization of a Cloud Manufacturing platform. Current functionalities include a flexible production assignment, a detailed order management and the possibility to schedule created resources. To extend functionalities of Rent'n'Produce, this work will focus on the integration of a Postprocessing Tool to generate a Numerical Control programming language, which can be used to execute commands on a machine tool. Requirements are defined and different Postprocessing Tools are compared to find the most suitable solution for the integration. The most suitable Postprocessing Tool is then prototypically integrated in Rent'n'Produce to showcase the new implemented workflow.Item Open Access Scenario-based modifiability evaluation of service-based systems : tool support for lightweight scenario templates(2018) Breul, GerhardIn modern software development, modifiability has arguably become one of the most important software quality attributes. There has been extensive research on the topic of the evaluation of a system's or architecture's ability to be modified. Scenario-based methods such as ALMA or SAAM have been around for a long time, and have proven to be effective ways to evaluate software. However, these methods are usually quite expensive in terms of time and require a big part of a project's stakeholders to align. One thing there has been a notable lack of is the modifiability evaluation specifically of systems using a service-based architecture. Properties of this architectural style can be useful to make more efficient assessments of a software's modifiability. This work seeks to propose a method to evaluate modifiability of service-based systems using a scenario-based analysis approach. Special emphasis is placed on this method being lightweight, i.e. less time-consuming and more flexible than similar methods. To achieve this, existing works on the topics of scenario-based software evaluation and the evolution of service-based systems were studied. Based on the acquired knowledge, a model of software change and an approach to analyze a system’s modifiability utilizing this model was designed. A tool was created to support our proposed method. Testing and applying the tool leads to iterative adjustments to the method. To demonstrate the insights that can be won using this method as well as how it is used, we perform an example application of it. The result of this work is a method that exchanges some of the reliability and accuracy of other scenario-based methods for flexibility and brevity. While the method achieves its goal of being lightweight, real-world testing and validation may lead to improvements to it.