This paper demonstrates a literate programming style that emphasises the close interleaving of pr... more This paper demonstrates a literate programming style that emphasises the close interleaving of program modules with their formal specifications, as supported by the UQ2 multilingual syntax-directed editor. The body of the paper is a formally documented module from UQ2's own implementation.
A specification of a software program, hardware component, or system, is a description of what th... more A specification of a software program, hardware component, or system, is a description of what the system is required to do without describing how it is to be done. Specifications provide the necessary details for system developers, suppliers, users and regulators to understand and agree upon the requirements of a system. It is therefore vital that specifications are clear, concise, complete, and are free of ambiguity and inconsistency. Specifications are usually expressed using a combination of informal natural language descriptions, diagrams, and formal mathematical techniques. The degree to which formal mathematics is used depends on the nature of the application and the criticality of the function being described. In industries where the cost of a system or software failure is high, such as national defence and government, banking, transport, energy, and communication, and some manufacturing industries, formal specification is recommended because it offers greater clarity and consistency, and moreover, formal specification are machine readable, allowing some automated checking to be applied. However, poorly written formal specifications can be less useful than informal specifications if they are unreadable (or not clear), or if they are overly large or complex (or not concise), making it hard to determine whether they are consistent or complete. In particular, if the system itself is large or complex, or it features multiple and diverse aspects of behaviour, it can be difficult to capture all aspects of its behaviour clearly and concisely in a monolithic formal model, or within a single formal notation. In many cases this is because the modeling approach may be particularly suited to some aspects of the system but not to others. The widely accepted solution to this problem is to use diverse modeling techniques to specify the different aspects of the system from different viewpoints. This results in a number of view specifications that taken together make up the complete specification of the system. The thesis introduces structuring mechanisms for the formal specification language Z that allow the view specifications of a system to be described, combined and reused. Specification encapsulation and parameter abstraction and application are explored along with object-oriented concepts such sub-typing and sub-classing. Two case studies, which are based on a language-based editor and a database system, are provided to illustrate how the techniques developed in this thesis may be used
A specification of a software program, hardware component, or system, is a description of what th... more A specification of a software program, hardware component, or system, is a description of what the system is required to do without describing how it is to be done. Specifications provide the necessary details for system developers, suppliers, users and regulators to understand and agree upon the requirements of a system. It is therefore vital that specifications are clear, concise, complete, and are free of ambiguity and inconsistency. Specifications are usually expressed using a combination of informal natural language descriptions, diagrams, and formal mathematical techniques. The degree to which formal mathematics is used depends on the nature of the application and the criticality of the function being described. In industries where the cost of a system or software failure is high, such as national defence and government, banking, transport, energy, and communication, and some manufacturing industries, formal specification is recommended because it offers greater clarity and co...
The Australian Standard for safety-critical systems development, Def(Aust) 5679, was first releas... more The Australian Standard for safety-critical systems development, Def(Aust) 5679, was first released in 1998. As part of the release of Issue 2 (Department of Defence 2008) of the Standard, guidance material has been prepared to assist those who need to apply the Standard. The guidance is made up of three main parts: a case study that demonstrates how the Standard can be applied to an example safety critical system, Issues Guidance Papers that further explain key concepts or requirements of the Standard, and Data Item Descriptions (DIDs) that, for each of the documents required by the Standard, describe how the document is to be structured. This paper describes the guidance material that was prepared for Issue 2 of the Standard.
Abstract. The refinement calculus is a well-established theory for formal development of imperati... more Abstract. The refinement calculus is a well-established theory for formal development of imperative program code and is supported by a number of automated tools. Via a detailed case study, this article shows how refinement theory and tool support can be extended for a program with real-time constraints. The approach adapts a timed variant of the refinement calculus and makes corresponding enhancements to a theoremprover based refinement tool. Key words: software engineering — real-time programming — formal methods — refinement — verification — tool support 1
Most SVRC technical reports are available via anonymous ftp, from svrc.it.uq.edu.au in the direct... more Most SVRC technical reports are available via anonymous ftp, from svrc.it.uq.edu.au in the directory /pub/techreports. Abstracts and compressed postscript les are available via Abstract This paper gives an overview of a case study in fully formal development from high level speciication to executable code using the Cogito formal development system. The case study demonstrates a signiicant advance in integrated support for fully formal development.
Abstract: s and compressed postscript les are available via http://svrc. it. uq. edu. au Supporti... more Abstract: s and compressed postscript les are available via http://svrc. it. uq. edu. au Supporting Contexts in the Sequential Real-Time Renement Calculus Luke Wildman and Ian Hayes Abstract. Program window inference provides support for contextual information ...
In this paper we present a formal model of Java concurrency using the Object-Z specification lang... more In this paper we present a formal model of Java concurrency using the Object-Z specification language. This model captures the Java thread synchronisation concepts of locking, blocking, waiting and notification. In the model we take a viewpoints approach, first capturing the role of the objects and threads, and then taking a system view where we capture the way the objects and threads cooperate and communicate. As a case study, we then use Object-Z inheritance to integrate the model with the classical producer-consumer system to create a specification directly incorporating the Java concurrency constructs.
The Australian Standard for safety-critical systems development, Def(Aust) 5679, was first releas... more The Australian Standard for safety-critical systems development, Def(Aust) 5679, was first released in 1998. As part of the release of Issue 2 (Department of Defence 2008) of the Standard, guidance material has been prepared to assist those who need to apply the Standard. The guidance is made up of three main parts: a case study that demonstrates how the Standard can be applied to an example safety critical system, Issues Guidance Papers that further explain key concepts or requirements of the Standard, and Data Item Descriptions (DIDs) that, for each of the documents required by the Standard, describe how the document is to be structured. This paper describes the guidance material that was prepared for Issue 2 of the Standard.
Abstract: s and compressed postscript les are available via http://svrc. it. uq. edu. au Supporti... more Abstract: s and compressed postscript les are available via http://svrc. it. uq. edu. au Supporting Contexts in the Sequential Real-Time Renement Calculus Luke Wildman and Ian Hayes Abstract. Program window inference provides support for contextual information ...
CiteSeerX - Document Details (Isaac Councill, Lee Giles): Abstract. SCOOP is a concurrent program... more CiteSeerX - Document Details (Isaac Councill, Lee Giles): Abstract. SCOOP is a concurrent programming language with a new semantics for contracts that applies equally well in concurrent and sequential contexts. SCOOP eliminates race conditions and atomicity violations by ...
This paper demonstrates a literate programming style that emphasises the close interleaving of pr... more This paper demonstrates a literate programming style that emphasises the close interleaving of program modules with their formal specifications, as supported by the UQ2 multilingual syntax-directed editor. The body of the paper is a formally documented module from UQ2's own implementation.
A specification of a software program, hardware component, or system, is a description of what th... more A specification of a software program, hardware component, or system, is a description of what the system is required to do without describing how it is to be done. Specifications provide the necessary details for system developers, suppliers, users and regulators to understand and agree upon the requirements of a system. It is therefore vital that specifications are clear, concise, complete, and are free of ambiguity and inconsistency. Specifications are usually expressed using a combination of informal natural language descriptions, diagrams, and formal mathematical techniques. The degree to which formal mathematics is used depends on the nature of the application and the criticality of the function being described. In industries where the cost of a system or software failure is high, such as national defence and government, banking, transport, energy, and communication, and some manufacturing industries, formal specification is recommended because it offers greater clarity and consistency, and moreover, formal specification are machine readable, allowing some automated checking to be applied. However, poorly written formal specifications can be less useful than informal specifications if they are unreadable (or not clear), or if they are overly large or complex (or not concise), making it hard to determine whether they are consistent or complete. In particular, if the system itself is large or complex, or it features multiple and diverse aspects of behaviour, it can be difficult to capture all aspects of its behaviour clearly and concisely in a monolithic formal model, or within a single formal notation. In many cases this is because the modeling approach may be particularly suited to some aspects of the system but not to others. The widely accepted solution to this problem is to use diverse modeling techniques to specify the different aspects of the system from different viewpoints. This results in a number of view specifications that taken together make up the complete specification of the system. The thesis introduces structuring mechanisms for the formal specification language Z that allow the view specifications of a system to be described, combined and reused. Specification encapsulation and parameter abstraction and application are explored along with object-oriented concepts such sub-typing and sub-classing. Two case studies, which are based on a language-based editor and a database system, are provided to illustrate how the techniques developed in this thesis may be used
A specification of a software program, hardware component, or system, is a description of what th... more A specification of a software program, hardware component, or system, is a description of what the system is required to do without describing how it is to be done. Specifications provide the necessary details for system developers, suppliers, users and regulators to understand and agree upon the requirements of a system. It is therefore vital that specifications are clear, concise, complete, and are free of ambiguity and inconsistency. Specifications are usually expressed using a combination of informal natural language descriptions, diagrams, and formal mathematical techniques. The degree to which formal mathematics is used depends on the nature of the application and the criticality of the function being described. In industries where the cost of a system or software failure is high, such as national defence and government, banking, transport, energy, and communication, and some manufacturing industries, formal specification is recommended because it offers greater clarity and co...
The Australian Standard for safety-critical systems development, Def(Aust) 5679, was first releas... more The Australian Standard for safety-critical systems development, Def(Aust) 5679, was first released in 1998. As part of the release of Issue 2 (Department of Defence 2008) of the Standard, guidance material has been prepared to assist those who need to apply the Standard. The guidance is made up of three main parts: a case study that demonstrates how the Standard can be applied to an example safety critical system, Issues Guidance Papers that further explain key concepts or requirements of the Standard, and Data Item Descriptions (DIDs) that, for each of the documents required by the Standard, describe how the document is to be structured. This paper describes the guidance material that was prepared for Issue 2 of the Standard.
Abstract. The refinement calculus is a well-established theory for formal development of imperati... more Abstract. The refinement calculus is a well-established theory for formal development of imperative program code and is supported by a number of automated tools. Via a detailed case study, this article shows how refinement theory and tool support can be extended for a program with real-time constraints. The approach adapts a timed variant of the refinement calculus and makes corresponding enhancements to a theoremprover based refinement tool. Key words: software engineering — real-time programming — formal methods — refinement — verification — tool support 1
Most SVRC technical reports are available via anonymous ftp, from svrc.it.uq.edu.au in the direct... more Most SVRC technical reports are available via anonymous ftp, from svrc.it.uq.edu.au in the directory /pub/techreports. Abstracts and compressed postscript les are available via Abstract This paper gives an overview of a case study in fully formal development from high level speciication to executable code using the Cogito formal development system. The case study demonstrates a signiicant advance in integrated support for fully formal development.
Abstract: s and compressed postscript les are available via http://svrc. it. uq. edu. au Supporti... more Abstract: s and compressed postscript les are available via http://svrc. it. uq. edu. au Supporting Contexts in the Sequential Real-Time Renement Calculus Luke Wildman and Ian Hayes Abstract. Program window inference provides support for contextual information ...
In this paper we present a formal model of Java concurrency using the Object-Z specification lang... more In this paper we present a formal model of Java concurrency using the Object-Z specification language. This model captures the Java thread synchronisation concepts of locking, blocking, waiting and notification. In the model we take a viewpoints approach, first capturing the role of the objects and threads, and then taking a system view where we capture the way the objects and threads cooperate and communicate. As a case study, we then use Object-Z inheritance to integrate the model with the classical producer-consumer system to create a specification directly incorporating the Java concurrency constructs.
The Australian Standard for safety-critical systems development, Def(Aust) 5679, was first releas... more The Australian Standard for safety-critical systems development, Def(Aust) 5679, was first released in 1998. As part of the release of Issue 2 (Department of Defence 2008) of the Standard, guidance material has been prepared to assist those who need to apply the Standard. The guidance is made up of three main parts: a case study that demonstrates how the Standard can be applied to an example safety critical system, Issues Guidance Papers that further explain key concepts or requirements of the Standard, and Data Item Descriptions (DIDs) that, for each of the documents required by the Standard, describe how the document is to be structured. This paper describes the guidance material that was prepared for Issue 2 of the Standard.
Abstract: s and compressed postscript les are available via http://svrc. it. uq. edu. au Supporti... more Abstract: s and compressed postscript les are available via http://svrc. it. uq. edu. au Supporting Contexts in the Sequential Real-Time Renement Calculus Luke Wildman and Ian Hayes Abstract. Program window inference provides support for contextual information ...
CiteSeerX - Document Details (Isaac Councill, Lee Giles): Abstract. SCOOP is a concurrent program... more CiteSeerX - Document Details (Isaac Councill, Lee Giles): Abstract. SCOOP is a concurrent programming language with a new semantics for contracts that applies equally well in concurrent and sequential contexts. SCOOP eliminates race conditions and atomicity violations by ...
Uploads
Papers