Francesco Logozzo: Programmazione per Contratti e runtime checking in .NET con i CodeContracts

Sign in to queue

Description

Francesco Logozzo, ricercatore nel gruppo di ingegneria del software (RiSE) a Microsoft Research, offre una breve introduzione alla programmazione per contratti ed al progetto CodeContracts per .NET .

I CodeContracts permettono di specificare il comportamento del codice utilizzando il codice stesso.

 

Francesco ci spieghera’ (alla lavagna e con un demo di ispirazione ciclistica) come migliorare la qualita’ del codice e rendere il debugging piu’ efficace usando la libreria dei Contratti (inclusa in mscorlib 4.0) ed il runtime checker .

 

I CodeContracts possono essere scaricati con licenza industriale o accademica:

 

 

Il gruppo RiSE coordina la ricerca in ingegneria del software a Redmond negli USA.

The Research in Software Engineering team (RiSE) coordinates Microsoft's research in Software Engineering in Redmond, USA.

Embed

Download

Download this episode

The Discussion

  • User profile image
    smnbss1

    interessante, pero' vedere il debugger che salta dentro e fuori dalle funzione senza + un ordine preciso di esecuzione un po mi spaventa...

  • User profile image
    logozzo

    Grazie.

    In realta' l'ordine di valutazione e' ben preciso. Prima vengono valutate le precondizioni, poi il corpo del metodo, e quindi le postcondizioni. Quando fai l'override di un metodo, erediti anche la sua precondizione, che viene valutata prima dell'esecuzione del corpo del nuovo metodo, e la sua postcondizione, che viene valutata dopo. Il debugger ti permette di seguire la traccia d'esecuzione, e di vedere quale contratto e' violato. Nel mio esempio mi ha subito permesso di scoprire che la sottoclasse non si comporta "bene".

     

    Ciao,

  • User profile image
    smnbss1

    Si, capisco che l'ordine logico e' preciso, ma l'ordine di esecuzione nn rispetta + l'ordine di scrittura come siamo stati abituati fino ad oggi.

    Ad ogni modo, bel lavoro Smiley

Add Your 2 Cents