Journal of Computer Science and Technology

, Volume 16, Issue 3, pp 251–262

A formal software development approach using refinement calculus

  • Wang Yunfeng 
  • Pang Jun 
  • Zha Ming 
  • Zhaohui Yang
  • Zheng Guoliang 


The advantage of COOZ (Complete Object-Oriented Z) is to specify large scale software, but it does not support refinement calculus. Thus its application is confined for software development. Including refinement calculus into COOZ overcomes its disadvantage during design and implementation. The separation between the design and implementation for structure and notation is removed as well. The the software can be developed smoothly in the same frame. The combination of COOZ and refinement calculus can build object-oriented frame, in which the specification in COOZ is refined stepwise to code by calculus. In this paper, the development model is established, which is based on COOZ and refinement calculus. Data refinement is harder to deal with in a refinement tool than ordinary algorithmic refinement, since data refinement usually has to be done on a large program component at once. As to the implementation technology of refinement calculus, the data refinement calculator is constructed and an approach for data refinement which is based on data refinement calculus and program window inference is offered.


formal development method refinement calculus formal specification object-oriented 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    de Bakker J Wet al. (eds.) InProc. REX Workshop on Stepwise Refinement on Distributed Systems, Lecture Notes in Computer Science 430, Springer-Verlag, 1989.Google Scholar
  2. [2]
    Hoare C A R, He J. The Weakest Prespecification.Fund. Inform. IX 1986, pp.51–84.MathSciNetGoogle Scholar
  3. [3]
    Jones C B, Shaw R C, Denvir T (eds.). In5th Refinement Workshop in Computing, Springer-Verlag, 1992.Google Scholar
  4. [4]
    Back R J R. On the correctness of refinement in program development [dissertation]. Report A-1978-4. Department of Computer Science, University of Helsinki, 1978.Google Scholar
  5. [5]
    Morris J M. A theoretical basis of stepwise refinement and programming calculus.Science of Computer Programming, 1987, 9(2): 287–306.MATHCrossRefMathSciNetGoogle Scholar
  6. [6]
    Morgan C C. The specification statement.ACM Transaction on Programming Language and Systems, July 1988, 10(3): 403–419.MATHCrossRefGoogle Scholar
  7. [7]
    Back R J R, von Wright J. Refinement calculus, Part I: Sequential programs. InREX Workshop for Refinement of Distributed Systems, Lecture Notes in Computer Science 430, Nijmegen, The Netherlands, Springer-Verlag, 1989.Google Scholar
  8. [8]
    Gardiner P H B, Morgan C. A single complete rule for data refinement.Formal Aspects of Computing, 1993, 5(4): 367–382.MATHCrossRefGoogle Scholar
  9. [9]
    Spivey J M. The Z Notation: A Reference Manual. Prentice-Hall, International Series in Computer Science, 2nd Edition, 1992.Google Scholar
  10. [10]
    Stepeney Set al. More powerful Z data refinement. InZUM’98: The Z Formal Specification Notation, 11th International Conference of Z Users, Bowen J P, Hinchey M G (eds.), September 1998, Proceedings, Lecture Notes in Computer Science 1493, Springer-Verlag, 1998.Google Scholar
  11. [11]
    Nellson D S. From Z to C: Illustration of a rigorous development method [dissertation]. PRG-79, Oxford University, Computing Laboratory, February, 1990.Google Scholar
  12. [12]
    King S. Z and the refinement calculus. In VDM and Z — Formal Methods in Software Development, Bjørner Det al. (eds.), Lecture Notes in Computer Science 428, VDM-Europe, Springer-Verlag, 1990, pp. 164–188. Also published as a Technical Monograph PRG-79, Oxford University, Computing Laboratory, February, 1990.Google Scholar
  13. [13]
    Morgan C C. Programming from Specifications. Prentice-Hall, International Series in Computer Science, 2nd Edition, 1994.Google Scholar
  14. [14]
    Yuan Xiaodong, Hu Deqiang, Xu Haoet al. COOZ: A complete object-oriented extension to Z.ACM Software Engineering Notes, 1998, 23(4): 78–81.CrossRefGoogle Scholar
  15. [15]
    Gardiner P H B, Morgan C. Data refinement of predicate transformers.Theoretical Computer Science, 1991, 87: 143–162.MATHCrossRefMathSciNetGoogle Scholar
  16. [16]
    J. von Wright. A lattice-theoretical base for program refinement [dissertation]. Abo Akademi University, SF-20500 Turku, Finland, Sept., 1990.Google Scholar
  17. [17]
    Rimvydas Ruksenas. A tool for data refinement. Technical Report, TUCS — Turku Centre for Computer Science, Number TUCS-TR-119, August, 1997.Google Scholar

Copyright information

© Science Press, Beijing China and Allerton Press Inc. 2001

Authors and Affiliations

  • Wang Yunfeng 
    • 1
    • 2
  • Pang Jun 
    • 1
  • Zha Ming 
    • 1
  • Zhaohui Yang
    • 1
  • Zheng Guoliang 
    • 1
  1. 1.State Key Laboratory for Novel Software TechnologyNanjing UniversityNanjingP.R. China
  2. 2.Meteorology CollegePLA University of Science and TechnologyNanjingP.R. China

Personalised recommendations