SOFTWARE ANALYSIS AND VERIFICATION
cod. 16434

Academic year 2008/09
1° year of course - Second semester
Professor
Academic discipline
Informatica (INF/01)
Field
Discipline informatiche
Type of training activity
Characterising
48 hours
of face-to-face activities
6 credits
hub:
course unit
in - - -

Learning objectives

<span class="datirigaalto"><span class="datirigaalto">The growing dependence of society on computer science<br />
applications causes the analysis and verification of the<br />
correctness of complex systems to increasingly represent<br />
a critical factor of the development process.<br />
The malfunctioning of systems, whether they are hardware,<br />
software or communication protocols, can involve<br />
considerable damage of every kind: from financial loss<br />
to loss of human life. Also, when the defects are not <br />
detected before the system is used,<br />
the application of corrective measures is, when<br />
possible, much more difficult and costly. Examples from the recent<br />
past include the millennium bug, the errors<br />
of some versions of the Pentium processor,<br />
N.Y. Bank's 32 billion dollar overdraft,<br />
the initial failure of the Ariane 5 carrier, and<br />
the fatal accidents of the Therac-25.<br />
<br />
The course intends to provide a first introduction to the<br />
techniques that are at the basis of automatic software<br />
analysis and computer assisted formal<br />
verification. </span></span>

Prerequisites

- - -

Course unit content

<span class="datiriga"><span class="datiriga">Introduction to software analysis and verification.<br />
Program specifications and properties.<br />
Floyd-Hoare logic and verification of the partial correctness of programs <br />
Total correctness of programs and termination analysis.<br />
Structured operational semantics.<br />
Abstract interpretation.<br />
Static program analysis. </span></span>

Full programme

- - -

Bibliography

<span class="datiriga"><span class="datiriga">G. Winskel, La semantica formale dei linguaggi di programmazione, UTET, 1999;<br />
M. Gordon, Specification and Verication I (lecture notes), 2003.<br />
G. Plotkin, A Structural Approach to Operational Semantics.</span></span>

Teaching methods

<span class="datirigaalto"><span class=""datirigaalto"">Individual or group project. Alternatively (for those who do not want to carry out a project), oral examination. </span></span>

Assessment methods and criteria

- - -

Other information

- - -