Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Ray Nickson is active.

Publication


Featured researches published by Ray Nickson.


australian software engineering conference | 2000

A survey of software development practices in the New Zealand software industry

Lindsay Groves; Ray Nickson; Greg Reeve; Steve Reeves; Mark Utting

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 software development, employing a wide range of software development techniques. Although our data are not sufficiently detailed to draw statistically significant conclusions, it appears that larger software development groups typically have more well-defined software development processes, spend proportionally more time on requirements gathering, and follow more rigorous testing regimes.


Formal Aspects of Computing | 1998

A Program Refinement Tool

David A. Carrington; Ian J. Hayes; Ray Nickson; Jim Welsh

Abstract. 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 features of the new tool are close integration of refinement and proof in a single tool (the same mechanism is used for both), good management of the refinement context, an extensible theory base that allows the tool to be adapted to new application domains, and a flexible user interface.


Science of Computer Programming | 1997

Supporting contexts in program refinement

Ray Nickson; Ian J. Hayes

A program can be refined either by transforming the whole program or by refining one of its components. The refinement of a component is, for the main part, independent of the remainder of the program. However, refinement 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 refinement can also take advantage of additional information, such as any precondition the component can assume. The aim of this paper is to introduce a technique, which we call program window inference, to handle such contextual information during derivations in the refinement calculus. The idea is borrowed from a technique, called window inference, for handling context in theorem proving. Window inference is the primary proof paradigm of the Ergo proof editor. This tool has been extended to mechanize refinement using program window inference


logic-based program synthesis and transformation | 1996

Refining Specifications to Logic Programs

Ian J. Hayes; Ray Nickson; Paul A. Strooper

The refinement calculus provides a framework for the stepwise development of imperative programs from specifications. In this paper we study a refinement calculus for deriving logic programs. Dealing with logic programs rather than imperative programs has the dual advantages that, due to the expressive power of logic programs, the final program is closer to the original specification, and each refinement step can achieve more. Together these reduce the overall number of derivation steps.


Lms Journal of Computation and Mathematics | 2002

ERGO 6: A GENERIC PROOF ENGINE THAT USES PROLOG PROOF TECHNOLOGY

Mark Utting; Peter J. Robinson; Ray Nickson

To support formal reasoning in mathematical and software engineering applications, it is desirable to have a generic prover that can be instantiated with a range of logics. This allows the prover to be applied to a wider variety of reasoning tasks than a fixed-logic prover. This paper describes the design principles and the architecture of the latest version of the Ergo proof engine, Ergo 6. Ergo 6 is a generic interactive theorem prover, similar to Isabelle, but with better support for proving schematic theorems with user-defined constraints, and with a different approach to handling variable scoping. A major theme of the paper is that Prolog implementation technology can be generalized to obtain efficient implementations of generic proof engines. This is demonstrated via a Qu-Prolog implementation of Ergo 6.


Theory and Practice of Logic Programming | 2002

A refinement calculus for logic programs

Ian J. Hayes; Robert Colvin; David Hemer; Paul A. Strooper; Ray Nickson

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 quantification, as well as specification constructs such as general predicates, assumptions and universal quantification. A declarative semantics is defined for this wide-spectrum language based on executions. Executions are partial functions from states to states, where a state is represented as a set of bindings. The semantics is used to define the meaning of programs and specifications, including parameters and recursion. To complete the calculus, a notion of correctness-preserving refinement over programs in the wide-spectrum language is defined and refinement laws for developing programs are introduced. The refinement calculus is illustrated using example derivations and prototype tool support is discussed.


logic-based program synthesis and transformation | 2004

Developing logic programs from specifications using stepwise refinement

Robert Colvin; Lindsay Groves; Ian J. Hayes; David Hemer; Ray Nickson; Paul A. Strooper

In this paper we demonstrate a refinement calculus for logic programs, which is a framework for developing logic programs from specifications. The paper is written in a tutorial-style, using a running example to illustrate how the refinement calculus is used to develop logic programs. The paper also presents an overview of some of the advanced features of the calculus, including the introduction of higher-order procedures and the refinement of abstract data types.


algebraic methodology and software technology | 1997

The Cogito Development System

Owen Traynor; Daniel Hazel; Peter Kearney; Andrew P. Martin; Ray Nickson; Luke Wildman

The Cogito system provides comprehensive support for the development of specifications written in the Sum language (a modular extension of Z). The tool-set provides technology to aid in the construction, analysis and development of Sum specifications. Ada code is the final result of a development in Cogito.


Archive | 1999

A survey of software requirements specification practices in the New Zealand software industry

Lindsay Groves; Ray Nickson; Greg Reeve; Steve Reeves; Mark Utting


FAC-RW'96 Proceedings of the BCS-FACS 7th conference on Refinement | 1996

A tool for developing correct programs by refinement

David A. Carrington; Ian J. Hayes; Ray Nickson; Jim Welsh

Collaboration


Dive into the Ray Nickson's collaboration.

Top Co-Authors

Avatar

Ian J. Hayes

University of Queensland

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Robert Colvin

University of Queensland

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Jim Welsh

University of Queensland

View shared research outputs
Top Co-Authors

Avatar

Owen Traynor

University of Queensland

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Lindsay Groves

Victoria University of Wellington

View shared research outputs
Top Co-Authors

Avatar

Daniel Hazel

University of Queensland

View shared research outputs
Researchain Logo
Decentralizing Knowledge