La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 – Modelli di fase d’analisi Ernesto Damiani Università degli Studi.

Presentazioni simili


Presentazione sul tema: "Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 – Modelli di fase d’analisi Ernesto Damiani Università degli Studi."— Transcript della presentazione:

1 Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 – Modelli di fase d’analisi Ernesto Damiani Università degli Studi di Milano Lezione 14 – Linguaggi di specifica formale

2 Specifica formale Spesso non è facile capire la semantica di un programma direttamente dal codice Serve la descrizione del comportamento che non è facile ottenere con i modelli visti in precedenza Esempio – Cosa fa questo programma: int f(int a) {int i,term,sum; term=1;sum=1; for (i=0;sum<=a;i++){ term=term+2; sum=sum+term:} return i; }

3 Linguaggi di specifica Sono linguaggi per la descrizione del comportamento dei programmi Possono essere usati in fase di analisi (specifica); più spesso si usano come documentazione di software scritto in linguaggi eseguibili Obiettivo: dimostrare formalmente che un programma ha o non ha una certa proprietà o comportamento – Esempio: esaurimento memoria

4 Il linguaggio Z Proposto da J. R. Abrial nel 1977, oggi uno standard ISO Utilizzato all’IBM per il progetto CICS Basato sulla notazione matematica degli insiemi e sulla logica del primo ordine

5 Definizione assiomatica in Z f N->N _________  a  N f(a)*f(a)<=a<(f(a)+1)(f(a)+1) f N->N corrisponde a int f(int ) ma dice anche che f non è definita sui negativi e che il valore di ritorno sarà sempre positivo aN f(a)*f(a)<=a<(f(a)+1)(f(a)+1) corrisponde al corpo della funzione, e fornisce una definizione non-costruttiva della funzione stessa la funzione è specificata tramite un invariante, cioè un predicato sempre vero

6 Un text editor: esempio di schema Z (1)

7 Un text editor: esempio di schema Z (2) Stato: contenuto della memoria del sistema Schema di stato: invarianti che riguardano lo stato

8 Schema di inizializzazione Stato iniziale del sistema In Z si chiama convenzionalmente Init ___ Init ____ Editor ___________ Left=right=<> Stato: Init include Editor nella parte dichiarativa. Gli invarianti di Editor si applicano anche a Init

9 Schemi operativi Gli schemi operativi modellano le variazioni degli stati FINE


Scaricare ppt "Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 – Modelli di fase d’analisi Ernesto Damiani Università degli Studi."

Presentazioni simili


Annunci Google