A Pragmatic View of Formal Methods: the Hi-Lite Project

Formal methods can be applied in a variety of different modes. Even if the notion of proving an entire program correct is of limited applicability, we can still achieve more modest goals, such as proving specific properties of programs, and in fact there are existing examples where such approaches have been successful. The inability of formal methods to carry 100% of the burden means that the overall development process must rely on a combination of tools and techniques spanning the range from formal proof to testing. We thus need tools, languages, and development environments that allow easy integration of these various approaches. The Hi-Lite project aims to meet this need.

[1]  Zhe Yang,et al.  Modular checking for buffer overflows in the large , 2006, ICSE.

[2]  John G. P. Barnes,et al.  High Integrity Software - The SPARK Approach to Safety and Security , 2003 .

[3]  Jeannette M. Wing,et al.  Behavioral Subtyping Using Invariants and Constraints , 2001, FME 2001.

[4]  Roderick Chapman Industrial experience with SPARK , 2000, ALET.

[5]  Jim Alves-Foss,et al.  The MILS architecture for high-assurance embedded systems , 2006, Int. J. Embed. Syst..

[6]  Michael D. Ernst,et al.  ICSE workshop on dynamic analysis (WODA 2003) , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[7]  Dawson R. Engler,et al.  A few billion lines of code later , 2010, Commun. ACM.

[8]  Jeff Sutherland,et al.  Manifesto for Agile Software Development , 2013 .

[9]  Virginie Wiels,et al.  Formal Verification of Avionics Software Products , 2009, FM.

[10]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[11]  Michael D. Ernst Static and dynamic analysis: synergy and duality , 2003 .

[12]  David J. Sielaff,et al.  Modular Bug-finding for Integer Overflows in the Large: Sound, Efficient, Bit-precise Static Analysis , 2009 .

[13]  Erhard Plödereder,et al.  Ada 2005 Reference Manual. Language and Standard Libraries - International Standard ISO/IEC 8652/1995 (E) with Technical Corrigendum 1 and Amendment 1 , 2007, Lecture Notes in Computer Science.