A Technique for Using Model Checkers to Teach Formal Specifications

The difficulty of writing, reading, and understanding formal specifications is one of the main obstacles in adopting formal verification techniques such as model checking and runtime verification. Introducing concepts in formal methods in an undergraduate program is essential for training a workforce that can develop and test high-assurance systems. This paper presents educational outcomes and outlines an instructive component that can be used in an undergraduate course to teach formal approaches and languages. The component uses a model checker and a specification tool to teach Linear Temporal Logic (LTL), a specification language that is widely used in a variety of verification tools. The paper also introduces a novel technique that analyzes LTL specifications by using the SPIN model checker to elucidate the behaviors accepted by the specifications.

[1]  George S. Avrunin,et al.  PROPEL: an approach supporting property elucidation , 2002, ICSE '02.

[2]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[3]  Zohar Manna,et al.  Completing the Temporal Picture , 1989, Theor. Comput. Sci..

[4]  Fausto Giunchiglia,et al.  NUSMV: A New Symbolic Model Verifier , 1999, CAV.

[5]  Gary T. Leavens,et al.  A Simple and Practical Approach to Unit Testing: The JML and JUnit Way , 2002, ECOOP.

[6]  Gerard J. Holzmann Formal methods and software reliability , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[7]  OSCAR A. MONDRAGÓN,et al.  Supporting Elicitation And Specification Of Software Properties Through Patterns And Composite Propositions , 2004, Int. J. Softw. Eng. Knowl. Eng..

[8]  Anthony Hall,et al.  Seven myths of formal methods , 1990, IEEE Software.

[9]  George S. Avrunin,et al.  Patterns in property specifications for finite-state verification , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[10]  Salamah Salamah,et al.  Supporting Documentation for the SPS-Prospec Case Study , 2005 .

[11]  Ann Q. Gates,et al.  DynaMICs: Comprehensive Support for Run-Time Monitoring , 2001, RV@CAV.

[12]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[13]  Benjamin S. Bloom,et al.  Taxonomy of Educational Objectives: The Classification of Educational Goals. , 1957 .

[14]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.