A Verification-Driven Approach to Traceability and Documentation for Auto-Generated Mathematical Software

Automated code generators are increasingly used in safety-critical applications, but since they are typically not qualified, the generated code must still be fully tested, reviewed, and certified. For mathematical and engineering software this requires reviewers to trace subtle details of textbook formulas and algorithms to the code, and to match requirements (e.g., physical units or coordinate frames) not represented explicitly in models or code. We support these tasks by using the AutoCert verification system to identify and verify mathematical concepts in the code, recovering verified traceability links between concepts, code, and verification conditions. We then exploit these links to construct a natural language report that provides a high-level structured argument explaining where the code uses specified assumptions and why and how it complies with the requirements. We have applied our approach to generate review documents for several sub-systems of NASA's Project Constellation.

[1]  Michal Antkiewicz,et al.  Automatic extraction of framework-specific models from framework-based application code , 2007, ASE.

[2]  Wojtek Kozaczynski,et al.  Automated support for legacy code understanding , 1994, CACM.

[3]  Ewen Denney,et al.  Annotation Inference for Safety Certification of Automatically Generated Code (Extended Abstract) , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[4]  Tom Erkkinen,et al.  Production Code Generation for Safety-Critical Systems , 2004 .

[5]  Julian Richardson,et al.  Traceability Through Automatic Program Generation , 2003 .

[6]  A. J. Ko Debugging by asking questions about program output , 2006, ICSE '06.

[7]  Hoyt Lougee,et al.  SOFTWARE CONSIDERATIONS IN AIRBORNE SYSTEMS AND EQUIPMENT CERTIFICATION , 2001 .

[8]  Ewen Denney,et al.  Generating customized verifiers for automatically generated code , 2008, GPCE '08.

[9]  Ingo Stürmer,et al.  Test suite design for code generation tools , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[10]  Ewen Denney,et al.  A generic annotation inference algorithm for the safety certification of automatically generated code , 2006, GPCE '06.

[11]  Ewen Denney,et al.  Correctness of Source-Level Safety Policies , 2003, FME.

[12]  Robert L. Constable,et al.  Verbalization of High-Level Formal Proofs , 1999, AAAI/IAAI.

[13]  Ewen Denney,et al.  Explaining Verification Conditions , 2008, AMAST.

[14]  D. Vallado Fundamentals of Astrodynamics and Applications , 1997 .

[15]  Michael R. Lowry,et al.  Explaining synthesized software , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).

[16]  Gilles Kahn,et al.  Extracting Text from Proofs , 1995, TLCA.

[17]  Michael R. Lowry,et al.  Amphion/NAV: deductive synthesis of state estimation software , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[18]  Stephan Schulz,et al.  E - a brainiac theorem prover , 2002, AI Commun..

[19]  Norman Wilde,et al.  The role of concepts in program comprehension , 2002, Proceedings 10th International Workshop on Program Comprehension.

[20]  Michael Goedicke,et al.  A specification language for static analysis of student exercises , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[21]  Elliot Soloway,et al.  Delocalized Plans and Program Comprehension , 1986, IEEE Software.

[22]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[23]  Xiaorong Huang,et al.  PROVERB– A System Explaining Machine-Found Proofs , 2019, Proceedings of the Sixteenth Annual Conference of the Cognitive Science Society.

[24]  Rocco Oliveto Traceability Management meets Information Retrieval Methods - Strengths and Limitations , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[25]  Ehud Reiter,et al.  Book Reviews: Building Natural Language Generation Systems , 2000, CL.

[26]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[27]  J. Kuipers Quaternions and Rotation Sequences , 1998 .

[28]  E. Denney,et al.  A Software Safety Certification Tool for Automatically Generated Guidance, Navigation and Control Code , 2008, 2008 IEEE Aerospace Conference.