Repository logoOPUS - Online Publications of University Stuttgart
de / en
Log In
New user? Click here to register.Have you forgotten your password?
Communities & Collections
All of DSpace
  1. Home
  2. Browse by Author

Browsing by Author "Wagner, Stefan (Prof. Dr.)"

Filter results by typing the first few letters
Now showing 1 - 12 of 12
  • Results Per Page
  • Sort Options
  • 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
    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
    Evaluation and improvement of automated software test suites
    (2019) Niedermayr, Rainer; Wagner, Stefan (Prof. Dr.)
    Automatisierte Softwaretests sind eine wichtige Qualitätssicherungsmaßnahme in Softwareprojekten und helfen Fehler in einer Anwendung frühzeitig aufzudecken. Zur Bewertung von Testsuiten wurden in der Vergangenheit verschiedene Metriken und Verfahren vorgeschlagen. Dabei sind Code-Coverage-Metriken am weitesten verbreitet und werden vor allem in der kommerziellen Softwareentwicklung eingesetzt. Jedoch sind diese nur bedingt geeignet, die Effektivität von Testsuiten hinsichtlich ihrer Fehleraufdeckungsrate zu bewerten. Ein anderes wirkungsvolles und aussagekräftiges Verfahren ist Mutation Testing, bei dem Fehler in den Anwendungscode einer Software eingefügt werden und geprüft wird, ob die vorhandenen Testfälle diese aufdecken können. In Bezug auf die Bestimmung der Testeffektivität ist Mutation Testing anderen Verfahren deutlich überlegen, jedoch ist es sehr rechenintensiv und sogenannte äquivalente Mutanten können die Ergebnisse verfälschen. Wegen dieser Probleme wird Mutation Testing in der Praxis derzeit kaum eingesetzt. Das Ziel dieser Dissertation ist es, aussagekräftigere Metriken und Verfahren zur Bewertung von Testsuiten zu entwickeln, welche mit vertretbarem Berechnungsaufwand anwendbar sind. Diese sollen Code-Coverage-Metriken in Bezug auf die Aussagekraft übertreffen und gleichzeitig weniger rechenintensiv als derzeit verwendete Mutation-Testing-Verfahren sein. Dazu wurde ein leichtgewichtiges Verfahren zur Erkennung von scheingetesteten Methoden konzipiert, umgesetzt und evaluiert. Scheingetestete Methoden sind von mindestens einem Testfall überdeckt, jedoch erkennt keiner der überdeckenden Testfälle, wenn die gesamte Logik aus der Methode entfernt wird. Außerdem wurde ein Machine-Learning-Modell zur Vorhersage von scheingetesteten Methoden entwickelt, welches ein neu eingeführtes Maß für die Aufrufdistanz zwischen Methoden und Testfällen sowie weitere kostengünstig berechenbare Metriken verwendet. Im Rahmen der Arbeit wurde ein weiteres Machine-Learning-Modell zur Identifizierung von Methoden mit einem niedrigem Fehlerrisiko vorgeschlagen. Solche Methoden können bei Qualitätssicherungsmaßnahmen nachrangig behandelt oder ausgeschlossen werden, sodass beispielsweise der Aufwand für die Erkennung scheingetesteter Methoden weiter reduziert wird. Die Ergebnisse zeigen, dass scheingetestete Methoden in allen untersuchten Studienobjekten auftreten und relevante Testunzulänglichkeiten darstellen. Machine-Learning-Modelle können scheingetestete Methoden effizient vorhersagen, sodass diese Modelle als eine kostengünstige Annäherung vor einer Mutationsanalyse eingesetzt oder in Situationen verwendet werden können, in denen Mutationsanalysen nicht anwendbar sind. Mit einem weiteren Machine-Learning-Modell können basierend auf Code-Metriken Methoden identifiziert werden, die ein niedriges Fehlerrisiko aufweisen. Dies trifft auf etwa ein Drittel der Methoden zu, die folglich im Test mit einer niedrigeren Priorität behandelt werden können. Die entworfenen Verfahren ermöglichen sowohl eine verhältnismäßig leichtgewichtige, anwendbare Berechnung von scheingetesteten Methoden als auch eine Vorhersage derselben basierend auf Methoden- und Testfallmetriken. Durch scheingetestete Methoden aufgedeckte Probleme in Testsuiten sind für Entwickler einfach verständlich und adressierbar, sodass Entwickler die Effektivität ihrer Testsuite verbessern können. Außerdem hilft die Identifikation von Methoden mit einem niedrigen Fehlerrisiko, Testaufwände auf relevante Methoden zu fokussieren. Effektivere Testsuiten können mehr Fehler bereits während des Softwareentwicklungsprozesses aufdecken und helfen damit, die Qualität eines Softwareprodukts zu verbessern sowie Fehlerfolgekosten zu reduzieren.
  • Thumbnail Image
    ItemOpen Access
    Evidence for the design of code comprehension experiments
    (2023) Wyrich, Marvin; Wagner, Stefan (Prof. Dr.)
    Context: Valid studies establish confidence in scientific findings. However, to carefully assess a study design, specific domain knowledge is required in addition to general expertise in research methodologies. For example, in an experiment, the influence of a manipulated condition on an observation can be influenced by many other conditions. We refer to these as confounding variables. Knowing possible confounding variables in the thematic context is essential to be able to assess a study design. If certain confounding variables are not identified and consequently not controlled, this can pose a threat to the validity of the study results. Problem: So far, the assessment of the validity of a study is only intuitive. The potential bias of study findings due to confounding variables is thus speculative, rather than evidence-based. This leads to uncertainty in the design of studies, as well as disagreement in peer review. However, two barriers currently impede evidence-based evaluation of study designs. First, many of the suspected confounding variables have not yet been adequately researched to demonstrate their true effects. Second, there is a lack of a pragmatic method to synthesize the existing evidence from primary studies in a way that is easily accessible to researchers. Scope: We investigate the problem in the context of experimental research methods with human study participants and in the thematic context of code comprehension research. Contributions: We first systematically analyze the design choices in code comprehension experiments over the past 40 years and the threats to the validity of these studies. This forms the basis for a subsequent discussion of the wide variety of design options in the absence of evidence on their consequences and comparability. We then conduct experiments that provide evidence on the influence of intelligence, personality, and cognitive biases on code comprehension. While previously only speculating on the influence of these variables, we now have some initial data points on their actual influence. Finally, we show how combining different primary studies into evidence profiles facilitates evidence-based discussion of experimental designs. For the three most commonly discussed threats to validity in code comprehension experiments, we create evidence profiles and discuss their implications. Conclusion: Evidence for and against threats to validity can be found for frequently discussed threats. Such conflicting evidence is explained by the need to consider individual confounding variables in the context of a specific study design, rather than as a universal rule, as is often the case. Evidence profiles highlight such a spectrum of evidence and serve as an entry point for researchers to engage in an evidence-based discussion of their study design. However, as with all types of systematic secondary studies, the success of evidence profiles relies on publishing a sufficient number of studies on the same respective research question. This is a particular challenge in a research field where the novelty of a manuscript's research findings is one of the evaluation criteria of any major conference. Nevertheless, we are optimistic about the future, as even evidence profiles that will merely indicate that evidence on a particular controversial issue is scarce will make a contribution: they will identify opinionated assessments of study designs as such, as well as motivate additional studies to provide more evidence.
  • Thumbnail Image
    ItemOpen Access
    The influence of personality on software quality
    (2020) Weilemann, Erica; Wagner, Stefan (Prof. Dr.)
    Objective of the work is an investigation into the relationship between the personality of a software engineer and the quality of the software she/he has created, primarily in terms of maintainability.
  • Thumbnail Image
    ItemOpen Access
    Mining software repositories for coupled changes
    (2017) Ramadani, Jasmin; Wagner, Stefan (Prof. Dr.)
    Software-Repositories enthalten Informationen über den Entwicklungsverlauf eines Softwaresystems, die von den Entwicklern bei Wartungsarbeiten genutzt werden können. Dazu gehören Daten im Versionsverwaltungssystem, im Issue-Tracking-System und in den Dokumentationsarchiven. Eine der meistverwendeten Techniken zur Analyse von Software-Repositories ist Data Mining, wobei die Frequent-Itemsets-Analyse häufig verwendet wird, um Gruppen von Dateien zu definieren, die in der Vergangenheit häufig zusammen geändert wurden. Diese Dateigruppen definieren wir als gekoppelte Dateien oder Coupled Files. Die meisten Studien über gekoppelte Dateiänderungen in Software-Repositories beziehen Git Versioning-Systeme nicht mit ein. Auch wird darin das Feedback der Entwickler bezüglich der Nützlichkeit der gekoppelten Dateiänderungen und deren Einfluss auf die Wartungsaufgaben nicht berücksichtigt. Das Hauptziel der vorliegenden Untersuchung besteht darin, Entwickler bei ihren Wartungsaufgaben zu unterstützen, und zwar in Form von Vorschlägen für mögliche Dateiänderungen, die auf früheren Änderungen im Git-Versionsverlauf der Software basieren. Wir untersuchten die Extraktion gekoppelter Dateiänderungen durch Data Mining mit Git und analysierten die Rückmeldung von Entwicklern bezüglich der Interessantheit und Nützlichkeit der Vorschläge für gekoppelte Dateiänderungen sowie deren Einfluss auf die Wartungsarbeiten. Anhand einer Fallstudie in der Industrie extrahierten wir gekoppelte Dateiänderungen aus drei Git-Repositories. Basierend auf der in dieser Fallstudie untersuchten Interessantheit und den Erkenntnissen aus einer Reihe empirischer Studien zu Wartungsarbeiten stellten wir eine Theorie auf über die Verwendung von Vorschlägen für gekoppelte Dateiänderungen bei Wartungsarbeiten. Diese Theorie wurde in folgenden Studien getestet: (1) Wir führten ein kontrolliertes Experiment durch, in dem wir Heuristiken zum Gruppieren verwandter Änderungssätze in Git untersuchten, aus denen wir relevante gekoppelte Dateiänderungen extrahierten. (2) In einem Quasi-Experiment untersuchten wir die Nützlichkeit gekoppelter Dateiänderungsvorschläge und deren Auswirkung auf die Korrektheit der Lösung sowie den Zeitaufwand für die Bearbeitung der Wartungsaufgaben. (3) In einer Explorationsstudie untersuchten wir, wie gekoppelte Dateiänderungsvorschläge die Strategie der Entwickler beeinflussen, mit der sie Wartungsarbeiten Hilfe suchen. In einer Explorationsstudie erweiterten wir das Konzept gekoppelter Dateiänderungen auf Paketebene und ermittelten verschiedene Stufen von Entwickler-Kompetenz anhand der von den Entwicklern bearbeiteten Systempakete. Wir entwickelten ein Werkzeug auf Eclipse-Basis, das gekoppelte Dateiänderungsvorschläge extrahiert, visualisiert und Entwicklern bei Wartungsaufgaben zur Verfügung stellt. Wir haben Heuristiken definiert um verwandte Änderungen in Git zu gruppieren. Mit der Frequent-Itemsets-Analyse gelang uns die Extraktion relativer häufiger gekoppelter Dateiänderungen aus Git. Die an der Fallstudie zur Interessantheit gekoppelter Dateien beteiligten Entwickler zeigten sich interessiert an dieser Art von Hilfe während der Wartungsarbeiten. Das Experiment zur Nützlichkeit von gekoppelten Dateiänderungsvorschlägen ergab, dass die Entwickler, die die Vorschläge nutzten, ihre Aufgaben erfolgreicher bewältigten als diejenigen, die es nicht taten. Die Ergebnisse der Explorationsstudie zur Inanspruchnahme von Hilfe bei Wartungsaufgaben zeigen, dass gekoppelte Dateiänderungsvorschläge auch den Bedarf an für die Wartungsaufgaben relevanten externen Informationsquellen reduzieren und so den Wartungsprozess kompakter machen. Zudem wurde das Konzept der gekoppelten Dateiänderungen erfolgreich eingesetzt, um Kompetenzprofile mit unterschiedlichen Spezialisierungen zu erstellen, die auf den Änderungen in den gekoppelten Systempaketen basieren. Die Rückmeldungen der Entwickler zu dem Verfahren der gekoppelten Dateiänderungsvorschläge wurden als positiv identifiziert. Unsere Theorie über den Einsatz gekoppelter Dateiänderungsvorschläge bei Wartungsaufgaben wurde erfolgreich getestet. Mit den vorgeschlagenen Heuristiken ermittelten wir, dass die Gruppierung der Änderungssätze in Git ihre Relevanz beeinflusst. Die Rückmeldungen der Entwickler zeigten, dass das Format und der Kontext gekoppelter Dateiänderungsvorschläge sich auf deren Nützlichkeit auswirken. Die Ergebnisse zeigen auch, dass gekoppelte Dateiänderungsvorschläge die Bearbeitung der Wartungsaufgaben und die Strategien zum Suchen nach Hilfe positiv beeinflussen. Die weitere Analyse von Kopplungen zwischen Teilen des Quellcodes anhand großer Datensätze ermöglicht es, die Auswirkungen gekoppelter Dateiänderungen auf die Wartung und die Qualität von Software besser zu verstehen.
  • Thumbnail Image
    ItemOpen Access
    On the evolvability assurance of microservices : metrics, scenarios, and patterns
    (2020) Bogner, Justus; Wagner, Stefan (Prof. Dr.)
    Context: Fast moving markets and the age of digitization require that software can be quickly changed or extended with new features. The associated quality attribute is referred to as evolvability: the degree of effectiveness and efficiency with which a system can be adapted or extended. Evolvability is especially important for software with frequently changing requirements, e.g. internet-based systems. Several evolvability-related benefits were arguably gained with the rise of service-oriented computing (SOC) that established itself as one of the most important paradigms for distributed systems over the last decade. The implementation of enterprise-wide software landscapes in the style of service-oriented architecture (SOA) prioritizes loose coupling, encapsulation, interoperability, composition, and reuse. In recent years, microservices quickly gained in popularity as an agile, DevOps-focused, and decentralized service-oriented variant with fine-grained services. A key idea here is that small and loosely coupled services that are independently deployable should be easy to change and to replace. Moreover, one of the postulated microservices characteristics is evolutionary design. Problem Statement: While these properties provide a favorable theoretical basis for evolvable systems, they offer no concrete and universally applicable solutions. As with each architectural style, the implementation of a concrete microservice-based system can be of arbitrary quality. Several studies also report that software professionals trust in the foundational maintainability of service orientation and microservices in particular. A blind belief in these qualities without appropriate evolvability assurance can lead to violations of important principles and therefore negatively impact software evolution. In addition to this, very little scientific research has covered the areas of maintenance, evolution, or technical debt of microservices. Objectives: To address this, the aim of this research is to support developers of microservices with appropriate methods, techniques, and tools to evaluate or improve evolvability and to facilitate sustainable long-term development. In particular, we want to provide recommendations and tool support for metric-based as well as scenario-based evaluation. In the context of service-based evolvability, we furthermore want to analyze the effectiveness of patterns and collect relevant antipatterns. Methods: Using empirical methods, we analyzed the industry state of the practice and the academic state of the art, which helped us to identify existing techniques, challenges, and research gaps. Based on these findings, we then designed new evolvability assurance techniques and used additional empirical studies to demonstrate and evaluate their effectiveness. Applied empirical methods were for example surveys, interviews, (systematic) literature studies, or controlled experiments. Contributions: In addition to our analyses of industry practice and scientific literature, we provide contributions in three different areas. With respect to metric-based evolvability evaluation, we identified a set of structural metrics specifically designed for service orientation and analyzed their value for microservices. Subsequently, we designed tool-supported approaches to automatically gather a subset of these metrics from machine-readable RESTful API descriptions and via a distributed tracing mechanism at runtime. In the area of scenario-based evaluation, we developed a tool-supported lightweight method to analyze the evolvability of a service-based system based on hypothetical evolution scenarios. We evaluated the method with a survey (N=40) as well as hands-on interviews (N=7) and improved it further based on the findings. Lastly with respect to patterns and antipatterns, we collected a large set of service-based patterns and analyzed their applicability for microservices. From this initial catalogue, we synthesized a set of candidate evolvability patterns via the proxy of architectural modifiability tactics. The impact of four of these patterns on evolvability was then empirically tested in a controlled experiment (N=69) and with a metric-based analysis. The results suggest that the additional structural complexity introduced by the patterns as well as developers' pattern knowledge have an influence on their effectiveness. As a last contribution, we created a holistic collection of service-based antipatterns for both SOA and microservices and published it in a collaborative repository. Conclusion: Our contributions provide first foundations for a holistic view on the evolvability assurance of microservices and address several perspectives. Metric- and scenario-based evaluation as well as service-based antipatterns can be used to identify "hot spots" while service-based patterns can remediate them and provide means for systematic evolvability construction. All in all, researchers and practitioners in the field of microservices can use our artifacts to analyze and improve the evolvability of their systems as well as to gain a conceptual understanding of service-based evolvability assurance.
  • 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
    Static analysis and stress : influence and measurements
    (2024) Ostberg, Jan-Peter; Wagner, Stefan (Prof. Dr.)
    Die Dissertation beschreibt wie statische Codeanalysewerkzeuge unter Stressgeschichtspunkten untersucht werden können und wie Stress in Gruppen, ohne Hilfe von medizinisch geschultem Personal, gemessen werden kann.
  • Thumbnail Image
    ItemOpen Access
    System-theoretic safety analysis in agile software development
    (2018) Wang, Yang; Wagner, Stefan (Prof. Dr.)
    Agile software development (ASD) has gained a good reputation for a number of years due to its higher customer satisfaction, lower defect rates, faster development times and as a solution to rapidly changing requirements. Thus, ASD arouses interests from safety-critical industries due to a fast changing market and upcoming customised requirements. However, applying ASD to develop safety-critical systems (SCS) is contro- versial. Most of practitioners in SCS prefer using traditional development processes together with a standardised safety assurance process by satisfying the norms, such as IEC 61508. Existing research is striving for a consistency or a hybrid model between ASD and norms. However, the traditional safety assurance cannot work well without a stable architecture. ASD has a con- stantly changing architecture, which makes the integration of traditional safety assurance in ASD a bottleneck, especially the execution of safety analysis. In this dissertation, we aim to propose a process model called S-Scrum, which is mainly based on integrating a System-Theoretic Process Analysis (STPA) to face the changing architectures when using ASD for developing SCS.
  • Thumbnail Image
    ItemOpen Access
    A system-theoretic safety engineering approach for software-intensive systems
    (2017) Abdulkhaleq, Asim; Wagner, Stefan (Prof. Dr.)
    In the software development process, formal verification and functional testing are complementary approaches which are used to verify the functional correctness of software; however, even perfectly reliable software could lead to an accident. The correctness of software cannot ensure the safe operation of safety-critical software systems. Therefore, developing safety-critical software requires a more systematic software and safety engineering process that enables the software and safety engineers to recognize the potential software risks. For this purpose, this dissertation introduces a comprehensive safety engineering approach based on STPA for Software-Intensive Systems, called STPA SwISs, which provides seamless STPA safety analysis and software safety verification activities to allow the software and safety engineers to work together during the software development for safety-critical systems and help them to recognize the associated software risks at the system level.
  • 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.
OPUS
  • About OPUS
  • Publish with OPUS
  • Legal information
DSpace
  • Cookie settings
  • Privacy policy
  • Send Feedback
University Stuttgart
  • University Stuttgart
  • University Library Stuttgart