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
    Verifikation softwareintensiver Fahrwerksysteme
    (2023) Hellhake, Dominik; Wagner, Stefan (Prof. Dr.)
    Kontext: Die zunehmende Signifikanz von softwarebasierten Funktionen in modernen Fahrzeugen ist der Auslöser vieler Veränderungen im automobilen Entwicklungsprozess. In der Vergangenheit bestand ein Fahrzeug aus mehreren Electronic Control Units (ECUs), welche jeweils individuelle und voneinander unabhängige Softwarefunktionen ausführten. Demgegenüber bilden heute mehrere ECUs funktional kohärente Subsysteme, welche übergreifende und vernetzte Softwarefunktionen wie zum Beispiel Fahrerassistenzfunktionen und automatisierte Fahrfunktionen implementieren. Dieser Trend hin zu einem hochvernetzten Softwaresystem sorgt in der Entwicklung moderner Fahrzeuge für einen hohen Bedarf an geeigneten Architekturmodellen und Entwurfsmethoden. Aufgrund der Entwicklung von ECUs durch verschiedene Entwicklungsdienstleister werden zusätzlich systematische Integrationstestmethoden benötigt, um das korrekte Interaktionsverhalten jeder individueller ECU im Laufe der Fahrzeugentwicklung zu verifizieren. Hierfür stellt Kopplung eine weit verbreitete Messgröße dar, um in komponentenbasierten Softwaresystemen Qualitätseigenschaften wie die Verständlichkeit, Wiederverwendbarkeit, Modifizierbarkeit und Testbarkeit widerzuspiegeln. Problembeschreibung: Während Kopplung eine geeignete Messgröße für die Qualität eines Softwaredesigns darstellt, existieren nur wenig wissenschaftliche Beiträge über den Mehrwert von Kopplung für den Integrationstestprozess des aus dem Design resultierenden Systems. Existierende Arbeiten über das Thema Integrationstest beschreiben die schrittweise Integration von White-Box Softwarekomponenten unter Verwendung von Eigenschaften und Messgrößen, welche aus der Implementierung abgeleitet wurden. Diese Abhängigkeit vom Quellcode und der Softwarestruktur sorgt jedoch dafür, dass diese Methoden nicht auf die Entwicklung von Fahrzeugen übertragen werden können, da Fahrzeugsysteme zu einem großen Anteil aus Black-Box Software bestehen. Folglich existieren auch keine Methoden zur Messung der Testabdeckung oder zur Priorisierung der durchzuführenden Tests. In der Praxis sorgt dies dafür, dass lediglich erfahrungsbasierte Ansätze angewendet werden, bei denen signifikante Anteile des Interaktionsverhaltens im Laufe der Fahrzeugentwicklung ungetestet bleiben. Ziele: Um Lösungen für dieses Problem zu finden, soll diese Arbeit systematische und empirisch evaluierte Testmethoden ausarbeiten, welche für die Integrationstests während der Fahrzeugentwicklung angewendet werden können. Dabei wollen wir in erster Linie auch einen Einblick in das Potential bieten, welche Messgrößen Kopplung für die Verwendung zur Testfall-Priorisierung bietet. Das Ziel dieser Arbeit ist es, eine Empfehlung für das systematische Integrationstesten von Fahrzeugsystemen zu geben, welches auf dem Interaktionsverhalten einzelner ECUs basiert. Methoden: Um diese Ziele zu erreichen, analysieren wir im ersten Schritt dieser Arbeit den Stand der Technik, so wie er gegenwärtig bei BMW für das Integrationstesten der Fahrwerkssysteme angewendet wird. Dem gegenüber analysieren wir den Stand der Wissenschaft hinsichtlich existierender Testmethoden, welche auf die Problemstellung der Integration von Fahrzeugsystemen übertragen werden können. Basierend auf diesem Set an wissenschaftlich evaluierten Methoden leiten wir anschließend konkrete Vorgehensweisen für die Messung der Testabdeckung und der TestfallPriorisierung ab. Im Rahmen dieser Arbeit werden beide Vorgehensweisen empirisch evaluiert basierend auf Test- und Fehlerdaten aus einem Fahrzeugentwicklungsprojekt. Beiträge: Zusammengefasst enthält diese Arbeit zwei Beiträge, welche wir zu einem zentralen Beitrag zusammenführen. Der erste Bereich besteht aus einer Methode zur Messung der Testabdeckung basierend auf dem inter-komponenten Datenfluss von Black-Box-Komponenten. Die Definition eines Datenfluss-Klassifikationsschemas ermöglicht es, Daten über die Verwendung von Datenflüssen in existierenden Testfällen sowie in Fehlern zu sammeln, welche in den verschiedenen Testphasen gefunden wurden. Der zweite Beitrag dieser Arbeit stellt eine Korrelationsstudie zwischen verschiedenen Messmethoden für Coupling und der Fehlerverteilung in einem Fahrwerkssystem dar. Dabei evaluieren wir die Coupling-Werte von individuellen Software-Interfaces sowie die der Komponenten, welche diese implementieren. Zusammengefasst spiegelt diese Studie das Potential wider, das solche Coupling-Messmethoden für die Verwendbarkeit zur Testpriorisierung haben. Die Erkenntnisse aus diesen Beiträgen werden in unserem Hauptbeitrag zu einer Coupling-basierten Teststrategie für Systemintegrationstests zusammengeführt. Fazit: Der Beitrag dieser Arbeit verbindet zum ersten Mal den Stand der Technik zur Systemintegration von verteilten Black-Box-Softwaresystemen mit dem Stand der Wissenschaft über systematische Ansätze zur Integration von Softwaresystemen. Das Messen der Testabdeckung basierend auf dem Datenfluss ist hierfür eine effektive Methode, da der Datenfluss in einem System das Interaktionsverhalten der einzelnen Komponenten widerspiegelt. Zusätzlich kann das mögliche Interaktionsverhalten aller Komponenten des Systems aus dessen Architektur-Spezifikationen abgeleitet werden. Aus den Studien über die Korrelation von Coupling zur Fehlerverteilung geht außerdem eine moderate Abhängigkeit hervor. Aufgrund dessen ist die Selektion von Testfällen basierend auf die im Testfall erprobten Komponenteninteraktionen und dessen Coupling ein sinnvolles Vorgehen für die Praxis. Jedoch ist die moderate Korrelation auch ein Indiz dafür, dass zusätzliche Aspekte bei der Auswahl von Testfällen für Integrationstests zu berücksichtigen sind.
  • Thumbnail Image
    ItemOpen Access
    Evaluation and control of the value provision of complex IoT service systems
    (2022) Niedermaier, Sina; Wagner, Stefan (Prof. Dr.)
    The Internet of Things (IoT) represents an opportunity for companies to create additional consumer value through merging connected products with software-based services. The quality of the IoT service can determine whether an IoT service is consumed in the long-term and whether it delivers the expected value for a consumer. Since IoT services are usually provided by distributed systems and their operations are becoming increasingly complex and dynamic, continuous monitoring and control of the value provision is necessary. The individual components of IoT service systems are usually developed and operated by specialized teams in a division of labor. With the increasing specialization of the teams, practitioners struggle to derive quality requirements based on consumer needs. Consequently, the teams often observe the behavior of “their” components isolated without relation to value provision to a consumer. Inadequate monitoring and control of the value provision across the different components of an IoT system can result in quality deficiencies and a loss of value for the consumer. The goal of this dissertation is to support organizations with concepts and methods in the development and operations of IoT service systems to ensure the quality of the value provision to a consumer. By applying empirical methods, we first analyzed the challenges and applied practices in the industry as well as the state of the art. Based on the results, we refined existing concepts and approaches. To evaluate their quality in use, we conducted action research projects in collaboration with industry partners. Based on an interview study with industry experts, we have analyzed the current challenges, requirements, and applied solutions for the operations and monitoring of distributed systems in more detail. The findings of this study form the basis for further contributions of this thesis. To support and improve communication between the specialized teams in handling quality deficiencies, we have developed a classification for system anomalies. We have applied and evaluated this classification in an action research project in industry. It allows organizations to differentiate and adapt their actions according to different classes of anomalies. Thus, quick and effective actions to ensure the value provision or minimize the loss of value can be optimized separately from actions in the context of long-term and sustainable correction of the IoT system. Moreover, the classification for system anomalies enables the organization to create feedback loops for quality improvement of the system, the IoT service, and the organization. To evaluate the delivered value of an IoT service, we decompose it into discrete workflows, so-called IoT transactions. Applying distributed tracing, the dynamic behavior of an IoT transaction can be reconstructed in a further activity and can be made “observable”. Consequently, the successful completion of a transaction and its quality can be determined by applying indicators. We have developed an approach for the systematic derivation of quality indicators. By comparing actual values determined in operations with previously defined target values, the organization is able to detect anomalies in the temporal behavior of the value provision. As a result, the value provision can be controlled with appropriate actions. The quality in use of the approach is confirmed in another action research project with an industry partner. In summary, this thesis supports organizations in quantifying the delivered value of an IoT service and controlling the value provision with effective actions. Furthermore, the trust of a consumer in the IoT service provided by an IoT system and in the organization can be maintained and further increased by applying appropriate feedback loops.
  • Thumbnail Image
    ItemOpen Access
    Analyzing code corpora to improve the correctness and reliability of programs
    (2021) Patra, Jibesh; Pradel, Michael (Prof. Dr.)
    Bugs in software are commonplace, challenging, and expensive to deal with. One widely used direction is to use program analyses and reason about software to detect bugs in them. In recent years, the growth of areas like web application development and data analysis has produced large amounts of publicly available source code corpora, primarily written in dynamically typed languages, such as Python and JavaScript. It is challenging to reason about programs written in such languages because of the presence of dynamic features and the lack of statically declared types. This dissertation argues that, to build software developer tools for detecting and understanding bugs, it is worthwhile to analyze code corpora, which can uncover code idioms, runtime information, and natural language constructs such as comments. The dissertation is divided into three corpus-based approaches that support our argument. In the first part, we present static analyses over code corpora to generate new programs, to perform mutations on existing programs, and to generate data for effective training of neural models. We provide empirical evidence that the static analyses can scale to thousands of files and the trained models are useful in finding bugs in code. The second part of this dissertation presents dynamic analyses over code corpora. Our evaluations show that the analyses are effective in uncovering unexpected behaviors when multiple JavaScript libraries are included together and to generate data for training bug-finding neural models. Finally, we show that a corpus-based analysis can be useful for input reduction, which can help developers to find a smaller subset of an input that still triggers the required behavior. We envision that the current dissertation motivates future endeavors in corpus-based analysis to alleviate some of the challenges faced while ensuring the reliability and correctness of software. One direction is to combine data obtained by static and dynamic analyses over code corpora for training. Another direction is to use meta-learning approaches, where a model is trained using data extracted from the code corpora of one language and used for another language.
  • Thumbnail Image
    ItemOpen Access
    Architectural refactoring to microservices : a quality-driven methodology for modernizing monolithic applications
    (2024) Fritzsch, Jonas; Wagner, Stefan (Prof. Dr.)
    Context and Problem: The microservices architectural style has revolutionized the way modern software systems are developed and operated, and has become the de facto standard for cloud-based applications. However, existing systems are often designed as monoliths, which are associated with inflexible processes, long release cycles, and an architecture incapable of leveraging the advantages of cloud environments. The adoption of microservices would require an architectural refactoring, entailing redevelopments of parts or even the entire application. Often associated with extensive manual effort, the targeted, quality-oriented, and semi-automated decomposition into a set of self-contained services remains problematic. Software architects look for resource-efficient ways to provide predictable results and guidance in this highly individual process. Objective: To systematically guide software architects and developers in modernizing their software systems, we seek to provide a holistic methodology for systematic and quality-driven migrations towards microservices. As part of it, we search solutions for the targeted and automated decomposition into services, and ways to support a quality-oriented design based on established patterns and best practices. Our work aims to provide industry-relevant methods that address the gap between academia and practice by facilitating the transfer of knowledge. Methods: In an overarching design science research process, we create a migration methodology that we implement as a web-based application. For analysis and evaluation, we apply established methods in empirical software engineering, such as case study research, surveys, and semi-structured interviews with experts. Our secondary research to summarize the current state of scientific advances relies on consecutive literature searches and rapid reviews, a lightweight method derived from systematic reviews. Contributions: Based on two primary empirical interview studies with 25 software professionals, we collected evidence on the intentions, strategies, and challenges of migrating monolithic applications to microservices, complemented by requirements for tool support and automation. Over four iterations, we reviewed 110 scientific publications on approaches for architectural refactoring and migration to microservices. To guide architects and developers in a migration process, we conceptualized a framework, along with a dedicated quality model that reflects a quality-driven migration process. Based on latest technologies and a modern user interface design, we realized our concept as a web-based application in an agile development process with early involvement of potential users. In a multi-faceted evaluation, we examined its ability to provide actionable guidance for practitioners. To this end, we conducted three surveys and one interview study with a total of 26 participants, complemented by two longitudinal case studies in an industrial context. Conclusion: We propose a holistic methodology for modernizing monolithic applications to microservices that comprises a framework and a dedicated quality model. Our contributions support architects in making informed decisions about microservices adoption, and furthermore guide them through a systematic transformation process. The evaluations showed an overall positive result in terms of effectiveness, usefulness, and usability, while both case studies demonstrated a successful application in an industrial environment. By sharing important study artifacts, we support researchers developing industry-focused methods, who can profit from our insights and experiences. Moreover, we regard our design science approach to leveraging academic research by practice as transferable to other scientific disciplines.
  • Thumbnail Image
    ItemOpen Access
    Development of outcome-driven product roadmaps
    (2024) Trieflinger, Stefan; Münch, Jürgen (Prof. Dr.)
    Unternehmen sehen sich zunehmend mit einer hohen Marktdynamik, sich schnell entwickelnden Technologien und sich ständig wechselnden Nutzererwartungen konfrontiert. In einer Welt mit hoher Dynamik und Ungewissheit ist es nahezu unmöglich, langfristig vorherzusagen, welche Produkte, Features oder Services die Bedürfnisse der Kunden erfüllen werden. Daher scheitern traditionelle Produkt-Roadmapping-Ansätze in dynamischen und unsicheren Marktumfeldern. Um diesem Problem entgegenzuwirken, wurden in dieser Dissertation sechs Artefakte entwickelt, die Unternehmen dabei unterstützen, ihre Produkt-Roadmapping-Praktiken an die Gegebenheiten von dynamischen und unsicheren Marktumfeldern zu transformieren. Diese sechse Artefakte wurden unter anderem durch zwei Fallstudien in Zusammenarbeit mit zwei software-intensiven Unternehmen validiert.
  • Thumbnail Image
    ItemOpen Access
    Automated generation of tailored load tests for continuous software engineering
    (2021) Schulz, Henning; Hoorn, André van (Dr.-Ing.)
    Continuous software engineering (CSE) aims to produce high-quality software through frequent and automated releases of concurrently developed services. By replaying workloads that are representative of the production environment, load testing can identify quality degradation under realistic conditions. The literature proposes several approaches that extract representative workload models from recorded data. However, these approaches contradict CSE's high pace and automation in three aspects: they require manual parameterization, generate resource-intensive system-level load tests, and lack the means to select appropriate periods from the temporally varying production workload to justify time-consuming testing. This dissertation addresses the automated generation of tailored load tests to reduce the time and resources required for CSE-integrated testing. The tailoring needs to consider the services of interest and select the most relevant workload periods based on their context, such as the presence of a special sale when testing a webshop. Also, we intend to support experts and non-experts with a high degree of automation and abstraction. We develop and evaluate description languages, algorithms, and an automated load test generation approach that integrates workload model extraction, clustering, and forecasting. The evaluation comprises laboratory experiments, industrial case studies, an expert survey, and formal proofs. Our results show that representative context-tailored load tests can be generated by learning a workload model incrementally, enriching it with contextual information, and predicting the expected workload using time series forecasting. For further tailoring the load tests to services, we propose extracting call hierarchies from recorded invocation traces. Dedicated models of evolving manual parameterizations automate the generation process and restore the representativeness of the load tests. Furthermore, the integration of our approach with an automated execution framework enables load testing for non-experts. Following open-science practices, we provide supplementary material online. The proposed approach is a suitable solution for the described problem. Future work should refine specific building blocks the approach leverages. These blocks are the clustering and forecasting techniques from existing work, which we have assessed to be limited for predicting sharply fluctuating workloads, such as load spikes.
  • Thumbnail Image
    ItemOpen Access
    Sicherheitsanalysen von Fail-Operational-Systemen für einen Nachweis nach ISO 26262
    (2021) Schmid, Tobias; Wagner, Stefan (Prof. Dr.)
    Der Übergang vom teil- auf das hochautomatisierte Fahren stellt eine Entlastung des Fahrers dar, da dieser das Verkehrsgeschehen nicht mehr permanent überwachen muss. Ein Fail-Silent-Verhalten ist im Fehlerfall kein Übergang in einen sicheren Zustand, weswegen Fail-Operational-Systeme für die funktionale Sicherheit notwendig sind. Fail-Operational-Fahrzeugführungen erfordern redundante Architekturen und neuartige Sicherheitskonzepte, um die Fehlertoleranz und eine geeignete Fehlerreaktion sicherzustellen. Einzelne Aspekte solcher Systeme wurden in der Literatur bereits diskutiert, allerdings fehlt bisher ein hinreichender Nachweis der funktionalen Sicherheit von Fail-Operational-Fahrzeugsystemen. In dieser Arbeit wird eine hinreichende Argumentation der funktionalen Sicherheit gemäß des Industriestandards ISO 26262 für Fail-Operational-Fahrzeugsysteme vorgestellt. Basierend auf der Argumentation werden notwendige Sicherheitsanalysen inklusive derer Nachweisziele auf Systemebene identifiziert Vorgehen für die jeweiligen Analysen vorgestellt. Daraus ergeben sich zusätzlich die Schnittstellen von System- und Subsystemanalysen. Für die Analyse gemeinsamer Ausfälle und den Nachweis der Unabhängigkeit redundanter Elemente, werden, auf Basis einer Studie zur Identifikation relevanter Anforderungen, existierende Vorgehen adaptiert und erweitert. Damit ergibt sich ein Vorgehen, dass den Randbedingungen der Entwicklung eines Fail-Operational-Systems in der Automobilindustrie gerecht wird. Das Fail-Operational-Verhalten der Umschaltlogik, welche im Fehlerfall eine redundante Fahrzeugführung aktiviert, wird anhand eines Model-Checking-Ansatzes verifiziert. Durch die Qualifizierung des Werkzeugs wird die Konformität zur ISO 26262 sichergestellt. Für die Analyse der Fehlerpropagation und der Fehlertoleranzzeit wird der Ansatz entsprechend um den Softwareverbund erweitert. Implementierungs- und Rechenaufwand zeigen die Anwendbarkeit der Analysen. Darüber hinaus werden Fehlerbaummodelle aus der Luft- und Raumfahrt für den quantitativen Nachweis von Fail-Operational-Systemen adaptiert und mittels Markov-Modellen validiert. Durch eine Sensitivitätsanalyse erfolgt die Identifikation von Optimierungsansätzen zur Minimierung der Ausfallwahrscheinlichkeit.
  • Thumbnail Image
    ItemOpen Access
    Leadership gap in agile teams: how developers and scrum masters mature
    (2021) Spiegler, Simone V.; Wagner, Stefan (Prof. Dr.)
    An increasing number of companies aim to enable their developers to work in an agile manner. One key success factor that supports teams in working in an agile way is fitting leadership. Therefore, companies aim to understand leadership in such self-organising teams. One agile leadership concept describes a Scrum Master who is supposed to empower the team to work in an agile manner. However, the findings on leadership that unfolds in a self-organising team are controversial. By using Grounded Theory this thesis provides theories on how leadership evolves in agile teams while taking maturity and organisational culture and structure into account. The thesis does not only provide more theoretical underpinning to human aspects of the agile manner but also builds groundwork for future quantitative testing of leadership in agile teams.
  • Thumbnail Image
    ItemOpen Access
    Wohldefinierte Überdeckungsmetriken für den Glass-Box-Test
    (2014) Schmidberger, Rainer; Ludewig, Jochen (Prof. Dr.)
    Der Glass-Box-Test (GBT), der auch als White-Box- oder Strukturtest bezeichnet wird, zeigt den im Test ausgeführten Programmcode an. Doch obwohl uns der GBT auf den ersten Blick als eine ausgereifte Testtechnik erscheint, zeigen die zugrundeliegenden Modelle und Metriken bei genauer Betrachtung erhebliche Mängel, die zu unpräzisen und inkonsistenten Resultaten der verschiedenen GBT-Werkzeuge führen. In dieser Arbeit wird ein neues und präzises Modell für den GBT präsentiert. Dieses Modell entsteht in zwei Schritten: Zunächst wird eine GBT-Modellsprache definiert (die Reduced Program Representation, RPR), die die GBT-relevanten Aspekte der realen Sprachen abbildet. Aus der RPR-Definition entstehen sogenannte Ausführungselemente, deren Ausführungssemantik im zweiten Schritt durch Petri-Netze, sogenannte Modellnetze, definiert wird. Auf dieser Grundlage erfolgt dann eine präzise Definition der populären sowie weiterer GBT-Metriken. Das im Folgenden beschriebene Werkzeug CodeCover (www.CodeCover.org) liefert eine Referenzimplementierung der definierten Metriken. CodeCover bietet auch eine neue Funktion, die den Tester durch sogenannte Testfall-Hinweise beim Entwurf von GBT-basierten Testfällen systematisch unterstützt. Diese Testfälle führen einerseits zu einer Erhöhung der Überdeckung. Durch eine gezielte Priorisierung der Testfall-Hinweise wird aber auch eine hohe Fehlersensitivität der neu entwickelten Testfälle angestrebt.
  • Thumbnail Image
    ItemOpen Access
    Understanding behavior of third-party components through explanation and configurable mapping models
    (2024) Hakamian, Alireza; Becker, Steffen (Prof. Dr.-Ing.)
    Most of the code executed in modern software systems is developed and maintained outside the organization. Understanding whether or not third-party components behave as intended requires expertise, which is rare and costly. Behavioral conformance checking (BCC) aims to identify deviations and conformances between system design and implementation by establishing relations between elements of design and implementation models. This dissertation aims to assist application designers in (1) simplifying BCC for different third-party components and (2) understanding the behavior of third-party components. Our method aligns more with design science methodology that aims to address research questions by developing and evaluating IT artifacts.