Chief Chefs of Z to Alloy: Using a Kitchen Example to Teach Alloy with Z

Z is a well-defined and well-known specification language. Unfortunately, it takes significant expertise to use existing tools (such as theorem provers) to automatically check properties of Z specifications. Because Alloy is substantially similar to Z and the Alloy Analyzer offers a relatively simple method of model checking, we believe that Alloy should be largely employed in classes that teach Z. To this end, we present an online tutorial especially designed to help students transition from Z to Alloy. The tutorial includes both the classic Birthday Book example and a large real-world scenario based on a Kitchen Environment. Our experiences with novices studying the tutorial suggest that the tutorial helps students learn both Z and Alloy. In addition, novices can answer questions correctly about the approximately 500-line Kitchen Environment model after only a few hours of study.

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

[2]  Krysia Broda,et al.  Friendly e-tutor for natural deduction , 2006, FM 2006.

[3]  Sander Vermolen,et al.  Supporting Formal Method Teaching with Real-Life Protocols , 2006 .

[4]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

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

[6]  Dino Mandrioli Advertising Formal Methods and Organizing Their Teaching: Yes, but , 2004, TFM.

[7]  Sureyya Tarkan,et al.  The Formal Specification of a Kitchen Environment , 2009 .

[8]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[9]  D. Kolb Experiential Learning: Experience as the Source of Learning and Development , 1983 .

[10]  Roger deBry Learning exercises for the rest of the brain , 2004 .

[11]  Raymond T. Boute,et al.  Teaching Formal Methods , 2004, Lecture Notes in Computer Science.

[12]  Sylvia da Rosa Designing Algorithms in High School Mathematics , 2004, TFM.

[13]  Evert W. Beth,et al.  Mathematical Epistemology And Psychology , 1966 .

[14]  Jonathan Jacky,et al.  The Way of Z: Practical Programming with Formal Methods , 1996 .

[15]  Peter Pepper,et al.  Distributed Teaching of Formal Methods , 2004, TFM.

[16]  Tim Miller,et al.  Integrating Formal Specification and Software Verification and Validation , 2004, TFM.

[17]  Maria Montessori,et al.  The Montessori Method - Maria Montessori , 2007 .

[18]  Cn Dean,et al.  Motivating study of formal methods in the classroom , 2004 .

[19]  N. Enzer,et al.  Psychogenesis and the History of Science , 1990 .