Integrating ASMs into the Software Development Life Cycle

In this paper we show h o w t o i n tegrate the use of Gurevich's Abstract State Machines ASMs into a complete software development life cycle. We present a structured software engineering method which allows the software engineer to control eeciently the modular development and the maintenance of well documented, formally inspectable and smoothly modiiable code out of rigorous ASM models for requirement speciications. W e show that the code properties of interest like correctness, safety, liveness and performance conditions can be proved at high levels of abstraction by traditional and reusable mathematical arguments which|where needed|can be computer veriied. We also show that the proposed method is appropriate for dealing in a rigorous but transparent manner with hardware-software co-design aspects of system development. The approach is illustrated by developing a C ++ program for the production cell control problem posed in Lewerentz, Lindner 955. The program has been validated by extensive experimentation with the FZI production cell simulator in Karlsruhe and has been submitted for inspection to the Dagstuhl seminar on Practical Methods for Code Documentation and Inspection" May 1997.

[1]  Kirsten Winter,et al.  Model Checking for Abstract State Machines , 2008, J. Univers. Comput. Sci..

[2]  Egon Börger,et al.  Correctness of Compiling Occam to Transputer Code , 1996, Comput. J..

[3]  Egon Börger,et al.  Formal methods for industrial applications : specifying and programming the steam boiler control , 1996 .

[4]  Klaus Nökel,et al.  CSL: Controller synthesis and verification: A case study , 1995 .

[5]  David Lorge Parnas,et al.  Functional Documents for Computer Systems , 1995, Sci. Comput. Program..

[6]  Yuri Gurevich,et al.  The Semantics of the C Programming Language , 1992, CSL.

[7]  Egon Börger,et al.  A Practical Method for Rigorously Controllable Hardware Design , 1997, ZUM.

[8]  Igor Durdanovic,et al.  An Evolving Algebra Abstract Machine , 1995, CSL.

[9]  Egon Börger,et al.  Why Use Evolving Algebras for Hardware and Software Engineering? , 1995, SOFSEM.

[10]  Egon Börger,et al.  The WAM - Definition and Compiler Correctness , 1995, Logic Programming: Formal Methods and Practical Applications.

[11]  Wolfgang Ahrendt,et al.  Reasoning about Abstract State Machines: The WAM Case Study , 1997, J. Univers. Comput. Sci..

[12]  Yuri Gurevich,et al.  The Railroad Crossing Problem: An Experiment with Instantaneous Actions and Immediate Reactions , 1995, CSL.

[13]  Thomas Lindner,et al.  Task Description , 1995, Formal Development of Reactive Systems.

[14]  Charles Wallace,et al.  The semantics of the C++ programming language , 1995, Specification and validation methods.

[15]  Egon Börger,et al.  The bakery algorithm: yet another specification and verification , 1993, Specification and validation methods.

[16]  Constance L. Heitmeyer,et al.  Formal Methods: A Panacea or Academic Poppycock? , 1997, ZUM.

[17]  Yuri Gurevich,et al.  Evolving algebras 1993: Lipari guide , 1995, Specification and validation methods.

[18]  Constance L. Heitmeyer,et al.  Verifying SCR Requirements Specifications Using State Exploration , 1997 .

[19]  Elvinia Riccobene,et al.  Refining Abstract Machine Specifications of the Steam Boiler Control to Well Documented Executable Code , 1995, Formal Methods for Industrial Applications.

[20]  Cornelia Pusch,et al.  Verification of Compiler Correctness for the WAM , 1996, TPHOLs.

[21]  Jonathan P. Bowen,et al.  ZUM '97: The Z Formal Specification Notation , 1997, Lecture Notes in Computer Science.

[22]  Egon B Orger,et al.  A Mathematical Deenition of Full Prolog , 1994 .

[23]  Egon Börger Logic Programming: The Evolving Algebra Approach , 1994, IFIP Congress.

[24]  Yuri Gurevich Specification and validation methods , 1993, Specification and validation methods.

[25]  Claus Lewerentz,et al.  Formal Development of Reactive Systems: Case Study Production Cell , 1995 .

[26]  Egon Börger,et al.  Annotated bibliography on evolving algebras , 1995, Specification and validation methods.