COMP31111: Verified Development (2012-2013)
It has been known for a long time that, in theory, the whole activity of system specification, refinement and implementation, could be integrated into a comprehensive mathematical theory and could be supported by industrial strength system development tools. However an actual realisation of this supposition was slow to appear, and the idea was not really made practical until the mid 1980s. Nowadays though, there are a number of tools that embody this idea, and the integration of various reasoning technologies into the process (these days often behind the scenes) is a fertile area of research. This course is an introduction to this methodology.
This course is an introduction to verified development, using the Perfect Developer tool from Eschertech, which allows the development of abstract models, and their translation and refinement into running Java code.
|Programme outcome||Unit learning outcomes||Assessment|
|A1 A3 B1 D6||Be familiar with informal and rigorous development.|
|A1 A3 B1 D6||Be familiar with model based refinement.|
|A1 A3 B1 D6||Have a knowledge of Perfect Developer.|
|A1 A3 B1 D6||Be able to design and build simple applications using Perfect Developer.|
|A1 A3 B1 D6||Have an appreciation of the significance of Perfect's verification conditions.|
Overview of informal and rigorous development.
Overview of model based refinement.
Basics of the Perfect language.
Practical development and refinement in Perfect.
More refinement theory.
The role of automated reasoning.
Prospects for the future.
There are no books specifically about Perfect Developer at present. Notes will be handed out in lectures, and are available on the course website, which also contains some suggestions for related reading.