Formal specification comprehension: the art of reading and writing z

Formal Methods have been developed to provide systematic and rigorous techniques for software development. They found their place in document-driven development processes as well as in the agile world. However, reading, understanding and working with a formal specification still turns out to be a real challenge. This paper tries to identify the underlying cause and argues that comprehensibility of a specification is one of the key factors. It presents some first findings of an extensive study investigating the readability of Z specifications and comes up with a set of recommendations in writing formal specifications so that the syntactic gap between the mathematics and the natural language requirements description can be bridged more easily.

[1]  Alexander M. Fedorec,et al.  Measuring the comprehensibility of Z specifications , 1998, J. Syst. Softw..

[2]  Paula Kotzé,et al.  What design heuristics may enhance the utility of a formal specification , 2002 .

[3]  Andreas Bollin Concept location in formal specifications , 2008, J. Softw. Maintenance Res. Pract..

[4]  Nick Battle,et al.  The overture initiative integrating tools for VDM , 2010, ACM SIGSOFT Softw. Eng. Notes.

[5]  Martin Loomes,et al.  Applying software metrics to formal specifications: a cognitive approach , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[6]  John Nicholls,et al.  Z notation , 1994 .

[7]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[8]  Susan Stepney,et al.  Z in practice , 1995, BCS practitioner series.

[9]  Andreas Bollin,et al.  Do you speak Z? Formal methods under the perspective of a cross-cultural adaptation problem , 2013, 2013 1st FME Workshop on Formal Methods in Software Engineering (FormaliSE).

[10]  Andrew M. Gravell,et al.  What is a Good Formal Specification? , 1990, Z User Workshop.

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

[12]  Donald MacKenzie,et al.  Mechanizing Proof: Computing, Risk, and Trust , 2001 .

[13]  Antoni Diller,et al.  Z - an introduction to formal methods , 1990 .

[14]  Wolfgang Mueller,et al.  An Introduction to Formal Methods , 2004 .

[15]  Andreas Bollin,et al.  Is There Evolution Before Birth? Deterioration Effects of Formal Z Specifications , 2011, ICFEM.

[16]  Peter Gorm Larsen,et al.  Learning by Doing: Practical Courses in Lightweight Formal Methods using VDM++ , 2006 .

[17]  Cliff B. Jones,et al.  Formal methods light , 1996, CSUR.