The paper introduces the B-Technologies, a mathematically based formal method and a tool-set for computer aided software engineering. The B-Technologies (comprising three components-the B-Method, the B-Tool and the B-Toolkit) have been designed to scale up formal methods for practical application. The B-Method and the B-Toolkit are described in this paper. The B-Method is designed to provide a notation and a methodology for the formal specii-cation, design, implementation and maintenance of industrial-scale software systems. The features of incremental construction of layered software as well as its incremental veriica-tion have been guiding principles in the development of the B-Method. The method uses J-R Abrial's Abstract Machine Notation (AMN) as the language for speciication, design and implementation within the software process. AMN is is based on an extension of Dijkstra's guarded command notation, with built-in structuring mechanisms for the construction of large systems. The B-Toolkit supports the method over the entire spectrum of activities from speciication through design and implementation into maintenance. The B-Toolkit comprises automatic and interactive theorem-proving assistants, a proof printer and a set of software development tools: an AMN syntax & type checker, a speciication animator and generators promoting an object oriented approach at all stages of development, and the re-use of speciication models/software modules. All tools are integrated with the proof assistants into a window-based development environment.
[1]
J. R. Abrial.
A Refinement Case Study (using the Abstract Machine Notation)
,
1991
.
[2]
Matthew K. O. Lee,et al.
Engineering Real Software Using Formal Methods
,
1991
.
[3]
Babak Dehbonei,et al.
Error-free software development for critical systems using the B-Methodology
,
1992,
[1992] Proceedings Third International Symposium on Software Reliability Engineering.
[4]
Babak Dehbonei,et al.
Formal specification in the development of industrial applications: Subway speed control system
,
1992,
FORTE.
[5]
Jean-Raymond Abrial.
A Formal Approach To Large Software Construction
,
1989,
MPC.
[6]
E. Zermelo.
Untersuchungen über die Grundlagen der Mengenlehre. I
,
1908
.
[7]
P. Chapront.
VITAL CODED PROCESSOR AND SAFETY RELATED SOFTWARE DESIGN
,
1992
.
[8]
Jean-Raymond Abrial.
On Constructing Large Software Systems
,
1992,
IFIP Congress.
[9]
Carroll Morgan,et al.
Programming from specifications
,
1990,
Prentice Hall International Series in computer science.
[10]
Naïma Brown,et al.
A Proof Environment for Concurrent Programs
,
1993,
FME.
[11]
Cliff B. Jones,et al.
Software development - a rigorous approach
,
1980,
Prentice Hall international series in computer science.
[12]
Brian Ritchie,et al.
Invariants, Frames, and Postconditions: A Comparison of the VDM and B Notations
,
1995,
IEEE Trans. Software Eng..