next up previous contents
Next: When might someone be Up: Overview Previous: Overview

Challenges of model-checking program source code

Modern computing applications increasingly require concurrent/distributed software systems that are extremely reliable. Unfortunately, current software validation techniques, such as inspections and testing, are failing to provide high levels of assurance of correctness for these systems due to system size and complexity as well as the fundamental difficulties of reasoning about state/event sequences in concurrent behavior.

Model-checking techniques (now widely used for hardware verification) hold promise for establishing crucial behavioral properties of complex software because they can automatically check to see if an abstract finite-state transition system model of the software conforms to a given state/event sequence property. If the model fails to satisfy the property, the model-checker gives a counter-example -- a path through the model's transitions that violates the property. This can be used to locate and correct the corresponding software defect.

Although it holds great promise, we believe that there are four problems that are currently preventing model-checking technology from being successfully applied to software.

Although Bandera provides multiple forms of tool support to address the problems above, we believe that each of these problems is significant and it is unclear at present exactly which technologies and forms of tool support are best suited for solving these problems. Thus, the ultimate aim of the Bandera project is not to provide ``silver bullet'' solutions to the problems above, but, instead, to provide several different forms of tool support along with an open infrastructure that allows for easier experimentation with new techniques.


next up previous contents
Next: When might someone be Up: Overview Previous: Overview

Roby Joehanes
Wed Mar 7 18:30:51 CST 2001