DocumentCode :
3068776
Title :
jMocha: a model checking tool that exploits design structure
Author :
Alur, R. ; de Alfaro, L. ; Grosu, R. ; Henzinger, T.A. ; Kang, M. ; Kirsch, C.M. ; Majumdar, R. ; Mang, F. ; Wang, B.Y.
Author_Institution :
Dept. of Electr. Eng. & Comput. Sci., California Univ., Berkeley, CA, USA
fYear :
2001
fDate :
12-19 May 2001
Firstpage :
835
Lastpage :
836
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.
Keywords :
Java; computer aided software engineering; embedded systems; formal verification; program debugging; software tools; GUI; Java; SLANG; assume-guarantee reasoning; automated debugging; compositional reasoning; embedded software; enumerative model checking; formal specification; formal verification algorithms; hierarchical modeling framework; high-level system description; implementation verification; inconsistencies discovery; interactive software environment; jMocha; logical correctness requirement; message sequence charts; model checking tool; modular design structure; native C-code BDD libraries; proof manager; publicly available software; reactive modules; requirements verification; scalability; scripting language; simulation; state-space exploration; structured algorithm development; symbolic model checking; trace containment checking; trace display; Algorithm design and analysis; Binary decision diagrams; Debugging; Embedded software; Java; Scalability; Software algorithms; Software libraries; State-space methods; Vehicles;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering, 2001. ICSE 2001. Proceedings of the 23rd International Conference on
ISSN :
0270-5257
Print_ISBN :
0-7695-1050-7
Type :
conf
DOI :
10.1109/ICSE.2001.919196
Filename :
919196
Link To Document :
بازگشت