Tutorial at ETAPS 2004:

Model Checking Software Using The Bogor Framework

Matthew B. Dwyer, John Hatcliff, and Robby
SAnToS Laboratory, Department of Computing and Information Sciences
Kansas State University

The Bogor Framework is a highly customizable and modular model checking framework aimed to ease the development of robust and efficient domain-specific model checkers for verification of dynamic and concurrent software. It provides a rich and extensible modeling language including features that allow for dynamic creation of objects and threads, garbage collection, dynamic dispatch of methods, and exception handling.

The extensible modeling language allows user-defined abstract data types and abstract operations as first class constructs. This is particularly useful when customizing Bogor to a particular family of software artifacts. Furthermore, its open modular design eases the task of customization to accomodate, for example, variations in scheduling policies, search modes for state exploration, state encodings, and checkers for specification languages.

Bogor employs state-of-the-art reduction techniques such as collapse compression, heap symmetry, thread symmetry, and partial-order reductions. Bogor has been successfully customized for ecient verification of realistic Java programs in the context of the Bandera project and real-time avionic systems in the context of the Cadena project.

The Bogor project site contains more information about Bogor including a freely available distribution, supporting documentation, related research papers and talks, and an example repository.

The tutorial will show how to customize Bogor to model check a particular family of software artifacts with examples drawn from standard Java libraries and avionic systems from Boeing.