Rigorous Software Development

European Master in Software Engineering
Máster Universitario en Software y Sistemas

News

Lecturers

Manuel Carro, Julio Mariño.

Overview

Software is getting more and more complex and is becoming responsible for critical tasks. Therefore, any technology aimed at ensuring the reliability and quality of software will be increasingly relevant.

There are many ways to approach these goals. The declarative approach relies on languages and logics with a solid mathematical foundation. This includes specificacion languages (VDM, Z, B, Event-B, OBJ, Alloy, ...), functional programming languages (Haskell, Erlang, λ-calculi…), logic programming languages (Prolog, CLP, ASP,…) among others.

Some basic knowledge of logic and functional and logic programming is assumed as a prerequisite.

Some goals of the course are:

Material

General papers on formal methods

General references on logic

Any good book / class notes on first order logic will do. These are some reference we found useful in the past.

References / material on Event-B

Note: these references can be updated as the course proceeds. Classroom material (to be updated):

References on OBJ and algebraic specification

References on Z

References on declarative programming

Office hours

Every lecturer has six hours for supervision, usually four fixed ones and two more on demand:

Julio Mariño: TBD

Manuel Carro: TBD

Homework

This is a list of the pending homework with links to the supplementary material (when appropriate) plus dates to hand it in.

Software

  1. Event-B:
  2. Z

Tentative schedule (can be updated as the course proceeds)

Sep. 14: Presentation lecture
Sep. 21: General introduction to formal methods
Sep. 28: Lecture cancelled
Oct. 5: Event-B: philosophy and hands-on introduction (cars in a bridge, with proof obligations)
Oct. 12: Holidays
Oct. 19: Event-B: cars in a bridge, with proof obligations (cont.)
Oct. 26: Event-B: cars in a bridge, with proof obligations (cont.)
Nov. 2: Event-B: cars in a bridge, with proof obligations (cont.)
Nov. 9: Holidays
Nov. 16: Event-B: search in a vector, with proof obligations and code generation
Nov. 23: Event-B: summary of proof obligations
Nov. 30: Alloy and lightweight formal methods
Dic. 7: Maude and algebraic specifications
Dic. 14: Maude and algebraic specifications (cont.)
Dic. 21: Program verification
Dic. 28: Christmas holidays
Jan. 4: Christmas holidays
Jan. 11: Term paper presentations
Jan. 18: Term paper presentations

Mailing lists

The mailing list of the course is at http://clip.dia.fi.upm.es/cgi-bin/mailman/listinfo/rsd. (Most of) You have already been subscribed. If you have not, please subscribe. Announcements, etc. will go through this mailing list. Please check also that the address in the mailing list is one that you usually consult.

Last modified: Thu Nov 24 17:00:04 CET 2011