1 / 2

Automating the Documentation and Certification of NASA Software

Automating the Documentation and Certification of NASA Software. PROBLEM. SOLUTION.

lane
Download Presentation

Automating the Documentation and Certification of NASA Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Automating the Documentation and Certification of NASA Software PROBLEM SOLUTION • Traditional certification techniques are laborious and time-consuming. Formal certification uses theorem provers to automatically generate certificates of correctness in the form of formal mathematical proofs, but • Can we trust the theorem-prover? • How do we make these proofs human-readable? • How do we relate these proofs to the program? • Generate textual explanations of code safety from auto-generated proof obligations and trace these back to the program. These proof obligations refer to an explicit safety policy that can be varied. For example: • Array-bounds safety, • Variable initialization-before-use, • Variable write limits for volatile memory, … Specification Program …. (1) a[10] (2) for i = 1 to 10 (3) a[i] = i …. Synthesis System Program …. a[10] for i = 1 to 10 a[i] = i …. Safety Policy (All array accesses must be safe) TECHNOLOGY Labeler • We have developed a generic safety document Generator that automatically generates explanations of program safety from verification conditions (VCs), formulas produced by a Verification Condition Generator (VCG). • It is generic in the sense that new safety policies can easily be added to the system. • A significant step in the direction of merging formal certification with traditional certification. VCG Safety Document Generator VCs SAFETY REPORT ................... The access a[i] at line 3 is safe because for each value of the index I from 1 to 10, the access is within the bounds of the array declared at line 1. ……………… OK Automated Theorem Prover

  2. Explanation of Accomplishment • POC:Ewen Denney (ASE Group, Code IC, edenney@email.arc.nasa.gov) • Collaborator: Ram Prasad Venkatesan (Univ. Illinois at Urbana-Champaign) • Funding: ITSR, QSS Summer Intern Program • Background: The ASE group is developing automated program synthesis systems for the application domains of data analysis (AutoBayes) and state estimation (AutoFilter). We have previously extended these systems with an automated certification capability, based on mathematical logic, for various safety policies. However, it is very difficult for humans to interpret the resulting proofs and then relate them to the original program. We have addressed this by incorporating a safety documentation feature. • Accomplishment: We have developed a tool that can automatically generate textual explanations of safety with respect to a given safety policy for auto-generated code. Our tool currently generates safety documents for two safety policies: array-bounds safety and variable initialization-before-use. Our framework, however, is generic in that new safety policies can easily be incorporated. Another increment over previous work is that we now provide a mechanism to trace proofs of program safety back to the program itself. A paper describing the work was presented 07/13/2004 at Algebraic Methodology and Software Technology 2004 (AMAST’04) in Stirling, Scotland. • Shown: The code generated by the synthesis engine is labeled with statement numbers and this is fed to the verification condition generator (VCG) along with a safety policy. The VCG generates verification conditions (VCs), which are passed to the document generator. The safety document generator then generates textual explanations of safety from these VCs. Finally, these VCs are checked automatically by a theorem prover. • Benefits: This technology has the potential to increase confidence in the use of code generators within and outside NASA. Auto-generated code, in addition to a certificate of correctness (w.r.t. user-defined notions of safety) will come with a document containing human-readable explanation as to why it is correct. This approach is a significant step in the direction of merging formal certification with traditional certification.

More Related