• 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