A formal software development approach based on COOZ and refinement calculus

Including refinement calculus into COOZ complements its disadvantage during design and implementation. The separation between design and implementation for construct and notation is removed as well. Then the software can be developed smoothly in the same frame. There is no corresponding object oriented construct in existing refinement calculus. The combination of COOZ and refinement calculus can build an object oriented frame in which the specification in COOZ is refined stepwise to code by calculus. Two development models are discussed which are based mainly on COOZ and the refinement calculus respectively. The first model is first discussed and then the data refinement and operation refinement is analyzed by example. The two methods of operation refinement for OO formal specification are outlined, and the frame transition rule from COOZ to C++ is examined.

[1]  Susan Stepney,et al.  Object Orientation in Z , 1992, Workshops in Computing.

[2]  Joseph M. Morris,et al.  A Theoretical Basis for Stepwise Refinement and the Programming Calculus , 1987, Sci. Comput. Program..

[3]  Carroll Morgan,et al.  The specification statement , 1988, TOPL.

[4]  Carroll Morgan,et al.  Data Refinement of Predicate Transformers , 1991, Theor. Comput. Sci..

[5]  Li Yong,et al.  COOZ: a complete object-oriented extension to Z , 1998, SOEN.