Teaching Formal Methods for the Unconquered Territory

We summarise our experiences in teaching two formal methods courses at Pontificia Universidad Javeriana. The first course is a JML-based software engineering course. The second course is a model-driven software engineering course realised in the B method for software development. We explain how formal methods are promoted in Pontificia Universidad Javeriana, how we motivate students to embrace formal methods techniques, and how they are promoted through the presentation of motivating examples.

[1]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[2]  Jean-Raymond Abrial,et al.  Refinement, Decomposition, and Instantiation of Discrete Models: Application to Event-B , 2007, Fundam. Informaticae.

[3]  Bart Jacobs,et al.  Formal methods for smart cards: an experience report , 2005, Sci. Comput. Program..

[4]  MeyerBertrand,et al.  Design by Contract , 1997 .

[5]  J. Michael Spivey,et al.  An introduction to Z and formal specifications , 1989, Softw. Eng. J..

[6]  Camilo Rueda,et al.  A Case Study in JML-Assisted Software Development , 2009, Electron. Notes Theor. Comput. Sci..

[7]  Johannes Link Unit testing in Java , 2003 .

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

[9]  Andrei Voronkov,et al.  Handbook of Automated Reasoning: Volume 1 , 2001 .

[10]  Alan Robinson,et al.  The Inverse Method , 2001, Handbook of Automated Reasoning.

[11]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[12]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

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

[14]  Fabrice Bouquet,et al.  JML2B: Checking JML Specifications with B Machines , 2007, B.

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

[16]  Johannes Link,et al.  Unit Testing in Java: How Tests Drive the Code , 2003 .