Learn More
We report on the software development techniques used in the New Zealand software industry, paying particular attention to requirements gathering. We surveyed a selection of software companies with a general questionnaire and then conducted in-depth interviews with four companies. Our results show a wide variety in the kinds of companies undertaking(More)
The refinement calculus for the development of programs from specifications is well suited to mechanised support. We review the requirements for tool support of refinement as gleaned from our experience with existing refinement tools, and report on the design and implementation of a new tool to support refinement based on these requirements. The main(More)
Existing refinement calculi provide frameworks for the stepwise development of imperative programs from specifications. This paper presents a refinement calculus for deriving logic programs. The calculus contains a wide-spectrum logic programming language, including executable constructs such as sequential conjunction, disjunction, and existential(More)
Note: Most SVRC technical reports are available via anonymous ftp, from ftp.cs.uq.edu.au in the directory /pub/SVRC/techreports. ABSTRACT We describe some of the technology we used to build a user interface for a programmable theorem prover. By separating the user interface from the application itself, it is possible to experiment with new interface(More)
In this paper an outline is given of an approach to formally reasoning about importation , parameterisation and instantiation of speciications written in a modular extension of the Z language (called Sum). Interpretation and instantiation of theories in rst order logic are well understood. We illustrate how to use these results directly to provide a(More)
A program can be reened either by transforming the whole program or by reening one of its components. The reenement of a component is, for the main part, independent of the remainder of the program. However, reenement of a component can depend on the context of the component for information about the variables that are in scope and what their types are. The(More)