Formal Analysis of Software Models and Code

**Description:** *The course will focus on
formal analysis of software models and code. Particular attention will be paid
to the use of automated theorem-provers and model-checking
techniques for software models and code. Good working knowledge of
propositional and predicate logic is assumed.
*

**Prerequisite**: You must satisfy at least
one of the following:

·
Successful
completion of CS517 or (CS414 and CS514).

·
Industrial
software development experience.

·
Permission
of instructor.

france AT cs DOT colostate DOT edu

**Office
Hours:**

Tuesdays, Thursdays: 10AM – 11:30 AM

**When
and Where:**

CS Building Room 425

**Principles of Model Checking**, Christel Baier and Joost-Pieter Katoen, MIT Press.

The
following is a *plan*; information provided here is subject to change!

This is a seminar course. Papers and book chapters will be assigned to students to read, analyze and present to the class. Presentations will be structured as follows:

- Presentation ~50 minutes
- Questions to presenter ~5 minutes
- Open discussion ~15 minutes

Students that participate actively and constructively in the discussions will receive more marks for their seminar contributions than those that are passive. Students are strongly advised to note in summary form the questions they ask and the contributions they make in each class so that they have a record of their contributions that can be submitted to the lecturer before the start of the next class.

In some classes, students will be given a formal specification problem to work on in class. These classes will be designated as Formal Specification Studios. Students will work in groups of 2 to 3 students in a Formal Specification Studio. In the following class, students will present and discuss their solutions to the problem.

Each
student is expected to do a research report on a topic. Examples of topic areas
are given below:

- Formal analysis of UML models
- Formal runtime analysis of software
- Formal analysis of security properties
- Formal analysis in a multi-modeling approach
- Integrating formal analysis techniques in practical
development processes
- Using formal analysis techniques in a compositional,
agile modeling environment

Each
Student *must* discuss his/her topic with the lecturer and *must*
submit a research proposal for approval. The date for submission of research
proposals is *October 4, 2011*.

Marks
will be allocated as follows:

- Research Report: 50%
- Paper analysis and presentation: 30%
- Formal Specification Studios: 15%
- Discussion Participation: 5%

Project
proposal due date: **Thursday, October 4,
2011 by midnight**

Project
report due date: **TBD**

Reading
materials will be posted on RamCT.

Below
are links that provide useful resources on formal methods and links to formal analysis
tools that will be discussed in this class.

**Formal Methods Virtual Library****Formal Methods Guidebooks****Promela/Spin****The Java Modeling Language (JML)****Java Pathfinder****Blast****UPPAAL****Prism**

**Comments: myaddr
Last modified: August 22, 2011. **