Lezione 15 – Complementi sul
linguaggio Z (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
Specificazione di modello astratto
• Descrive esplicitamente il comportamento di un
sistema nei termini di un modello, usando tipi
ben definiti (sequenze, relazioni, funzioni), e
definisce le operazioni mostrando gli effetti sul
modello
• La specificazione include:
– tipo: natura dell’oggetto specificato
– modello: struttura sottostante
– invariante: proprietà dell’oggetto modellato
– pre/post condizioni: semantica delle operazioni
Notazione
• Viene usata per testare i risultati
• È indipendente dal codice di programma
• Si basa su un modello matematico
• Rappresenta aspetti sia statici sia dinamici di un
sistema
Caratteristiche (notazione Z)
• Scomporre la specificazione in piccole parti
(schemi)
• Gli schemi vengono usati per descrivere gli
aspetti sia statici sia dinamici del sistema
• Si possono ignorare i dettagli per focalizzarsi
sugli aspetti del problema che interessano
Schema (1)
Aspetti statici
• Lo stato in cui si trova il sistema
• I predicati invarianti che vengono mantenuti
mentre il sistema si muove da stato a stato
Schema (2)
Aspetti dinamici
• Le operazioni che sono possibili
• Il rapporto tra input e output
• Il cambiamento di stato che si verifica in seguito
a una transizione
Esempio di notazione
Esempio (1)
Esempio (2)
Race condition
• Non abbiamo gestito la condizione quando l’utente
cerca di aggiungere un compleanno, che è già
noto al sistema o cerca di trovare il compleanno di
qualcuno che è sconosciuto
• Si gestisca ciò aggiungendo un risultato extra! A
ogni operazione
• Risultato := of| already_known | not_known
FINE
Scarica

Complementi sul linguaggio Z