NASA Formal Methods

Volume 6617 of the series Lecture Notes in Computer Science pp 58-72

Bakar Kiasan: Flexible Contract Checking for Critical Systems Using Symbolic Execution

  • Jason BeltAffiliated withKansas State University
  • , John HatcliffAffiliated withKansas State University
  • , RobbyAffiliated withKansas State University
  • , Patrice ChalinAffiliated withConcordia University
  • , David HardinAffiliated withRockwell Collins Advanced Technology Center
  • , Xianghua DengAffiliated withPenn State University Harrisburg

* Final gross prices may vary according to local VAT.

Get Access


Spark, a subset of Ada for engineering safety and security-critical systems, is designed for verification and includes a software contract language for specifying functional properties of procedures. Even though Spark and its static analysis components are beneficial and easy to use, its contract language is almost never used due to the burdens the associated tool support imposes on developers. In this paper, we present: (a) SymExe techniques for checking software contracts in embedded critical systems, and (b) Bakar Kiasan, a tool that implements these techniques in an integrated development environment for Spark. We describe a methodology for using Bakar Kiasan that provides significant increases in automation, usability, and functionality over existing Spark tools, and we present results from experiments on its application to industrial examples.