Checking Strong Specifications Using an Extensible Software Model Checking Framework

The use of assertions to express correctness properties of programs is growing in practice. Assertions provide a form of checkable redundancy that can be very effective in finding defects in programs and in guiding developers to the cause of a defect. A wide variety of assertion languages and associated validation techniques have been developed, but run-time monitoring is commonly thought to be the only practical solution.

[1]  Martin Gogolla,et al.  Validating UML Models and OCL Constraints , 2000, UML.

[2]  Robert W. Floyd,et al.  Assigning meaning to programs , 1967 .

[3]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, Electron. Notes Theor. Comput. Sci..

[4]  Mark Lillibridge,et al.  Extended static checking for Java , 2002, PLDI '02.

[5]  Gary T. Leavens,et al.  How the design of JML accommodates both runtime assertion checking and formal verification , 2003, Sci. Comput. Program..

[6]  Greg Gagne Concurrent Programming: The Java Programming Language , 2001, Scalable Comput. Pract. Exp..

[7]  Heinrich Hußmann,et al.  Modular architecture for a toolset supporting OCL , 2000, Sci. Comput. Program..

[8]  Doug Lea Concurrent Programming in Java. Second Edition: Design Principles and Patterns , 1999 .

[9]  Sarfraz Khurshid,et al.  An analyzable annotation language , 2002, OOPSLA '02.

[10]  M. Robby,et al.  Bogor : An Extensible and Highly Modular Model Checking Framework , 2003 .

[11]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[12]  David S. Rosenblum A Practical Approach to Programming With Assertions , 1995, IEEE Trans. Software Eng..

[13]  Matthew B. Dwyer,et al.  Bogor: an extensible and highly-modular software model checking framework , 2003, ESEC/FSE-11.

[14]  Klaus Havelund,et al.  Model checking programs , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[15]  Matthew B. Dwyer,et al.  A Framework for Parallel Adaptive Grid Simulations , 1997, Concurrency Practice and Experience.

[16]  Matthew B. Dwyer,et al.  Exploiting Object Escape and Locking Information in Partial-Order Reductions for Concurrent Object-Oriented Programs , 2004, Formal Methods Syst. Des..

[17]  Scott D. Stoller Domain partitioning for open reactive systems , 2002, ISSTA '02.

[18]  Matthew B. Dwyer,et al.  Space-Reduction Strategies for Model Checking Dynamic Software , 2003, SoftMC@CAV.

[19]  Matthew B. Dwyer,et al.  Automated environment generation for software model checking , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[20]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[21]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[22]  Yoonsik Cheon,et al.  A Runtime Assertion Checker for the Java Modeling Language (JML) , 2003, ICSE 2003.

[23]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[24]  Matthew B. Dwyer,et al.  Space Reductions for Model Checking Quasi-Cyclic Systems , 2003, EMSOFT.

[25]  Matthew B. Dwyer,et al.  Verifying Atomicity Specifications for Concurrent Object-Oriented Software Using Model-Checking , 2004, VMCAI.

[26]  Bart Jacobs,et al.  The LOOP Compiler for Java and JML , 2001, TACAS.