Implementing Feferman-Landin Logic. The objective of this project is to utilise computer based verification tools (such as PVS and Rewritting Logic) to develop a software engineering environment for specifying and verifying systems written in high-level programming languages such as Java, Scheme, and ML. The project will thus subtantially advance the use of formal computer based tools to develop reliable programs and specifications for life-critical systems. The project will also develop form ....Implementing Feferman-Landin Logic. The objective of this project is to utilise computer based verification tools (such as PVS and Rewritting Logic) to develop a software engineering environment for specifying and verifying systems written in high-level programming languages such as Java, Scheme, and ML. The project will thus subtantially advance the use of formal computer based tools to develop reliable programs and specifications for life-critical systems. The project will also develop formally
based interoperability between the PVS and Maude systems, two widely
used computer tools for reasoning about complex systems.Read moreRead less
Combining Time Bands and Teleo-Reactive Programs for Advanced Dependable Real-Time Systems. Society is becoming increasingly reliant on sophisticated real-time computer systems in applications ranging from car stability control to critical infrastructure, such as railway signalling systems. Further, there is a demand for ever greater automation and sophistication in the software controlling these systems. The research challenge in this project is to provide robust implementations of these system ....Combining Time Bands and Teleo-Reactive Programs for Advanced Dependable Real-Time Systems. Society is becoming increasingly reliant on sophisticated real-time computer systems in applications ranging from car stability control to critical infrastructure, such as railway signalling systems. Further, there is a demand for ever greater automation and sophistication in the software controlling these systems. The research challenge in this project is to provide robust implementations of these systems in a way that allows one assess their dependability.
Australia industry is actively working in these areas through companies like Ansaldo Australia, in automated railway systems, and Boeing Australia, in the defence sector.Read moreRead less
Software Quality Improvement Through Static Analysis and Annotation. Software forms the basis of critical infrastructure that supports industries such as electronic commerce. Flaws in the software can lead to failure of the overall system, or allow the security mechanisms of the software to be by-passed. This project is developing methods to improve the quality of software by finding common flaws that lead to security vulnerabilities or runtime failures. Within Australia, it is estimated that th ....Software Quality Improvement Through Static Analysis and Annotation. Software forms the basis of critical infrastructure that supports industries such as electronic commerce. Flaws in the software can lead to failure of the overall system, or allow the security mechanisms of the software to be by-passed. This project is developing methods to improve the quality of software by finding common flaws that lead to security vulnerabilities or runtime failures. Within Australia, it is estimated that there are approximately 75,000 software developers who make substantial use of C/C++ and who could benefit from the availability of better automatic static analysis tools to improve both the quality of the code they produce and their productivity.Read moreRead less
Derivation and timing analysis of concurrent real-time software. Safety-critical computer systems are commonly controlled by concurrent real-time software. Assurance of such systems requires rigorous methods for deriving the software and verifying its logical and timing correctness. This project will directly address this problem via a new paradigm for real-time programming that is based on a machine-independent concurrent real-time programming language, that explicitly represents timing deadlin ....Derivation and timing analysis of concurrent real-time software. Safety-critical computer systems are commonly controlled by concurrent real-time software. Assurance of such systems requires rigorous methods for deriving the software and verifying its logical and timing correctness. This project will directly address this problem via a new paradigm for real-time programming that is based on a machine-independent concurrent real-time programming language, that explicitly represents timing deadlines within programs. This allows a partitioning of the development process into a machine-independent phase that derives a program to meet a high-level specification, and a machine-dependent phase that checks that the timing deadlines within the generated machine code are guaranteed to be met.Read moreRead less
Building correct-by-construction distributed systems from specifications stating how agents' knowledge evolves over time. Many distributed computer system implementations fail to comply with their original informal requirement specification. These requirements typically refer to the migration of information through the system over time, but current specification languages are not rich enough to express such requirements on a sufficiently abstract level. This results in a huge error-provoking gap ....Building correct-by-construction distributed systems from specifications stating how agents' knowledge evolves over time. Many distributed computer system implementations fail to comply with their original informal requirement specification. These requirements typically refer to the migration of information through the system over time, but current specification languages are not rich enough to express such requirements on a sufficiently abstract level. This results in a huge error-provoking gap between the informal requirements and the starting point of formally verifiable development. To minimise this gap, we develop a particularly expressive specification language, a calculus for stepwise refinement from such specifications down to distributed systems, and an automated tool for checking and supporting refinement steps in the calculus.Read moreRead less
Compilation of Specifications. Computer software now controls critical systems worldwide. International standards require such programs to be produced from mathematically-precise specifications, but the techniques and tools involved are highly complex and unfamiliar to most programmers. This project will show how a tool already used by software developers, the program compiler, can be extended to undertake much of the task automatically. This will be done by devising a compilation strategy, b ....Compilation of Specifications. Computer software now controls critical systems worldwide. International standards require such programs to be produced from mathematically-precise specifications, but the techniques and tools involved are highly complex and unfamiliar to most programmers. This project will show how a tool already used by software developers, the program compiler, can be extended to undertake much of the task automatically. This will be done by devising a compilation strategy, based on program refinement theory, that automatically translates specification statements in programs into executable code. Such an outcome will ultimately improve the speed, accuracy and cost-effectiveness of critical software development.Read moreRead less