Contracts in practice

Carlo A. Furia
Senior researcher at the Chair of Software Engineering, Department of Computer Science of ETH Zurich
DEIB - Conference Room
April 17th, 2015
2.30 pm
Contacts:
Matteo Giovanni Rossi
Research line:
Advanced software architectures and methodologies
Senior researcher at the Chair of Software Engineering, Department of Computer Science of ETH Zurich
DEIB - Conference Room
April 17th, 2015
2.30 pm
Contacts:
Matteo Giovanni Rossi
Research line:
Advanced software architectures and methodologies
Sommario
I contratti sono una forma di specifica formale leggera annegata nel codice dei programmi. Essendo essi parti eseguibili del codice, incoraggiano i programmatori a dedicare l'opportuna attenzione alle specifiche, ed aiutano a mantenere la consistenza tra specifica ed implementazione mentre il programma evolve.
Questo studio investiga come i contratti sono usati nella pratica dello sviluppo del software. Basandosi su una estesa analisi empirica di 21 progetti Eiffel, C# e Java che fanno uso di contratti, per un totale di più di 260 milioni di linee di codice su oltre 770 revisioni, questo studio analizza le seguenti (ed altre) domande:
Questo studio investiga come i contratti sono usati nella pratica dello sviluppo del software. Basandosi su una estesa analisi empirica di 21 progetti Eiffel, C# e Java che fanno uso di contratti, per un totale di più di 260 milioni di linee di codice su oltre 770 revisioni, questo studio analizza le seguenti (ed altre) domande:
- quali tipi di elementi (precondizioni, postcondizioni, invarianti di classe) sono più spesso usati nei contratti;
- come i contratti evolvono nel tempo;
- la relazione tra il cambiamento nell'implementazione e il cambiamento nei contratti;
- il ruolo dell'ereditarietà nel processo.
Biografia
Carlo A. Furia è senior researcher alla Chair of Software Engineering del Departiment of Computer Science dell'ETH di Zurigo.
Nella sua ricerca sviluppa modelli, tecniche, metodi e strumenti a supporto dell'analisi, dello sviluppo rigoroso, e della verifica del software e di sistemi software-intensive. Recentemente, il suo lavoro si è focalizzato sul come migliorare l'applicabilità in pratica dei metodi formali sfruttando semplici annotazioni nei programmi come i "contratti".
E' co-chair di SCORE (lo Student COntest on softwaRe Engineering), un evento di ICSE 2016. Ha conseguito il Dottorato in Informatica presso il Politecnico di Milano.
Nella sua ricerca sviluppa modelli, tecniche, metodi e strumenti a supporto dell'analisi, dello sviluppo rigoroso, e della verifica del software e di sistemi software-intensive. Recentemente, il suo lavoro si è focalizzato sul come migliorare l'applicabilità in pratica dei metodi formali sfruttando semplici annotazioni nei programmi come i "contratti".
E' co-chair di SCORE (lo Student COntest on softwaRe Engineering), un evento di ICSE 2016. Ha conseguito il Dottorato in Informatica presso il Politecnico di Milano.