Requirements Monitoring and Diagnosis of Software Systems
Today, large-scale and heterogeneous software systems are ubiquitous in many domains. Often, such systems are part of systems of systems (SoS) or cyber-physical systems (CPS), and work together to fulfill common goals resulting from domain or customer requirements. Such systems comprise hardware and software systems, which are commonly provided by different vendors following their own development strategies and release plans.
The behavior of such systems is hardly predictable at development time and only fully emerges during operation, when the systems interact with each other and the hardware in their environment.
It is thus essential to observe these complex software-intensive systems at runtime and to continuously check that they adhere to their requirements. However, approaches that have been developed for this purpose so far mainly focus on detecting violations, while subsequent support for analysis and diagnosis of violations is still rather limited. Due to the increasing size and complexity of these systems, manually diagnosing requirements violations can easily become a tedious and cumbersome task, often infeasible for people without deep knowledge of the systems and the technologies they are based on.
In this project we want to address these issues by bringing together the research fields of requirements monitoring and software traceability to better relate design-time artifacts (e.g., source code or specification documents) and runtime artifacts (e.g., events and data collected from a monitored system). We expect that engineers diagnosing a violation occurring at runtime can greatly profit from traceability between the actual violation and underlying, related specification documents or source code.
Our main goal is to develop a novel traceability-supported framework for diagnosing requirements violations in large-scale, heterogeneous systems. This requires (i) a thorough evaluation of the current state of the art in the area of (runtime) monitoring and traceability, and (ii) an as-is assessment of the state of the practice. Based on this assessment we aim at (iii) developing traceability-supported algorithms and an accompanying tool-supported framework for runtime diagnosis, and (iv) evaluating and iteratively improving the framework based on its application in industrial applications.
The proposed research approach includes well-known research methods in the area of software engineering, such as systematic studies of the state-of-the-art in a research area, concept implementation through incrementally refined prototypes, and research evaluation through user studies and case studies.