05 Fakultät Informatik, Elektrotechnik und Informationstechnik
Permanent URI for this collectionhttps://elib.uni-stuttgart.de/handle/11682/6
Browse
43 results
Search Results
Item Open Access Automatic resource scaling in cloud applications - case study in cooperation with AEB SE(2021) Weiler, SimonAs an increasing number of applications continue to migrate into the cloud, the implementation of automatic scaling for computing resources to meet service-level objectives in a dynamic load environment is becoming a common challenge for software developers. To research how this problem can be tackled in practice, a state-of-the-art auto-scaling solution was developed and implemented in cooperation with AEB SE as a part of their application migration to a new Kubernetes cluster. Requirement elicitation was done via interviews with their development and IT operations staff, who put a strong focus on fast response times for automated requests as the main performance goal, with CPU, memory and response times being the most commonly used performance indicators for their systems. Using the collected knowledge, a scaling architecture was developed using their existing performance monitoring tools and Kubernetes' own Horizontal Pod Autoscaler, with a special adapter used for communicating the metrics between the two components. The system was tested on a deployment of AEB's test product using three different scaling approaches, using CPU utilization, JVM Memory usage and response time quantiles respectively. Evaluation results show that scaling approaches based on CPU utilization and memory usage are highly dependent on the type of requests and the implementation of the tested application, while response time-based scaling provides a more aggregated view on system performance and also reflects the actions of the scaler in its metrics. Overall though, the resulting performance was mostly the same for all scaling approaches, showing that the described architecture works in practice, but a more elaborate evaluation on a larger scale in a more optimized cluster would be needed to clearly distinguish between performances of different scaling strategies in a production environment.Item Open Access Developing an autonomous trading system : a case study on AI engineering practices(2022) Grote, MarcelToday, more and more systems are using AI to efficiently solve complex problems. While in many cases this increases the system’s performance and efficiency, developing such systems with AI functionality is a more difficult process due to the additional complexity. Thus, engineering practices are required to ensure the quality of the resulting software. Since the development of AI-based systems comes with new challenges, new engineering practices are needed for such development processes. Many practices have already been proposed for the development of AI-based systems. However, only a few practical experiences have been accumulated in applying these practices. This study aims to address this problem by collecting such experiences. Furthermore, our objective is to accumulate evidence of the effectiveness of these proposed practices. Additionally, we analyze challenges that occur during such a development process and provide solutions to overcome them. Lastly, we examine the tools proposed to develop AI-based systems. We aim to identify how helpful these tools are and how they affect the resulting system. We conducted a single case study in which we developed an autonomous stock trading system that uses machine learning functionality to invest in stocks. Before development, we conducted literature surveys to identify effective practices and useful tools for such an AI development process. During the development, we applied ten practices and seven tools. Using structured field notes, we documented the effects of these practices and tools. Furthermore, we used field notes to document challenges that occurred during the development and the solutions we applied to overcome them. After the development, we analyzed the collected field notes. We evaluated how the application of each practice and tool simplified the development and how it affected the software quality. Moreover, the experiences collected in applying these proposed practices and tools and the challenges encountered are compared with existing literature. Our experiences and the evidence we collected during this study can be used as advice to simplify the development of AI-based systems and to improve software quality.Item Open Access Deep learning in streamlining the conversion of natural language requirements into template-based architecture(2023) Buchholz, MaxIn dieser Arbeit wird evaluiert, wie die kürzlichen Entwicklungen im Bereich des Machine Learning, insbesondere die Entwicklung von Large Language Models dazu genutzt werden kann, bei der Konvertierung von natürlichsprachlichen Anforderungen, in eine vorlagenbasierte Struktur unterstützen können. Es werden verschiedene Ansätze implementiert, getestet und evaluiert, sowie ein existierender Datensatz um Anforderungen in umstrukturierter Form ergänzt. Die untersuchten Ansätze erweisen sich als potenzielle Ansätze für zukünftige Arbeiten und sind in der Lage die Aufgabe im Ansatz zu bewältigen. Daher kann eine auf maschinellem Lernen basierende Umwandlung von Anforderungsstatements den Prozess der Umwandlung vorhandener Statements in eine normierte Struktur verbessern.Item Open Access Empirical investigation of pain points in the onboarding process at L-Mobile for software developers : causes and solutions(2023) Rama, BenjaminEffective onboarding is critical to employee satisfaction, performance, and retention. This empirical research addresses the pain points faced by new employees during the onboarding process at LMobile and aims to identify their causes and propose solutions to minimize the feeling of overwhelm and increase overall satisfaction. Through semi-structured interviews with ten software developers who are currently onboarding or have recently completed the process, qualitative data analysis was conducted to uncover pain points in the onboarding process, focusing on factors that contribute to feelings of overwhelm. The results reveal significant concerns about the lack of satisfactory documentation for the codebase, largely due to the legacy nature of the application. Participants expressed a need for more comprehensive and detailed knowledge resources to support their onboarding, a desire for a shorter, more specific, and targeted onboarding process, and emphasized the importance of training that is aligned with their roles and responsibilities. This study not only presents findings from participant interviews but also integrates suggestions and frameworks from existing research. These findings provide actionable recommendations for L-Mobile to improve the onboarding process by addressing these specific pain points, resulting in increased satisfaction, and reduced feelings of overwhelm.Item Open Access Do TypeScript applications show better software quality than JavaScript applications? : a repository mining study in GitHub(2021) Merkel, ManuelJavaScript, the most widely used programming language, is the language for developing the client-side of web applications and, more recently, smartphone and desktop applications. However, due to its dynamic and flexible nature, it often has the reputation of delivering poor software quality. The emerging popular language TypeScript, which evolved from JavaScript, offers features to eliminate these prejudices. Therefore, this thesis addresses the arising question: Do TypeScript applications show better software quality than JavaScript applications? Furthermore, the impact of type safety on the software quality of TypeScript applications is investigated and whether the chosen framework has an impact on the software quality of the two programming languages. To be able to make a statement about these properties, a large-scale mining software repository study was conducted on GitHub. A total of 604 GitHub JavaScript and TypeScript repositories with over 16 million lines of code were examined. Three research questions were created to examine four software quality metrics: 1. code smells per LoC as an indicator of code quality 2. bug-fix commit ratio, which reflects bug proneness 3. average time a bug issue is open on GitHub, which represents the bug resolution time and 4. cognitive complexity per LoC to analyze code understandability. These metrics were categorized and evaluated differently for each research question. The data showed that TypeScript applications exhibit significantly better code quality and understandability than JavaScript applications. Contrary to expectations, there was not enough evidence that TypeScript applications are less bug prone and take less time in bug resolution than JavaScript applications. For TypeScript applications, it appears that insisting on type safety is beneficial, as it leads to significantly better quality in three out of four quality metrics. Lastly, it can be summarized that the choice of the framework has only a modest impact on the software quality of the programming languages.Item Open Access Simulating scenario-based chaos experiments for microservice architectures(2021) Wagner, LionContext. With the growing popularity of microservice-based architectures, the need for effective resilience testing of such architectures occurred. In a preceding case study, we showed that transforming resilience scenarios to formalized scenario-based chaos tests, and executing those is a feasible way to do so. Problem. While producing very representative results, chaos testing can require a not insignificant expenditure of time and stresses the system under test. Simulating such experiments reduces these problems. Unfortunately, there are currently no simulators available that fulfill the requirements for simulating such scenarios to an acceptable level. Objective. Therefore, this thesis examines which simulators are suitable for which types of scenarios. Furthermore, the most promising of these simulators is extended to support a common scenario description and other features. Method. To properly elicit the requirements for such a simulator, stakeholders conduct a requirements analysis. Existing simulators are searched and evaluated based on these requirements. The simulator that looks the most promising is then extended. To verify the accuracy of the simulator, the scenarios from the preceding case study are utilized. They are transposed to models and simulated. The result data of the simulation is compared to the results of the case study. Result. This thesis presents five microservice simulators and which scenarios they currently potentially support best in a structured overview. Further, a re-engineering of the MiSim simulator results in better support of scenario-based chaos experiments and others of the aforementioned requirements. Conclusion. MiSim 3.0 is evaluated as a simulator that is capable of accurately simulating scenario-based chaos tests. Specifically, the newly implemented resilience patterns and chaos injections behave as expected. However, an inaccurate calibration may harm its accuracy. Conclusion. Previously existing microservice simulators could not simulate all types of scenariobased chaos experiments. In the context of this thesis MiSim 3.0 is created and evaluated as a simulator capable of correctly simulating many types of scenario-based chaos tests. In particular, the newly implemented resilience patterns and chaos injections behave as expected. However, inaccurate calibration can significantly affect its accuracy.Item Open Access Gamification of software engineering education : an exploration(2022) Carpio, CedrickGamification has established a change of paradigm in various domains, such as: human-computer interaction, health, and education. Yet, the concept itself is still underdeveloped, and nonetheless missing in standardization for its practical use. Despite widespread usage, little effort has been done to constitute a normalized state for its components. Moreover, the application of gamification has yet to find its rightful place in fields it is being used, since the lack of guideline makes it difficult for practitioners to find ground during the execution of the concept. In this bachelor thesis, we outline well-established approaches of gamification, and attempt to design a concept by synthesizing. We validate our design through an experiment involving a gamified system and the appropriate group of participants. Further, the feedbacks shall present the merits and shortcomings of gamification in practice. We end by suggesting possible gaps to examine. Gaps we discovered while composing this thesis.Item Open Access Toolunterstütztes Refactoring von Microservices-Architekturen : eine industrielle Fallstudie(2024) Herrmann, AxelAufgrund zahlreicher Vorteile gegenüber monolithischen Anwendungen hat sich das Architekturprinzip von Microservices im letzten Jahrzehnt immer weiter verbreitet. Faktoren wie die bessere Skalierbarkeit oder größere Flexibilität bei der Kombination von Technologien können es für viele Produkte sinnvoll machen, von einer monolithischen zu einer Microservices-basierten Architektur zu migrieren. Es ist jedoch ein sehr zeit-, kostenintensiver und risikobehafteter Prozess, die grundlegende Architektur eines Produkts zu ändern. Eine klare Vorgehensweise für den Migrationsprozess zu finden, ist eine schwierige Aufgabe. Da viele Entwickler dabei nicht auf wissenschaftliche Literatur zurückgreifen, wurde in früheren Arbeiten das Tool Architecture Refactoring Helper (ARH) auf Basis des Frameworks Microservices Migration Framework (MMF) entwickelt, das den Migrationsprozess mit wissenschaftlichen Erkenntnissen unterstützen soll. Im Rahmen dieser Thesis wurde das Tool erstmals für das Refactoring eines industriellen Produkts mit Microservices-Architektur eingesetzt. Zunächst wurde mithilfe des Frameworks ein Architekturreview durchgeführt, um die gewünschten Qualitätsattribute für das Produkt jadice flow szenarienbasiert zu erfassen. Diese und weitere Filtereinstellungen dienten als Basis für die Suche mit dem ARH nach Migrationsverfahren. Die resultierenden Suchergebnisse wurden manuell evaluiert. Eine Anwendung der beiden bevorzugten Migrationsverfahren wurde versucht, konnte jedoch nicht fertiggestellt werden. Zur Evaluation der Studie wurden deshalb die beiden Verfahren sowie die Suchergebnisse der dritten Phase in Form von Best Practices und Patterns in Experteninterviews bewertet. Aus der Auswertung dieser und der während des Refactoring-Prozesses gesammelten Feldnotizen ergibt sich eine positive Evaluation des MMF. Die Experten hoben dabei die einzelnen Funktionen sowie das Vorgehen in Phasen positiv hervor. Außerdem wurde vermutet, dass die ausgewählten Migrationsverfahren bei zukünftiger, vollständiger Anwendung potentiell nützlich für jadice flow sein könnten. Daraus wird geschlussfolgert, dass die Anwendung des Frameworks in dieser Fallstudie erfolgreich war und das MMF auch für Refactorings von Produkten mit vorhandenen Microservices-Architekturen nützlich sein kann. Es gilt, diese in der Zukunft einzusetzen, sowie weitere Untersuchungen zum und Verbesserungen am ARH durchzuführen.Item Open Access Eventual consistent issue synchronisation between Gropius and traditional issue management systems(2023) Kurz, ChristianContext. In the development of component-based systems, often issues affect multiple components or must reference issues of a different component, resulting in the Cross-Component Issue Management System, Gropius being invented. Gropius needs to synchronize issues with traditional per-component Issue Management Systems (IMSs), e.g., GitHub or Jira, to have relations between issues on different IMS. Problem. The existing system can currently communicate exclusively with GitHub supporting only a limited subset of the required features. It is susceptible to duplicating issues and timeline items potentially infinite times due to missing identifying meta information. Objective. We provide a redesign of the Gropius Sync, designed to be modular and able to host multiple methods of duplicate detection. Method. We implement the new Sync Framework, adapters for GitHub and Jira as representatives for traditional IMSs and compare different methods for duplicate prevention. Result. We succeeded with our plans to provide a new Sync that can both sync to GitHub and Jira and thus demonstrate the feasibility of the sync. We successfully detect and prevent most previously found issue duplication loops. Conclusion. The new Gropius Sync allows synchronization between multiple IMS Projects without runaway duplication of issues.Item Open Access Architectural requirements for image recognition : an industrial case study(2023) Reich, PatrickCommunication through construction drawings is a vital aspect of the product development process. Because different companies own the intellectual property rights to different construction drawings, it is necessary to verify the ownership of construction drawings before sending them to other companies. This thesis addresses the software architecture design process for a system that automates construction drawing ownership verification via artificial-intelligence-based document classification. A focus group identifies a number of architectural requirements for the software, which are used together with the C4 model to develop an architecture proposal. The architecture proposal is evaluated in a series of expert interviews that also identify additional requirements. The thesis’ contributions include a catalog of architectural requirements, together with a prioritization and division into mandatory and non-mandatory requirements by the focus group participants, and an architecture proposal that provides guidelines on how to fulfill most of the requirements. The architecture proposal and requirements are well applicable to related problem statements, such as other classification problems, possibly in contexts other than the product development process. However, because the importance of the architectural requirements is very case-dependent, the prioritization and division into mandatory and non-mandatory requirements is more limited to the use case at hand.