Contracts in practice
Eventi

Contracts in practice

17 APRILE 2015

Immagine di presentazione 1

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

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:
  • 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.
Dallo studio emerge, tra le altre cose, quanto segue: la percentuale degli elementi dei programmi che includono contratti è più del 33% per la maggior parte dei progetti, e tende ad essere stabile nel tempo; non c'è una forte preferenza per un particolare tipo di elemento nei contratti; i contratti sono abbastanza stabili rispetto alle implementazioni; l'ereditarietà non ha un'influenza significativa sugli andamenti qualitativi nell'uso dei contratti.



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.