The objective of this experiment is to improve the quality of design and control of safety attributes in the development of safety critical software. This will be done by introducing formal specifications into the software development process. Features of the formal specification which contribute to improvement will be identified. Comparisons of data collected will be made and quantifiable benefits defined. Procedures will be developed to document the process and quality and cost metrics will be defined to set process improvement targets.
We propose to use the Abstract Machine Notation of the B Method supported by the B Toolkit supplied by B Core (UK). The project consists of GEC-Marconi Avionics, who are the Prime User. Praxis who are the main subcontractor and B Core(UK), who are the vendor providing the B technology, training courses and consultancy.
The B Toolkit is supplied by B Core (UK), Oxford. The B system is a complete system for computer aided development. The technology consists of
a) The B Method for software development, covering all tasks from high level specifications through design to detailed coding and maintenance. The method was invented by Jean Raymon Abrial.
b) The B Toolkit, providing extensive support for the use of the B Method.
c) The B Tool which is the common platform for the B Toolkit and provides a program based on a pattern matching and rule rewriting mechanism for the introduction, manipulation and analysis of formal objects.
The B Method is designed to provide a homogeneous language and a methodology for the formal specification, design and implementation of industrial scale software systems. The method allows the specification to be constructed and verified in an incremental way and existing specifications can be reused. It also promotes separate verification and proof by using semi hiding principles. The method uses the Abstract Machine Notation as the language for specification, design and implementation within the process.
The B Toolkit supports the method over the software development phases from specification to implementation. It comprises automatic and interactive theorem proving assistants and a set of software development tools: an abstract machine notation type checker, a specification animator and code generators integrated with the proof assistants.