Software System Development Using the B-Method and B-Toolkit - COMP9116

Faculty: Faculty of Engineering

School: School of Computer Science and Engineering

Course Outline:

Campus: Kensington Campus

Career: Undergraduate

Units of Credit: 6

EFTSL: 0.12500 (more info)

Indicative Contact Hours per Week: 3

CSS Contribution Charge: 2 (more info)

Tuition Fee: See Tuition Fee Schedule

Further Information: See Class Timetable

View course information for previous years.


The B-Method is a rigorous mathematically based method for the development of reliable software. The method covers the complete software cycle from requirement s analysis through specification, design, implementation, testing, maintenance, and re-use. The B-Method is supported by the B-Toolkit: a collection tools of that provide for specification animation, proof obligation generation, theorem proving, configuration management, code generation, and documentation. The B-Method uses similar mathematical notation to Z, but does not use Z. Specifications are given in AMN (Abstract Machine Notation), which is a small abstract programmin g language. The B-Method is object based in the sense that systems of machines use a number of different forms of inheritance to control visibility and inherit operations. There is no dependence on a particular programming language, but the current code generator generates C.

This course will explore the use of the B-Method and the B-Toolkit. The topics covered will include: The Abstract Machine Notation; Machine Composition; Refinement; Implementation; The method of presentation will use case studies to present the method; laboratory exercises to use the tools; a major project to apply all aspects of the method, and use of the tools.
Computing Logo

Study Levels

UNSW Quick Links