XFM: extreme formal method for capturing formal specification into abstract models

In this chapter we introduce an agile formal method (named XFM) based on extreme programming concepts to construct abstract models from a natural language specification of a complex system. Building formal models for verification purposes is being used in the industry for two different usage modes: (i) Descriptive Formal Models (DFM) are used to capture an implementation into an abstract model to submit to analysis by model checking tools, (ii) Prescriptive Formal Models (PFM) are used to capture natural language specifications into a formal model to analyze consistency of the specification and also as a reference model to compare a DFM against it. We propose XFM as a methodology to incrementally build a correct PFM from a natural language specification. We illustrate the benefits of the proposed methodology with the help of two examples: a control intensive traffic light controller, and the DLX pipeline. Our experiments show that this methodology not only constructs abstract models in sufficiently shorter time than the time taken in constructing ad hoc abstract models from implementation or specification, but also provides models that are constructively correct, closer to the intended specification and better structured.

[1]  Thomas A. Henzinger,et al.  Extreme Model Checking , 2003, Verification: Theory and Practice.

[2]  George S. Avrunin,et al.  PROPEL: an approach supporting property elucidation , 2002, ICSE '02.

[3]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[4]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[5]  Bob Bentley,et al.  Validating the Intel(R) Pentium(R) 4 microprocessor , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[6]  David L. Dill,et al.  Deriving a simulation input generator and a coverage metric from a formal specification , 2002, DAC '02.

[7]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[8]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[9]  Juan José Moreno-Navarro,et al.  Rapid prototyping and incremental evolution using SLAM , 2003, 14th IEEE International Workshop on Rapid Systems Prototyping, 2003. Proceedings..

[10]  Laurie A. Williams,et al.  The xp programmer: the few-minutes programmer , 2003, IEEE Software.

[11]  George S. Avrunin,et al.  Property specification patterns for finite-state verification , 1998, FMSP '98.

[12]  William L. Kleb,et al.  Exploring XP for Scientific Research , 2003, IEEE Softw..

[13]  Juan José Moreno-Navarro,et al.  Formal Extreme (and Extremely Formal) Programming , 2003, XP.

[14]  Helmut Veith,et al.  Executable Protocol Specification in ESL , 2000, FMCAD.

[15]  Alan J. Hu,et al.  Monitor-Based Formal Specification of PCI , 2000, FMCAD.

[16]  Jesper Gulmann Henriksen,et al.  Logics and Automata for Verification: Expressiveness and Decidability Issues , 2000 .

[17]  Bob Bentley Validating the Intel(R) Pentium(R) 4 microprocessor , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[18]  Juan José Moreno-Navarro,et al.  Formal Agility . How much of each ? , 2003 .

[19]  Donald C. Wells Extreme Programming: A gentle introduction , 2003 .