Lezione 1 – Il DFD Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 3 - Modelli di fase d’analisi Ernesto Damiani Università degli Studi di Milano Un esempio (1) • Corsi.com è una società di formazione che organizza corsi interni e presso aziende • Le iscrizioni ai corsi avvengono per telefono e posta ordinaria • I pagamenti arrivano solo per posta ordinaria, sotto forma di assegni bancari o circolari • È possibile annullare la propria iscrizione Un esempio (2) • I nomi dei corsisti e le relative società sono aggiunti a un database centrale • Oltre alla registrazione delle iscrizioni, il database deve poter rispondere a query come “Quand’è il prossimo corso in Lombardia sull’analisi strutturata?” oppure “Chi altri della mia stessa società ha seguito questo corso?” “Che valutazione ne ha dato?” “Chi è il docente del corso a Lodi il mese prossimo?” Osservazioni generali • Il DFD mostra il flusso dei dati e non il controllo (non ci sono mai cicli) • Il DFD mostra tutti i percorsi possibili • L’attivazione dei processi non è l’arrivo dei dati (ad es., il processo 6 può essere eseguito mensilmente). Per precisare la sincronizzazione serve un altro formalismo (es. Reti di Petri) • Il DFD mostra il partizionamento del sistema Il DFD (Data Flow Diagram) Dizionario dei dati (estratto) Dati pagamento • Nome del cliente • Indirizzo del cliente • Numero della fattura • Importo Numero fattura • Codice postale • Numero del conto del cliente • ID del rappresentante • Conto sequenziale della fattura Un albero decisionale Albero decisionale del processo 6 (fatturazione) Limiti dei DFD • Si possono corredare i nodi di alberi decisionali che esprimono valutazioni condizionali sui dati. – Aumenta il potere espressivo • Manca la possibilità di specificare controllo e sincronizzazione. Ambiguità dei DFD (1) Un DFD ambiguo A B Ambiguità dei DFD (2) Un altro DFD ambiguo B A C D FINE