53
6. Modellare la specifica Come descrivere cosa Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 6. Modelli 1 / 49

Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Embed Size (px)

Citation preview

Page 1: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

6. Modellare la specificaCome descrivere cosa

Andrea Polini

Ingegneria del SoftwareCorso di Laurea in Informatica

(Ingegneria del Software) 6. Modelli 1 / 49

Page 2: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Sommario

1 Specifiche - generalità

2 Modelli OperazionaliData Flow Diagram (DFD)Finite State Machines (FSM)Petri Nets (PN)

3 Modelli DescrittiviDiagrammi Entità-RelazioneSpecifiche logicheSpecifiche algebriche

(Ingegneria del Software) 6. Modelli 2 / 49

Page 3: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Materiale di studio

Carlo Ghezzi, Mehdi Jazayeri, Dino MandrioliFondamenti di Ingegneria del Software, 2a Ed. ItalianaPrentice Hall, 2004(Capitolo 5)

(Ingegneria del Software) 6. Modelli 3 / 49

Page 4: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Specifiche - generalità

Sommario

1 Specifiche - generalità

2 Modelli OperazionaliData Flow Diagram (DFD)Finite State Machines (FSM)Petri Nets (PN)

3 Modelli DescrittiviDiagrammi Entità-RelazioneSpecifiche logicheSpecifiche algebriche

(Ingegneria del Software) 6. Modelli 4 / 49

Page 5: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Specifiche - generalità

Generalità

Una specifica termine piuttosto generale utilizzato in differenti fasi dellaproduzione del software.

In generale una specifica fornisce una precisa definizione dellecaratteristiche del “manufatto” che deve essere realizzato nelle fasisuccessive, fino a giungere all’implementazione.

Specifica dei requisiti contiene dunque una definizione dellecaratteristiche e delle funzionalità attese dal cliente.

(Ingegneria del Software) 6. Modelli 5 / 49

Page 6: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Specifiche - generalità

Il problema della specifica

Specifica dei requisiti in linguaggio naturale presenta diverseproblematiche e difficoltà di verifica.

linguaggio tecnicoambiguitàsinonimicompletezzainconsistenzacomprensibilità...

Il problema del significato

Pensate alle differenze con specifiche matematiche (e.g. addizione)

(Ingegneria del Software) 6. Modelli 6 / 49

Page 7: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Specifiche - generalità

Formalismi

Formalismo: notazione con precisa sintassi e sematica

Specifiche formali vengono definite attraverso l’uso di notazioni formali

Vantaggi principalicomprensione ?ambiguità ?completezza ?inconsistenza ?

Verifica formale: dato un formalismo ed una specifica formale èpossibile verificare esattamente se alcune proprietà valgono oppure nodirettamente “ragionando” sul modello.

(Ingegneria del Software) 6. Modelli 7 / 49

Page 8: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Specifiche - generalità

Specificheformali, informali, semiformali

Specifiche formali sono tipicamente costose da definire. In alcuni casipuò comunque essere utile poter avere specifiche più semplici ecomprensibili ad un più ampio “pubblico”

Si distingue dunque tra:Formalisemiformaliinformali

(Ingegneria del Software) 6. Modelli 8 / 49

Page 9: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Specifiche - generalità

SpecificheOperazionali vs. Descrittive

Le specifiche si distinguono in due grandi categorie:operazionali: descrivono un sistema attraverso il comportamentonecessario a raggiungere gli obiettividescrittive: descrivono proprietà del sistema che devono esserevere

Un esempio dal mondo matematico.

Un esempio nel mondo “informatico”

Come al solito le distinzioni non sono sempre nette!

(Ingegneria del Software) 6. Modelli 9 / 49

Page 10: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Specifiche - generalità

SpecificheOperazionali vs. Descrittive

Le specifiche si distinguono in due grandi categorie:operazionali: descrivono un sistema attraverso il comportamentonecessario a raggiungere gli obiettividescrittive: descrivono proprietà del sistema che devono esserevere

Un esempio dal mondo matematico.

Un esempio nel mondo “informatico”

Come al solito le distinzioni non sono sempre nette!

(Ingegneria del Software) 6. Modelli 9 / 49

Page 11: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Specifiche - generalità

SpecificheOperazionali vs. Descrittive

Le specifiche si distinguono in due grandi categorie:operazionali: descrivono un sistema attraverso il comportamentonecessario a raggiungere gli obiettividescrittive: descrivono proprietà del sistema che devono esserevere

Un esempio dal mondo matematico.

Un esempio nel mondo “informatico”

Come al solito le distinzioni non sono sempre nette!

(Ingegneria del Software) 6. Modelli 9 / 49

Page 12: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Specifiche - generalità

SpecificheOperazionali vs. Descrittive

Le specifiche si distinguono in due grandi categorie:operazionali: descrivono un sistema attraverso il comportamentonecessario a raggiungere gli obiettividescrittive: descrivono proprietà del sistema che devono esserevere

Un esempio dal mondo matematico.

Un esempio nel mondo “informatico”

Come al solito le distinzioni non sono sempre nette!

(Ingegneria del Software) 6. Modelli 9 / 49

Page 13: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali

Sommario

1 Specifiche - generalità

2 Modelli OperazionaliData Flow Diagram (DFD)Finite State Machines (FSM)Petri Nets (PN)

3 Modelli DescrittiviDiagrammi Entità-RelazioneSpecifiche logicheSpecifiche algebriche

(Ingegneria del Software) 6. Modelli 10 / 49

Page 14: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali

Modelli Operazionali

Data Flow DiagramFinite State MachinesPetri Nets

(Ingegneria del Software) 6. Modelli 11 / 49

Page 15: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Data Flow Diagram (DFD)

Sommario

1 Specifiche - generalità

2 Modelli OperazionaliData Flow Diagram (DFD)Finite State Machines (FSM)Petri Nets (PN)

3 Modelli DescrittiviDiagrammi Entità-RelazioneSpecifiche logicheSpecifiche algebriche

(Ingegneria del Software) 6. Modelli 12 / 49

Page 16: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Data Flow Diagram (DFD)

Caratteristiche

DFD sono una notazione molto utilizzata per descrivere le funzioni diun sistema informativo e su come i dati fluiscono all’interno delsistema. Il sistema è in effetti visto come un insieme di funzioni chemanipolano dati.

Come possono essere manipolati i dati:I dati possono essere immagazzinati in repositoryI dati possono fluire all’interno del sistemaI dati possono entrare o uscire dal sistema

(Ingegneria del Software) 6. Modelli 13 / 49

Page 17: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Data Flow Diagram (DFD)

Sintassi

Regole per combinare i simboli...

(Ingegneria del Software) 6. Modelli 14 / 49

Page 18: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Data Flow Diagram (DFD)

Qualche esempio

dal mondo matematicoIl distributore del caffèLa biblioteca

Semantica ed arrichimento delle informazioni in un DFD

Esempio di ambiguità

Formali? Semiformali? Informali?

(Ingegneria del Software) 6. Modelli 15 / 49

Page 19: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Finite State Machines (FSM)

Sommario

1 Specifiche - generalità

2 Modelli OperazionaliData Flow Diagram (DFD)Finite State Machines (FSM)Petri Nets (PN)

3 Modelli DescrittiviDiagrammi Entità-RelazioneSpecifiche logicheSpecifiche algebriche

(Ingegneria del Software) 6. Modelli 16 / 49

Page 20: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Finite State Machines (FSM)

Caratteristiche

Una macchina a stati finiti è formalmente definita da una tupla<Q,I,δ,q0> dove:

Q è un insieme di statiI è un insieme finito di inputδ è la funzione di transizione ( QxI -> Q )q0 ∈ Q è lo stato iniziale

Notazione grafica . . .

FSM sono particolarmente utili a modellare il controllo di un sistemasoftware.

(Ingegneria del Software) 6. Modelli 17 / 49

Page 21: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Finite State Machines (FSM)

Qualche esempio

interruttorebuffer di lettura scritturala macchinetta del caffè

(Ingegneria del Software) 6. Modelli 18 / 49

Page 22: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Finite State Machines (FSM)

Questioni

Formali? semiformali? informali?

FSM sono molto usate per verificare formalmente proprietà dei sistemi

Una FSM si trova sempre in un solo stato e permette di specificaresoltanto uno stato successivo per una stessa azione. Allo stessotempo il sistema è un sistema sincrono che non ha attività concorrenti.

Esplosione degli stati (e.g. somma di due interi) ed estensione delformalismo di base. Memoria limitata dal numero degli stati.

Possibili estensioni. I/O FSM. Transizioni con guardia ed azioni.

(Ingegneria del Software) 6. Modelli 19 / 49

Page 23: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Petri Nets (PN)

Sommario

1 Specifiche - generalità

2 Modelli OperazionaliData Flow Diagram (DFD)Finite State Machines (FSM)Petri Nets (PN)

3 Modelli DescrittiviDiagrammi Entità-RelazioneSpecifiche logicheSpecifiche algebriche

(Ingegneria del Software) 6. Modelli 20 / 49

Page 24: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Petri Nets (PN)

Reti di Petri

Le reti di Petri sono un formalismo ideato negli anni 60 per modellaresistemi concorrenti. Formalmente sono definite da una quadrupla<P,T,F,W> dove:

P è un insieme finito di “piazze”T è un insieme finito di transizioniP∪T=�F⊆{P x T} ∪ {T x P} è il flusso della relazioneW:F � N-{0} è la funzione peso che associa un valore non nulloagli elementi di F.

Stato di un rete di petri. M:P � N (Token)

(Ingegneria del Software) 6. Modelli 21 / 49

Page 25: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Petri Nets (PN)

Reti di Petrinotazione grafica

Evoluzione di una rete di Petri:Piazze di input ed outputUna transizione è abilitata se tutte le piazze di input contengonoun numero di token uguale o maggiore dei pesi degli elementiflusso entranti sulla transizioneTransizione con nessuna piazza di input sono sempre abilitate

(Ingegneria del Software) 6. Modelli 22 / 49

Page 26: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Petri Nets (PN)

Petri Net

Tipicamente le piazze possono rappresentare una risorsa e l’accessoalla risorsa può essere modellato dalla presenza di Token.

Politiche di risoluzione dei conflitti non sono intrinseche nel formalismoma devono invece essere implementate. Ad esempio il formalismo nonè fair. Esempio....

Una rete di petri si dice in deadlock se non ci sono transizioni abilitate.Esempio...

(Ingegneria del Software) 6. Modelli 23 / 49

Page 27: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Petri Nets (PN)

Esempio

Buffer di due posizioniSemaforofilosofi a cena

(Ingegneria del Software) 6. Modelli 24 / 49

Page 28: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Operazionali Petri Nets (PN)

Problemi e possibili estensioni al modello

Formalismo che si focalizza sul controllo. Comunque presenta alcunelacune in particolare per la gestione dei dati.- Non è possibile modificare il flusso in dipendenza dei dati.- Possibilità di selezionare una transizione tra più transizioni attive.Modello intrinsecamente non-deterministico.- Possibilità di specificare tempo e deadline.

Token con associati valori. Token tipati e dunque gestione delcontenuto. (Coloured Petri Nets - CPN)Politiche di priorità. pri:T � N.Reti di Petri temporizzate. Alle transizioni sono associati valori ditempo minimo e massimoReti temporizzate con associate funzioni di distribuzione (StochasticPetri Nets - SPN)

(Ingegneria del Software) 6. Modelli 25 / 49

Page 29: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi

Sommario

1 Specifiche - generalità

2 Modelli OperazionaliData Flow Diagram (DFD)Finite State Machines (FSM)Petri Nets (PN)

3 Modelli DescrittiviDiagrammi Entità-RelazioneSpecifiche logicheSpecifiche algebriche

(Ingegneria del Software) 6. Modelli 26 / 49

Page 30: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi

Modelli Descrittivi

Questo tipo di modelli forniscono una formalizzazione del sistema intermini delle proprietà che questo soddisfa. Non viene descrittodirettamente il suo comportamento.

Diagrammi Entità Relazione (ER)Specifiche LogicheSpecifiche Algebriche

(Ingegneria del Software) 6. Modelli 27 / 49

Page 31: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Diagrammi Entità-Relazione

Sommario

1 Specifiche - generalità

2 Modelli OperazionaliData Flow Diagram (DFD)Finite State Machines (FSM)Petri Nets (PN)

3 Modelli DescrittiviDiagrammi Entità-RelazioneSpecifiche logicheSpecifiche algebriche

(Ingegneria del Software) 6. Modelli 28 / 49

Page 32: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Diagrammi Entità-Relazione

Diagrammi Entità-Relazione

Descrizione concettuale della struttura dei dati e delle loro relazioni. Inrelazione a DFD:

Diversamente DFD si focalizzavano sul flusso del dato ma nonspecificavano la strutturaPossono essere utilizzati insieme per modellare diversi aspetti

Vengono modellati tre concetti fondamentali:EntitàAttributiRelazioni

(Ingegneria del Software) 6. Modelli 29 / 49

Page 33: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Diagrammi Entità-Relazione

Diagrammi Entità-Relazionenotazione grafica

ER non sono stati standardizzati, dunque molte varianti

(Ingegneria del Software) 6. Modelli 30 / 49

Page 34: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Diagrammi Entità-Relazione

Limitazioni

Potere espressivo è piuttosto limitato. Concetti complessi di relazionenon possono essere rappresentati. (e.g. Ereditarietà).

Non è possibile specificare che un’entità esiste solo se il numero diistanze in una relazione sarà maggiore di un certo numero.

Come al solito poi per i problemi più “spinosi” sono proposteestensioni. In generale il diagramma viene complementato coninformazioni aggiuntive. Formali e non.

Diagramma delle classi ed ER

(Ingegneria del Software) 6. Modelli 31 / 49

Page 35: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche logiche

Sommario

1 Specifiche - generalità

2 Modelli OperazionaliData Flow Diagram (DFD)Finite State Machines (FSM)Petri Nets (PN)

3 Modelli DescrittiviDiagrammi Entità-RelazioneSpecifiche logicheSpecifiche algebriche

(Ingegneria del Software) 6. Modelli 32 / 49

Page 36: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche logiche

Specifiche logichegeneralità

Utilizzo di formule FOT per descrivere proprietà di un programma

Una proprietà sarà soddisfatta se il corrispondente predicatoassumerà valore positivo.

FOT è un espressione che può comprendere:variabili (a, b, . . . )costanti numeriche (1, 3.4, 4.233e10, . . . )funzioni f (x , y , . . .), . . .predicati p(), . . .parentesi ( ), [ ], { }, . . .connettivi logici (∧, ∨, ¬,⇒, . . . )quantificatori (∀, ∃)

(Ingegneria del Software) 6. Modelli 33 / 49

Page 37: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche logiche

Specifiche logiche

Variabili libere e legate e dipendenza del valore di veritàValore di verità dipende dal dominio scelto per le variabili dellaformula

Dato un programma P con input <i1, i2, . . . , in> ed output <o1, o2, . . . ,om> una specifica logica per P è definita come:{Pre(i1, i2, . . . , in)}P{Post(o1, o2, . . . , om, i1, i2, . . . , in)}

Esempi...

Esercizio:1. programma che genera permutazione2. programma che verifica che il primo elemento di un vettore siaduplicato

(Ingegneria del Software) 6. Modelli 34 / 49

Page 38: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche logiche

Specifiche di parti

Specifiche logiche possono essere utilizzate anche per specificareparti di programma . . . richiede di poter utilizzare le variabili diprogramma all’interno della specifica logica

Esempi...

Il caso di una classe nei linguaggi OO e le invarianti.Stato di un oggettoEsecuzione dei metodi e pre e post condizioni

{INV ∧ Pre(i1, i2, . . . , in)}m(i1, i2, . . . , in){INV ∧ Post(o1, o2, . . . , om, i1, i2, . . . , in)}

(Ingegneria del Software) 6. Modelli 35 / 49

Page 39: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche logiche

La classe Queuediscussione . . .

(Ingegneria del Software) 6. Modelli 36 / 49

Page 40: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche logiche

La classe Queue - 2a versionediscussione . . .

(Ingegneria del Software) 6. Modelli 37 / 49

Page 41: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche logiche

Design by Contract (DbC)

Principio ingegneristico secondo il quale il programmatoreaggiunge pre-, post-condizioni ed invarianti alla specifica deimetodi di una classeLa specifica costituisce il contratto con l’utente della classepossibilità di verifica a run-time per verificare eventuali violazionisupporto da parte di linguaggi e framework specifici (Eiffel,JContract)

(Ingegneria del Software) 6. Modelli 38 / 49

Page 42: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche logiche

Specifiche logicheconsiderazioni

Anche semplici programmi generano specifiche piuttosto complesse.

Definizione e riuso di formule

Spesso associate ad altri formalismi per aumentarne la potenzaespressiva. E.g. FSM e formalismi logici il caso delle code.

(Ingegneria del Software) 6. Modelli 39 / 49

Page 43: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche logiche

Specifiche logiche e verifica

Utilizzando FOL viene specificato che per qualsiasi implementazionedi un programma o di un frammento di programma i predicati devonoessere valutati a vero

Espressioni logiche possono essere utilizzate nella fase di analisiapplicando deduzione logica. La proprietà espressa in forma FOLdeve poter essere derivata dalla specifica. Questo fornisce una prova!(e.g. Il caso della coda).

Questo non era possibile per le specifiche operazionali con le quali èpossibile scoprire comportamento (simulazioni) ma non fornire prove.Ma . . . theorem proving è indecidibile in FOT

(Ingegneria del Software) 6. Modelli 40 / 49

Page 44: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche logiche

Specifiche logiche e verifica

Utilizzando FOL viene specificato che per qualsiasi implementazionedi un programma o di un frammento di programma i predicati devonoessere valutati a vero

Espressioni logiche possono essere utilizzate nella fase di analisiapplicando deduzione logica. La proprietà espressa in forma FOLdeve poter essere derivata dalla specifica. Questo fornisce una prova!(e.g. Il caso della coda).

Questo non era possibile per le specifiche operazionali con le quali èpossibile scoprire comportamento (simulazioni) ma non fornire prove.Ma . . . theorem proving è indecidibile in FOT

(Ingegneria del Software) 6. Modelli 40 / 49

Page 45: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche algebriche

Sommario

1 Specifiche - generalità

2 Modelli OperazionaliData Flow Diagram (DFD)Finite State Machines (FSM)Petri Nets (PN)

3 Modelli DescrittiviDiagrammi Entità-RelazioneSpecifiche logicheSpecifiche algebriche

(Ingegneria del Software) 6. Modelli 41 / 49

Page 46: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche algebriche

Specifiche algebrichegeneralità

Formalismo descrittivo basato su definizione ed uso di algebre

algebre omogeneealgebre eterogenee

Molti sistemi software possono essere specificati “facilmente”utilizzando algebre eterogenee

(Ingegneria del Software) 6. Modelli 42 / 49

Page 47: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche algebriche

Specifiche algebricheesempio

Si vuole specificare un sistema che gestisce le stringhe. Con leseguenti operazioni:

creazione di una stringa vuotaconcatenazione di stringheaggiunta di un carattere ad una stringalunghezza di una stringaverifica se una stringa è vuota o menoverifica di uguaglianza di stringhe

Insiemi?

(Ingegneria del Software) 6. Modelli 43 / 49

Page 48: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche algebriche

Specifiche algebricheesempio

Definizione di algebra (sorts, segnatura, operazioni, vincoli)

La semantica delle operazioni viene data tramite equazioni chedefiniscono le proprietà fondamentali che devono valere quando leoperazioni sono applicate (assiomi)

(Ingegneria del Software) 6. Modelli 44 / 49

Page 49: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche algebriche

Specifiche algebrichevincoli

constraints isEmpty, append, new, add, equal, length so thatfor all [s,s1,s2:String;c:Char]

isEmpty(new()) = ?isEmpty(add(s,c)) = ?length(new()) = ?length(add(s,c)) = ?append(s,new()) = ?append(s1,add(s2,c)) = ?equal(new(),new()) = ?equal(new(),add(s,c)) = ?equal(add(s,c),new()) = ?equal(add(s1,c),add(s2,c)) = ?

(Ingegneria del Software) 6. Modelli 45 / 49

Page 50: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche algebriche

Specifiche algebrichederivazione di proprietà

Una proprietà è vera se può essere derivata dagli assiomi:

append(new(),add(new(),c) = add(new(),c)

append(new(),s) = s

(Ingegneria del Software) 6. Modelli 46 / 49

Page 51: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche algebriche

Specifiche algebricheproprietà non derivabili dagli assiomi

Capita spesso di poter incontrare proprietà che non possono esserederivate degli assiomi. Si consideri ad esempio la proprietà:equal(add(s,’a’),add(s,’b’)) = false

La specifica è incompleta e possono essere attuati tentativi di renderela specifica “più” completa aggiungendo altri assiomi.

(Ingegneria del Software) 6. Modelli 47 / 49

Page 52: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche algebriche

Specifiche algebrichespecifiche modulari

Sistemi complessi possono richiedere di definire molte algebre allostesso tempo.

Sono previsti operatori di “import” che permettono di includereun’algebra nella definizione di un’altra

(Ingegneria del Software) 6. Modelli 48 / 49

Page 53: Come descrivere cosa Andrea Polini - isti.cnr.itpolini/downloads/SE0708/IdS_6.pdf · Questioni Formali? semiformali? informali? FSM sono molto usate per verificare formalmente proprietà

Modelli Descrittivi Specifiche algebriche

Esercizio

Confronto tra i diversi tipi di specifica e dei meccanismi di analisiapplicabili:

Obiettivo: Salvare capra e cavoli :-)

(Ingegneria del Software) 6. Modelli 49 / 49