4/21/20151 metodi formali nel software a.a.2013/2014 prof.anna labella

25
07/03/22 1 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

Upload: franca-romani

Post on 03-May-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 1

Metodi formali nel software

a.a.2013/2014

Prof.Anna Labella

Page 2: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

Cos’è l’informatica?

04/11/23 2

Tra analitico a priori (matematica) e sintetico a posteriori (scienze della

natura) . . . Dove collochiamo l'informatica?

Gilles Dowek (2013): informatica scienza analitica a posteriori.

Page 3: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 3

Research in Software Engineering (RiSE)

Microsoft's Research in Software Engineering in Redmond, USA. “Our mission is to advance the state of the art in SE, to bring those advances to Microsoft’s business, and to take care of those SE technologies that are critical to the company, but not inherently linked to particular products.”

Logic is the calculus of computation Amir Pnueli. RiSE understands the importance of logic and builds powerful inference engines that help understand complex systems.▪Tools: Z3 ...Projects: DKAL LAI L&F M3

Dal mondo dell’industria

Page 4: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 4

Questo insegnamento prevede un'introduzione ai metodi formali per la specifica,sviluppo e verifica di software

si propone di introdurre le principali metodologie formali,e mostrare come queste vengano applicatenel ciclo di vita del software

Libro di testo: non c’è un vero libro di testo; tutte le lezioni saranno a disposizioneindicazioni verranno date per i singoli argomentiUna linea di svolgimento si può trovare suUnderstanding formal methods J.-F. Monin Springer, ©2003Ma è molto più utile Logic in Computer Science Huth Ryan (2° edizione)

Page 5: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 5

•necessità di una formalizzazione dei requisiti per la produzione del software,

•il problema della formalizzazione, comunque necessaria per produrre software:

•tradurre requisiti espressi nel linguaggio corrente ed in forma vaga a condizioni per lo sviluppo del software

Page 6: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 6

• il problema di produrre un software sicuro nel senso dell'assoluta affidabilità:

• esempi di situazioni critiche

• economia della formalizzazione

Page 7: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 7

•da un linguaggio semi-formale e sostanzialmente grafico: statecharts e UML

•ad uno formale per “parlarne”.

•Poi bisogna scegliere il tipo di linguaggio con il quale conviene programmare ed in base a questo, cioè alle sue primitive

•farne un modello matematico.

Page 8: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 8

Oltre la formalizzazione, un metodo di prova

.

Page 9: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 9

cos’è un metodo?

Qualcosa che dà i mezzi per raggiungere un certo scopo

Esempio: la fisica

In informatica siamo ancora indietro

Page 10: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 10

Un esempio di metodo formale in azione: I compilatori

Un compilatore è un programma (o un insieme di programmi)che trasforma il codice sorgente (scritto in un certo linguaggio di programmazione)in un altro linguaggio creando un programma eseguibile

Un compilatore di solito esegue le seguenti operazioni: Analisi lessicale, preprocessing, parsing, analisi semantica,generazione del codice, ottimizzazione del codice.

Il contesto matematico? La teoria dei linguaggi formali

Page 11: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 11

Siamo a livello di metalinguaggio

A cosa porta l’uso di metodi formali?

Page 12: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 12

Introduzione di nuovi concetti

Ciclo di vita del software

Valutazione dei costi delle diverse fasi

Valutazione del costo degli errori di progettazione

Page 13: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 13

Prevenzione degli errori

Gli errori non sono soltanto costosi e difficili da correggere

Si possono dare situazioni critiche

Page 14: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 14

Il primo volo dell'Ariane 5 (Ariane 5 volo 501) svoltosi il 4 giugno 1996 fallì e il razzo si autodistrusse dopo 40 secondi dal lancio per via di un malfunzionamento del software di controllo, creato da uno dei più famosi bug della storia. Un dato a 64 bit in virgola mobile, probabilmente quello della pressione, venne convertito in un intero a 16 bit con segno, questa operazione causò una trap del processore (operazione errata): il numero in virgola mobile era troppo grande per poter essere rappresentato con un intero a 16 bit. Motivi di efficienza avevano spinto i progettisti a disabilitare il controllo software (scritto in Ada) sulle trap, anche se altre conversioni simili nel codice erano corrette. Questo errore scatenò una reazione a catena che causò poi la deviazione distruttiva del razzo a causa delle enormi forze aerodinamiche. Fu necessario quasi un anno e mezzo per capire quale fosse stato il malfunzionamento che aveva portato alla distruzione del razzo.

Page 15: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 15

Perché usare la formalizzazione?

A livello di specifica dei requisiti serve a capire quali siano effettivamente i bisogni e

a controllare la validità di certe proprietà che si richiedono (prototipazione veloce)

Page 16: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 16

Un linguaggio di specifica deve:

Essere formale

Basato su una teoria matematica (semantica)

Consentire dimostrazioni di proprietà

Permettere lo sviluppo di tools di supporto

Page 17: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 17

Vantaggi

La verifica delle proprietà da soddisfare viene fatta a priori

Non si tratta di un test per casi, ma di

una prova fornita insieme al software prodotto

Page 18: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 18

Difficoltà

Rigidità di una qualunque formalizzazione, soprattutto nei casi complessi

Acquisizione di un nuovo “linguaggio”

Lentezza iniziale

Page 19: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 19

Una panoramica Una teoria

Sistemi di transizioneTeoria degli insiemiAlgebra universaleLambda-calcolo, ecc.

Un campo di applicazioneData processingSistemi real-timeProtocolli, ecc.

Una comunità di utilizzo

Page 20: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 20

Metodi specifici e metodi generali Modellare i singoli aspetti del sistema

software: architetture, interfacce, comportamenti visibili, algoritmi…

Fornire un contesto matematico: si rinviano le scelte, ma spesso si è poco “metodologici”

Page 21: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 21

La nozione di “stato”

Stati espliciti

Stati impliciti

Page 22: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 22

Specifica e verifica

Ci occuperemo soprattutto di specifica

Rinviando la verifica ad un altro insegnamento

Ma tenendo conto delle due

Page 23: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

04/11/23 23

Grande varietà di teorie matematiche Metodi algebrici (semantica

denotazionale: i termini sono oggetti algebrici)

Metodi logici: si studiano proprietà

Processi (semantica operazionale: metafora della macchina astratta)

Page 24: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

Programma

Logiche temporali e Model checking Logica di Hoare e verifica di programmi

Sistemi reattivi e logica di Hennessy-

Milner Strutture d’ordine e semantica

denotazionale

04/11/23 24

Page 25: 4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella

…..esame

Un progetto in collaborazione e un colloquio orale su una parte del programma, oppure

Un colloquio orale su tutto il programma Il colloquio su una parte del programma

è alternativo ad una prova intermedia scritta

04/11/23 25