ABSTRACT

Modern industrial trends such a Cyber-Physical Systems and System of Systems lead to the continuously increasing complexity and heterogeneity of components and interfaces, as well as more and more advanced software parts. Classical reliability evaluation methods, recommended in nowadays standards, such as Fault Tree Analysis (FTA) and Failure Mode and Effect Analysis (FMEA), fail to describe system behavioral aspects in a sufficiently deep manner. Therefore, additional, sophisticated and highly specialized methods for the analysis of the effects of unavoidable faults are required. Recently introduced Dual-graph Error Propagation Model (DEPM) is a stochastic framework that captures system properties relevant to error propagation processes such as control and data flow structures and reliability characteristics of single components. The DEPM helps to estimate the impact of a fault of a particular component on the overall system reliability, e.g. to compute the mean number of erroneous values in a critical system output during given operation time. A DEPM can be automatically generated from various semi-formal system representations such as UML/SysML, AADL, or Simulink/Stateflow. However, despite the common trend towards model-based system development the functional software parts usually incorporate manually programmed code. The error propagation properties of this manual code also need to be analyzed and considered during the reliability evaluation of the complete system. This paper presents a new method, based on the Low-Level Virtual Machine (LLVM) compiler framework, that allows the automatic transformation of C-code or another LLVM supported front-end into a DEPM. The source code is compiled into the LLVM Intermediate Representation and instrumented in order to analyze control and data flow structures of LLVM instructions and control flow transition probabilities. The obtained information is transformed into the formal DEPM XML for further analysis. The paper describes the transformation method and its application to a low-level flight control software of a UAV system.