Aims
Automation in the process of software development can result in significant gains in productivity. This course teaches a method - and associated toolkit - that supports such automation. The B-Method and B-Toolkit support formal specification, design, and code generation, as well as validation and verification.
Requirements
A working knowledge of discrete mathematics is assumed: Mathematics for Software Engineering would be a suitable preparation.
Objectives
At the end of the course, students will be able to construct large software designs using a layered approach, and carry out a complete development from abstract specifications to running C code. They will also be able to animate and validate specifications, generate software modules, and create design documentation.