JMOCHA: A Model Checking Tool that Exploits Design Structure
Abstract
Model checking is a practical tool for automated debugging of embedded software. In model checking, a high-level description of a system is compared against a logical correctness requirement to discover inconsistencies. Since model checking is based on exhaustive state-space exploration and the size of the state space of a design grows exponentially with the size of the description, scalability remains a challenge. We have thus developed techniques for exploiting modular design structure during model checking, and the model checker jMocha (Java MOdel-CHecking Algorithm) is based on this theme. Instead of manipulating unstructured state-transition graphs, it supports the hierarchical modeling framework of reactive modules. jMocha is a growing interactive software environment for specification, simulation and verification, and is intended as a vehicle for the development of new verification algorithms and approaches. It is written in Java and uses native C-code BDD libraries from VIS. jMocha offers: (1) a GUI that looks familiar to Windows/Java users; (2) a simulator that displays traces in a message sequence chart fashion; (3) requirements verification both by symbolic and enumerative model checking; (4) implementation verification by checking trace containment; (5) a proof manager that aids compositional and assume-guarantee reasoning; and (6) SLANG (Scripting LANGuage) for the rapid and structured development of new verification algorithms. jMocha is available publicly at; it is a successor and extension of the original Mocha tool that was entirely written in C.
BibTeX
@inproceedings{Alur-al:ICSE01,
author = {Rajeev Alur and
Luca de Alfaro and
Radu Grosu and
Thomas A. Henzinger and
M. Kang and
Christoph M. Kirsch and
Rupak Majumdar and
Freddy Y. C. Mang and
Bow{-}Yaw Wang},
title = {{JMOCHA:} A Model Checking Tool that Exploits Design Structure},
booktitle = {ICSE},
pages = {835--836},
publisher = {{IEEE} Computer Society},
year = {2001},
}