Ricerca di contatti, progetti,
corsi e pubblicazioni

Software Analysis

Descrizione

COURSE OBJECTIVES

Developing software that behaves as expected is challenging not just in practice but also due to the intrinsic complexity of analyzing software properties automatically. Software analysis offers techniques that can work around these hurdles – guaranteeing correctness, or helping find incorrect behavior.

 

COURSE DESCRIPTION
This course describes software analysis techniques, highlights their theoretical underpinnings, and presents tools that make them available in practice to the working software engineer. The presentation includes techniques spanning different levels of correctness guarantees, automation, and applicability. The main covered topics are: axiomatic semantics and deductive verification; static analysis and type systems; model checking and predicate abstraction; symbolic execution; and dynamic analysis.

 

LEARNING METHODS
The course includes assignments where students apply open-source software analysis tools in practice – understanding the trade-offs involved in making software verification technology applicable in realistic settings.

 

EXAMINATION INFORMATION
The course's grade is entirely determined by assignments introduced during the course and about the main topics of the course.

 

REFERENCES

  • M. Huth, M. Ryan: Logic in computer science. 2nd edition, Cambridge University Press, 2004
  • F. Nielson, H. R. Nielson, C. Hankin: Principles of program analysis. Springer, 2004
  • A. R. Bradley, Z. Manna: The calculus of computation. Springer, 2007
  • B. Pierce: Types and programming languages. MIT Press, 2002
  • A. Zeller: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann, 2005

Persone

 

Furia C. A.

Docente titolare del corso

Bhatt B. N.

Assistente

Informazioni aggiuntive

Semestre
Primaverile
Anno accademico
2020-2021
ECTS
6
Lingua
Inglese
Offerta formativa
Master of Science in Software & Data Engineering, Corso di base, Corso, 1° anno
Dottorato in Scienze informatiche, Corso a scelta, Corso, 1° anno (4 ECTS)
Dottorato in Scienze informatiche, Corso a scelta, Corso, 2° anno (4 ECTS)