Space Software Validation Using Abstract Interpretation

Space Software Validation Using Abstract Interpretation

SPACE SOFTWARE VALIDATION USING ABSTRACT INTERPRETATION Olivier Bouissou(1), Eric Conquet(2), Patrick Cousot(3), Radhia Cousot(3)(6), Jérôme Feret(3)(7), Khalil Ghorbal(1), Eric Goubault(1), David Lesens(4), Laurent Mauborgne(3), Antoine Miné(3)(6), Sylvie Putot(1), Xavier Rival(3)(7), Michel Turin(5) (1) CEA LIST, MeASI, Point Courrier 94, Gif-sur-Yvette, F-91191 France, Email: [email protected] (2) ESA - ESTEC, Noordwijk - The Netherlands, Email: [email protected] (3) ENS, DI, ENS, 45, rue d'Ulm, 75230 Paris Cedex 5, France, Email: FirstName.LastName @ens.fr (4) Astrium ST, 66, route de Verneuil, 78133 Les Mureaux, France, Email: [email protected] (5) GTI6, 33, avenue Kennedy, 91300 Massy, France, Email: [email protected] (6) CNRS, France (7)INRIA Paris-Rocquencourt, Domaine de Voluceau, 78153 Le Chesnay, France ABSTRACT a very effective way to show the presence of bugs, but is hopelessly inadequate for showing their absence. This paper reports the results of an ESA funded project One of the most promising technical axes practised on the use of abstract interpretation to validate critical since several years by ASTRIUM is the use of static real-time embedded space software. Abstract analysis [3]. INRIA has developed around 1993 a tool, interpretation is industrially used since several years, IABC, based on academic studies to detect run-time especially for the validation of the Ariane 5 launcher. errors (e.g., arrays out of bound, overflow, zero divide, However, the limitations of the tools used so far etc.); this tool has then been scaled for Ariane 5 ADA prevented a wider deployment. Astrium Space products, and industrialized by Polyspace Technologies Transportation, CEA, and ENS have analyzed the during the following years (now The MathWorks). performances of two recent tools on a case study This tool has provided some good help at that time and extracted from the safety software of the ATV: is still in use for all critical software developed by - ASTRÉE, developed by ENS and CNRS, to check ASTRIUM-ST. for run-time errors, But with this first generation of abstract interpretation- - FLUCTUAT, developed by CEA, to analyse the based static analysis tools, it remains difficult (indeed accuracy of numerical computations. impossible) to avoid false alarms with floating-point The conclusion of the study is that the performance of operations and iterative algorithms. So, the use of these this new generation of tools has dramatically increased techniques which was planned for the development of (no false alarms and fine analysis of numerical the ATV safety software (MSU software), has been precision). finally abandoned due to the high number of false alarms raised by the tool on floating-point operations. 1. INTRODUCTION "Space Software Validation using Abstract Interpretation" (SSVAI) is an ESA project which had As recent NASA mission failures illustrate, any single the objective to investigate the use of abstract error in critical software can have catastrophic interpretation-based static analysis techniques to consequences. More than half of all satellite failures improve the validation of space critical embedded from 2000 to 2003 involved software. Even though software applied to numerical algorithms for which failures are usually not advertised, some software bugs other tools have not provided satisfactory results. have become famous, such as the error in the MIM-104 Two tools have been studied: Patriot. - ASTRÉE: Analyse Statique de logiciels Temps- One use of abstract interpretation techniques is to RÉel Embarqués (Static Analysis of Real-Time improve the confidence and reduce the cost of software Embedded Software) [1,4]. This tool, developed by validation. Software validation is a difficult and costly the École Normale Supérieure and the CNRS, aims activity representing more than half of the total at automatically proving the absence of run-time development cost. Software validation is the last errors, such as division by zero, out of range array development step, but, unfortunately, testing and code indexes, arithmetic overflows, etc. review, the most widely deployed verification methods, - FLUCTUAT: This tool, developed by the CEA, suffer from severe shortcomings. Both methods are aims at analysing the numerical precision and very time consuming and labour intensive processes. stability of complex algorithms [5]. For most critical systems, 50% of the overall development costs are allocated to testing. In fact, it is not practically feasible to hunt down to the last bug. In short, as E. W. Dijkstra puts it: Program testing can be 2. WHAT IS ABSTRACT INTERPRETATION? - correctness (which excludes non exhaustive methods such as simulation, test, bounded model The formal verification of a program (and more checking, or syntactic pattern-matching), generally a computer system) consists in proving that - automation (which excludes model checking with its semantics (describing "what the program executions manual production of a program model and actually do") satisfies its specification (describing deductive methods where provers must be "what the program executions are supposed to do"). manually assisted), Abstract Interpretation [3] formalizes the idea that this - precision (which excludes general analysers which formal proof can be done at some level of abstraction would produce too many false alarms, i.e., where irrelevant details about the semantics and the spurious warnings about potential errors), specification are ignored. This amounts to proving that - scalability (for software of a few hundred thousand an abstract semantics satisfies an abstract specification. lines), Abstractions shall be sound (no conclusion derived - efficiency (with minimal space and time from the abstract semantics is wrong relative to the requirements allowing for rapid verification during program concrete semantics and specification). the software production process which excludes a Abstractions should also preferably be complete (no costly iterative refinement process). aspect of the semantics relevant to the specification is left out). In the considered applications, which tackle 3. RESULTS OF THE PROJECT undecidable program properties, completeness is impossible. Hence, the objective is to minimize false 3.1. Scope alarms on a specific family of programs while keeping a reasonable analysis cost. The programs studied in this project have been Abstract interpretation can be applied to the systematic automatically generated using proprietary tools familiar construction of methods and effective algorithms to to control engineers (such as MATLAB/SIMULINK or approximate undecidable or very complex problems in SCADE) from high-level specifications (such as computer science such that the semantics, the proof, systems of differential equations or synchronous the static analysis, the verification, the safety and the operator building blocks, which is equivalent to the use security of software or hardware computer systems. In of synchronous languages like Lustre). particular, static analysis by abstract interpretation, Such synchronous data flow specifications are quite which automatically infers dynamic properties of common in real-time safety-critical control systems computer systems, has been very successful these last developed for on-board flight software. Periodic years to automatically verify complex properties of synchronous programming perfectly matches the need real-time, safety-critical embedded systems. for the real-time integration of differential equations by Verifying the software specification of numerical forward fixed step numerical methods. The verification algorithms including iterative loops is considered a tools shall cope with this family of programs and the difficult problem. Formal specifications usually do not current status is the following: exist but implicit specifications can be used, such as - The Polyspace Verifier tool (The MathWorks) is the absence of run-time errors (overflows, etc.) or the currently used at Astrium SAS BU Space stability of numerical computations. Due to Transportation and other space industry but has undecidability issues, complete tools are generally shown some strong limitations. In fact, in order to impossible to design and tools may fail to prove (part limit the number of false alarms raised, the of) the specification. Soundness dictates that the tools analysis of floating-point number overflows had to raise alarms to signal all potential violations of the be disabled, which makes the approach much less specification. A spurious alarm reported by the tool interesting. when the specification is not actually violated is called - The ASTRÉE tool [1,4] (studied in this project) is a false alarm. a static program analyzer aiming at proving the However, static analysis tools producing very few or absence of run-time errors (RTE) in programs no false alarms have been designed and used in written in the C programming language. ASTRÉE industrial contexts for specific families of properties uses generalist abstractions (intervals, octagons, and programs. In all cases, abstract interpretation etc.) and specific abstractions which have been provides a systematic construction method based on the designed for the application domain (to handle effective approximation of the concrete semantics, filters, integrators, etc.). The proof that the which can be (partly) automated and/or formally software satisfies the implicit specification verified. (absence of RTE) is mathematically

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us