Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoFranca Romani Modificato 9 anni fa
1
4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella
2
Cos’è l’informatica? 4/21/2015 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.
3
4/21/2015 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... Z3... Projects: DKAL LAI L&F M3 DKAL LAI L&F M3 Dal mondo dell ’ industria
4
4/21/2015 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 applicate nel ciclo di vita del software Libro di testo: non c ’ è un vero libro di testo; tutte le lezioni saranno a disposizione indicazioni verranno date per i singoli argomenti Una linea di svolgimento si può trovare su Understanding formal methods J.-F. Monin Springer, ©2003 Ma è molto più utile Logic in Computer Science Huth Ryan (2° edizione)
5
4/21/2015 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
6
4/21/2015 6 il problema di produrre un software sicuro nel senso dell'assoluta affidabilità: esempi di situazioni critiche economia della formalizzazione
7
4/21/2015 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.
8
4/21/2015 8 Oltre la formalizzazione, un metodo di prova.
9
4/21/2015 9 cos ’ è un metodo? Qualcosa che dà i mezzi per raggiungere un certo scopo Esempio: la fisica In informatica siamo ancora indietro
10
4/21/2015 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
11
4/21/2015 11 Siamo a livello di metalinguaggio A cosa porta l’uso di metodi formali?
12
4/21/2015 12 Introduzione di nuovi concetti Ciclo di vita del software Valutazione dei costi delle diverse fasi Valutazione del costo degli errori di progettazione
13
4/21/2015 13 Prevenzione degli errori Gli errori non sono soltanto costosi e difficili da correggere Si possono dare situazioni critiche
14
4/21/2015 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.
15
4/21/2015 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)
16
4/21/2015 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
17
4/21/2015 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
18
4/21/2015 18 Difficoltà Rigidità di una qualunque formalizzazione, soprattutto nei casi complessi Acquisizione di un nuovo “linguaggio” Lentezza iniziale
19
4/21/2015 19 Una panoramica Una teoria Sistemi di transizione Teoria degli insiemi Algebra universale Lambda-calcolo, ecc. Un campo di applicazione Data processing Sistemi real-time Protocolli, ecc. Una comunità di utilizzo
20
4/21/2015 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”
21
4/21/2015 21 La nozione di “ stato ” Stati espliciti Stati impliciti
22
4/21/2015 22 Specifica e verifica Ci occuperemo soprattutto di specifica Rinviando la verifica ad un altro insegnamento Ma tenendo conto delle due
23
4/21/2015 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)
24
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 4/21/2015 24
25
…..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 4/21/2015 25
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.