Automating Target Analysis to Speed up the

Dependability Analysis of complex real time Software

 

Detailed abstract

In the space sector, SURLOG has demonstrated the assets of its expert approach. Clearly, the ATASDAS methodology is tackled for the space sector on a European basis: ESTEC (the research centre of ESA) looks for the most adequate expertise throughout Europe to solve its software safety needs.

The ATASDAS project extends this space expertise to different sectors that use more and more critical real time software. It should speed up the implementation of new European rules for reliability analysis of complex real time software, first in the critical application areas, but also in other areas where safety is a key factor, such as automotive, aeronautics, and air traffic management.

There are numerous industrial processes that are driven by real time control software. Many of such processes are critical for the safety of the whole system. When failures occur, either at the development/test phase or during real life operations, it is of paramount importance to understand very quickly the existing software structure and to propose diagnostics and remedies leading to:

Ø       Error analysis, debugging and correction

Ø       An improved evaluation of the safety level of the resulting new software

 

It must be emphasized that dependable software involved in the control and command of automated systems belongs to a very specific subclass of software programs the ones that can be considered as an infinite cycle of finite and deterministic execution steps of a sequence of instructions:

 

Ø       The scope of languages used by programmers is rather limited (C, C++, ADA, Modula-2)

Ø       The software size is limited (about 1,000 to 20, 000 lines of active code)

Ø       The number of software components has to be kept limited in size (from 100 to a few thousands) with a call depth restricted to 5 to 20 levels

 

 

The new tool ATASDAS, which greatly automates such analysis, implements heuristics and algorithms of graph theory in order to obtain the following attributes [from any source code written in current real time software languages: C, C++, Ada, Modula 2, in compliance with any of the major standards (IEC 61508, CENELEC 50128, DO178B, CEI 880...)]:

q       The software architecture;

q       The call graph of each parallel process the software;

q       The data dependency graph based on the critical inputs of each parallel process;

q       The data dependency graph for data generating the critical outputs of each parallel process;

q       The data flow graph of each parallel process;

q       The data sharing between each parallel process;

q       Appropriate metrics describing the incriminated software, both at system level and at component level (i.e. the call graph depth, the number of components, the inputs and outputs statistics per component, recursiveness, dynamic memory allocation, aliasing, non deterministic asynchronous data processing etc.).

Thus, this static analysis approach, which makes sense when it deals with the preliminary steps of a target analysis, also provides some key information about the relevant “real time information” needed for analyses dealing with real time, deterministic or synchronous systems (through the call graph and dependency graphs).

 

The availability of such a new tool helps real time software project managers and their quality counterpart to speed up the first analysis of failing source codes, without having the huge prior background, that SURLOG has acquired dealing with safety projects.

back