CS389

Formal Software Development

Spring Semester 2008


Course Organisation/Dates

Course Aims

Lectures

Labs

Coursework

Exams

Resource Materials


WeekFiles for viewing/download

Additional HandoutComment
1 Lecture 1 Lec 1 pdf

lec1VM.mch

lec1VM2.mch

lec1VM3.mch

lec1VM3_simplified.mch

lec1PaperRound.mch

Introduction and AMN constructs
2 Walkthrough lecture 2 walk2.pdf Supporting slides walk2.pdf

Lecture 2 Lec 2 pdf

CoffeeClub.mch

CoffeeClubV1.mch

CoffeeClubV2.mch

CoffeeClubV3.mch

CoffeeClubV4.mch

School.mch

Relations and Functions
3 (stable 28/01/08 ) Lecture 3 Lec 3 pdf wk3strengtheningpreforcard.mch

Arrays and Introduction to Verification
4 (stable 13/02/07) Lecture 4wk4 pdf

We also started to look at structuring machines Case study based on structuring in a B machine

These machines are referred to in the slides PaperRound.mch

These machines were used when discussing structuring: FemaleTracker_wk4eg.mch

MaleTracker_wk4eg.mch

Marriage_wk4eg.mch

Types_wk4eg.mch

OverallSpec_wk4eg.mch

B machines to experiment with in a proof and slides on verifying parameterised machines as shown in PaperRound machine

5 (stable 14/02/07) Lecture 5wk5 pdf Machines used in class to illustrate include proof obligations.week5includepogmachines.doc.pdf Structuring (SEES,INCLUDES) and Proof obligations related to structuring.
6 Walkthrough lecture 3 walk2.pdf Supporting slides wk6 walk2.pdf

Lecture 6 (Wednesday)wk5 pdf

These machines are used in the walkthrough MaxOfSet.mch

MaxSoFar_1.ref

Team.mch

TeamR.ref

The following files are available for more examples of refinement used in the lecture in week 6 Milk Round Development

Introduction to Refinement. Sample Solution from lecture - TeamR2.ref

7 Walkthrough of an implementationwalkthrough wk6 pdf

Introduction to loops via an examplewk7 loop example using in the class pdf

Walkthrough sources FragileStack.mch

FragileStackI.imp

Stack.mch

RobustStack.mch

RobustStackI.imp

Walkthrough solutions StackI.imp

Implementations/Interfaces and Code Generation
8 There were no lectures in week 8 - cancelled due to illness. However, we did turn it into a lab where we looked at the word tracker example. See under the lab section. None The focus of this week was on loops in the lab
9 This week we will be looking to formalise the proof obligations for loops. None None
10 This week we will be finishing the course by looking at how to review B specifications. We will also finish up with more examples of structuring in order to achieve this. None None
Please email me if you have difficulty obtaining the files.

Go to the University of Surrey's Home Page Hosted by Computing @ Surrey This page is maintained by Helen Treharne.