Integrating Formal Specification and Software Verification and Validation

It is not surprising that students are unconvinced about the benefits of formal methods if we do not show them how these methods can be integrated with other activities in the software lifecycle. In this paper, we describe an approach to integrating formal specification with more traditional verification and validation techniques in a course that teaches formal specification and specification-based testing. This is accomplished through a series of assignments on a single software component that involves specifying the component in Object-Z, validating that specification using inspection and a specification animation tool, and then testing an implementation of the specification using test cases derived from the formal specification.

[1]  Steve Reeves,et al.  Teaching formal methods lite via testing , 2001, Softw. Test. Verification Reliab..

[2]  David Garlan,et al.  Making formal methods education effective for professional software engineers , 1995, Inf. Softw. Technol..

[3]  Mark Saaltink,et al.  The Z/EVES System , 1997, ZUM.

[4]  Steve Schneider The B-method - an introduction , 2001, The cornerstones of computing series.

[5]  Jonathan P. Bowen,et al.  To formalize or not to formalize , 1996 .

[6]  David Lorge Parnas,et al.  "Formal methods" technology transfer will fail , 1998, J. Syst. Softw..

[7]  Roger Duke,et al.  Formal Object Oriented Specification Using Object-Z , 2000 .

[8]  Paul A. Strooper,et al.  Possum: an animator for the SUM specification language , 1997, Proceedings of Joint 4th International Computer Science Conference and 4th Asia Pacific Software Engineering Conference.

[9]  Tim Miller,et al.  A framework and tool support for the systematic testing of model-based specifications , 2003, TSEM.

[10]  Paul A. Strooper,et al.  Requirements engineering and verification using specification animation , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).

[11]  Hossein Saiedian,et al.  Teaching formal methods early in the software engineering cirriculum , 2000, Thirteenth Conference on Software Engineering Education and Training.

[12]  Paul Strooper,et al.  From Object‐Z specifications to ClassBench test suites , 2000 .

[13]  Jeff Magee,et al.  Concurrency - state models and Java programs , 2006 .

[14]  David A. Carrington,et al.  A Framework for Specification-Based Testing , 1996, IEEE Trans. Software Eng..