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 2 – Sincronizzazione
Il problema della sincronizzazione In alcuni settori applicativi le modalità e i tempi di comunicazione tra le attività sono importanti – Automazione industriale, avionica, controllo di strumentazione. I DFD non permettono di specificare in fase di analisi la sincronizzazione tra le attività. – Servono modelli con maggior potere espressivo.
Modalità di sincronizzazione: esempi Unbuffered producer-consumer – A produce un dato dopo che B ha consumato quello precedente Buffered producer-consumer – A può produrre dati in modo indipendente finché c’è spazio nel buffer e B può prelevarli se il buffer non è vuoto
Tecniche di specificazione della sincronizzazione Estensioni dei DFD (Formal DFD) Modelli operazionali – Automi a stati finiti – Reti di Petri
Trasformatori di dati Un trasformatore di dati a m ingressi e n uscite calcola una funzione f : D 1 × D 2 … × D n ->D 1 × D 2 … × D m D i comprende il valore speciale null per modellare il caso di f parziale (cioè che non calcola alcuni dei valori in uscita in corrispondenza di alcuni valori in ingresso)
Attivazione di funzioni Un trasformatore è abilitato se – tutte le scatole in ingresso sono piene – tutte le scatole bloccanti in uscita sono vuote L’attivazione della funzione associata a un trasformatore ha i seguenti effetti – tutte le scatole che compaiono come ingressi non conservativi sono svuotate – tutte le scatole in uscita ricevono il valore calcolato dalla funzione se questo non è null; altrimenti restano invariate
FDFD Lessico FINE