Correspondence

Journal of Computer Science and Technology

, Volume 16, Issue 3, pp 251-262

First online:

A formal software development approach using refinement calculus

  • Wang Yunfeng Affiliated withState Key Laboratory for Novel Software Technology, Nanjing UniversityMeteorology College, PLA University of Science and Technology
  • , Pang Jun Affiliated withState Key Laboratory for Novel Software Technology, Nanjing University
  • , Zha Ming Affiliated withState Key Laboratory for Novel Software Technology, Nanjing University
  • , Zhaohui YangAffiliated withState Key Laboratory for Novel Software Technology, Nanjing University
  • , Zheng Guoliang Affiliated withState Key Laboratory for Novel Software Technology, Nanjing University

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access

Abstract

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.

Keywords

formal development method refinement calculus formal specification object-oriented