Analisi dei requisiti di un'applicazione Analisi dei requisiti di un'applicazione Versione preliminare Analisi strutturata Analisi dei requisiti di un'applicazione Copyright © 1997 by Mario G. Montobbio All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the author. Permission to use, copy and distribute this publication for the purposes of research or private study without fee is hereby granted, provided that this copyright notice and this permission notice appear in all copies. Mario G. Montobbio mailto:[email protected] Analisi strutturata Applicazione da costruire Applicazione da costruire Analisi strutturata Applicazione da costruire Centro di verifica Alcune centrali telefoniche di costruttori diversi inviano le registrazioni delle chiamate (ticket) ad un centro di verifica. Ogni costruttore adotta uno o più formati diversi. L’amministratore del centro di verifica configura il centro di verifica per fagli elaborare i diversi formati dei ticket. L’amministratore poi definisce le regole di verifica da applicare ai ticket per scartare i ticket incompleti o non validi. I ticket che hanno superato la verifica devono essere inviati all’applicazione di fatturazione che li richiede in un suo specifico formato. L’amministratore del centro di verifica configura il centro di verifica per fargli trasformare i ticket nel formato atteso dall’applicazione di fatturazione. Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Diagramma di contesto dei dati Passi di analisi Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Centro di verifica Alcune centrali telefoniche di costruttori diversi inviano le registrazioni delle chiamate (ticket) ad un centro di verifica. Ogni costruttore adotta uno o più formati diversi. L’amministratore del centro di verifica configura il centro di verifica per fagli elaborare i diversi formati dei ticket. L’amministratore poi definisce le regole di verifica da applicare ai ticket per scartare i ticket incompleti o non validi. I ticket che hanno superato la verifica devono essere inviati all’applicazione di fatturazione che li richiede in un suo specifico formato. L’amministratore del centro di verifica configura il centro di verifica per fargli trasformare i ticket nel formato atteso dall’applicazione di fatturazione. Questo è un estratto dalla requisiti dell’utente per un’applicazione di verifica dei dati di tassazione registrati da centrali telefoniche. Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Passi di analisi 1. 2. 3. 4. 5. Ricerca dei flussi di dati entranti Ricerca delle sorgenti esterne dei dati Ricerca dei flussi di dati uscenti Ricerca dei pozzi esterni dei dati Sintesi in un diagramma Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Passi di analisi 1. 2. 3. 4. 5. Ricerca dei flussi di dati entranti Ricerca delle sorgenti esterne dei dati Ricerca dei flussi di dati uscenti Ricerca dei pozzi esterni dei dati Sintesi in un diagramma Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Centro di verifica Alcune centrali telefoniche di costruttori diversi inviano le registrazioni delle chiamate (ticket) ad un centro di verifica. Ogni costruttore adotta uno o più formati diversi. L’amministratore del centro di verifica configura il centro di verifica per fagli elaborare i diversi formati dei ticket. L’amministratore poi definisce le regole di verifica da applicare ai ticket per scartare i ticket incompleti o non validi. I ticket che hanno superato la verifica devono essere inviati all’applicazione di fatturazione che li richiede in un suo specifico formato. L’amministratore del centro di verifica configura il centro di verifica per fargli trasformare i ticket nel formato atteso dall’applicazione di fatturazione. Passo di analisi Nr. 1: Questi sono i flussi di entrata che l’applicazione elabora. Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Passi di analisi 1. 2. 3. 4. 5. Ricerca dei flussi di dati entranti Ricerca delle sorgenti esterne dei dati Ricerca dei flussi di dati uscenti Ricerca dei pozzi esterni dei dati Sintesi in un diagramma Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Centro di verifica Alcune centrali telefoniche di costruttori diversi inviano le registrazioni delle chiamate (ticket) ad un centro di verifica. Ogni costruttore adotta uno o più formati diversi. L’amministratore del centro di verifica configura il centro di verifica per fagli elaborare i diversi formati dei ticket. L’amministratore poi definisce le regole di verifica da applicare ai ticket per scartare i ticket incompleti o non validi. I ticket che hanno superato la verifica devono essere inviati all’applicazione di fatturazione che li richiede in un suo specifico formato. L’amministratore del centro di verifica configura il centro di verifica per fargli trasformare i ticket nel formato atteso dall’applicazione di fatturazione. Passo di analisi Nr. 2: Queste sono le sorgenti esterne dei dati che inviano flussi di dati all’applicazione. Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Passi di analisi 1. 2. 3. 4. 5. Ricerca dei flussi di dati entranti Ricerca delle sorgenti esterne dei dati Ricerca dei flussi di dati uscenti Ricerca dei pozzi esterni dei dati Sintesi in un diagramma Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Centro di verifica Alcune centrali telefoniche di costruttori diversi inviano le registrazioni delle chiamate (ticket) ad un centro di verifica. Ogni costruttore adotta uno o più formati diversi. L’amministratore del centro di verifica configura il centro di verifica per fagli elaborare i diversi formati dei ticket. L’amministratore poi definisce le regole di verifica da applicare ai ticket per scartare i ticket incompleti o non validi. I ticket che hanno superato la verifica devono essere inviati all’applicazione di fatturazione che li richiede in un suo specifico formato. L’amministratore del centro di verifica configura il centro di verifica per fargli trasformare i ticket nel formato atteso dall’applicazione di fatturazione. Passo di analisi Nr. 3: Questi sono i flussi di uscita che l’applicazione produce. Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Passi di analisi 1. 2. 3. 4. 5. Ricerca dei flussi di dati entranti Ricerca delle sorgenti esterne dei dati Ricerca dei flussi di dati uscenti Ricerca dei pozzi esterni dei dati Sintesi in un diagramma Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Centro di verifica Alcune centrali telefoniche di costruttori diversi inviano le registrazioni delle chiamate (ticket) ad un centro di verifica. Ogni costruttore adotta uno o più formati diversi. L’amministratore del centro di verifica configura il centro di verifica per fagli elaborare i diversi formati dei ticket. L’amministratore poi definisce le regole di verifica da applicare ai ticket per scartare i ticket incompleti o non validi. I ticket che hanno superato la verifica devono essere inviati all’applicazione di fatturazione che li richiede in un suo specifico formato. L’amministratore del centro di verifica configura il centro di verifica per fargli trasformare i ticket nel formato atteso dall’applicazione di fatturazione. Passo di analisi Nr. 4: Queste sono i pozzi esterni dei dati che ricevono flussi di dati dall’applicazione. Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Passi di analisi 1. 2. 3. 4. 5. Ricerca dei flussi di dati entranti Ricerca delle sorgenti esterne dei dati Ricerca dei flussi di dati uscenti Ricerca dei pozzi esterni dei dati Sintesi in un diagramma Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Passo di analisi Nr. 5: Un diagramma sintetizza quali sono le informazioni rilevanti per l'argomento esaminato con maggior chiarezza di un testo scritto. Analisi strutturata Diagramma di contesto dei dati — Passi di analisi Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Vedendo un diagramma assorbiamo e ricordiamo più velocemente le informazioni che leggendo un testo scritto. Analisi strutturata Diagramma di contesto dei dati Diagramma di contesto dei dati Analisi strutturata Diagramma di contesto dei dati Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Questo è il livello più alto nei diagrammi di flusso dei dati: il diagramma di contesto dei dati. Analisi strutturata Diagramma di contesto dei dati Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Nel diagramma di contesto dei dati c’è un solo processo che rappresenta la nostra applicazione. Analisi strutturata Diagramma di contesto dei dati Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Nell’applicazione entrano flussi di dati rappresentati da archi entranti ... Analisi strutturata Diagramma di contesto dei dati Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione ... che provengono da sorgenti esterne di dati. Analisi strutturata Diagramma di contesto dei dati Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Dall’applicazione escono flussi di dati rappresentati da archi uscenti ... Analisi strutturata Diagramma di contesto dei dati Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione ... che terminano in pozzi esterni di dati. Analisi strutturata Diagramma di contesto dei dati Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Le sorgenti di dati e i pozzi di dati sono entità esterne alla nostra applicazione con cui occorre comunicare. Analisi strutturata Diagramma di contesto dei dati Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Vicino ad ogni arco c’è il nome del flusso Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagrammi di flusso dei dati Principi di analisi Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Principi di analisi 1. 2. 3. 4. 5. 6. 7. Uso di diagrammi Dal generale al particolare (top-down) Bilanciamento dei flussi (balancing) Rispetto della soglia di attenzione (span of attention) Affinamento per passi successivi (stepwise refinements) Definizione dei flussi (data dictionary) Notazione del dizionario elaborabile automaticamente Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Principi di analisi 1. 2. 3. 4. 5. 6. 7. Uso di diagrammi Dal generale al particolare (top-down) Bilanciamento dei flussi (balancing) Rispetto della soglia di attenzione (span of attention) Affinamento per passi successivi (stepwise refinements) Definizione dei flussi (data dictionary) Notazione del dizionario elaborabile automaticamente Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di contesto dei dati Centrale elefonica Centro Fatturazione Amministratore Validazione 0 Amministratore Validazione Amministratore Validazione CFD Diagramma di flusso di livello 1 4 1 2 3 DFD 0 Principio di analisi Nr. 1: Un diagramma sintetizza quali sono le informazioni rilevanti per l'argomento esaminato con maggior chiarezza di un testo scritto. Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di contesto dei dati Centrale elefonica Centro Fatturazione Amministratore Validazione 0 Amministratore Validazione Amministratore Validazione CFD Diagramma di flusso di livello 1 4 1 2 3 DFD 0 Vedendo un diagramma assorbiamo e ricordiamo più velocemente le informazioni che leggendo un testo scritto. Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Principi di analisi 1. 2. 3. 4. 5. 6. 7. Uso di diagrammi Dal generale al particolare (top-down) Bilanciamento dei flussi (balancing) Rispetto della soglia di attenzione (span of attention) Affinamento per passi successivi (stepwise refinements) Definizione dei flussi (data dictionary) Notazione del dizionario elaborabile automaticamente Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di contesto dei dati Centrale elefonica Centro Fatturazione Amministratore Validazione 0 Amministratore Validazione Amministratore Validazione CFD Diagramma di flusso di livello 1 4 1 2 3 DFD 0 Nel diagramma di flusso dei dati di livello 1 descriviamo in maggior dettaglio l’unico processo del diagramma di contesto dei dati. Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di contesto dei dati Centrale elefonica Centro Fatturazione Amministratore Validazione 0 Amministratore Validazione Amministratore Validazione CFD Diagramma di flusso di livello 1 4 1 2 3 DFD 0 Principio di analisi Nr. 2: L’analisi del sistema procede dal generale al particolare (top-down). Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Principi di analisi 1. 2. 3. 4. 5. 6. 7. Uso di diagrammi Dal generale al particolare (top-down) Bilanciamento dei flussi (balancing) Rispetto della soglia di attenzione (span of attention) Affinamento per passi successivi (stepwise refinements) Definizione dei flussi (data dictionary) Notazione del dizionario elaborabile automaticamente Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di contesto dei dati Centrale elefonica Centro Fatturazione Amministratore Validazione 0 Amministratore Validazione Amministratore Validazione CFD Diagramma di flusso di livello 1 4 1 2 3 DFD 0 Il confine del diagramma di flusso di livello 1 ... Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di contesto dei dati Centrale elefonica Centro Fatturazione Amministratore Validazione 0 Amministratore Validazione Amministratore Validazione CFD Diagramma di flusso di livello 1 4 1 2 3 DFD 0 ... corrisponde al confine dell’unico processo nel diagramma di contesto dei dati. Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di contesto dei dati Centrale elefonica Centro Fatturazione Amministratore Validazione 0 Amministratore Validazione Amministratore Validazione CFD Diagramma di flusso di livello 1 4 1 2 3 DFD 0 I flussi di di dati che attraversano il confine del diagramma di flusso dei dati di livello 1 ... Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di contesto dei dati Centrale elefonica Centro Fatturazione Amministratore Validazione 0 Amministratore Validazione Amministratore Validazione CFD Diagramma di flusso di livello 1 4 1 2 3 DFD 0 ... sono i flussi che compaiono nel diagramma di contesto dei dati. Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di contesto dei dati Centrale elefonica Centro Fatturazione Amministratore Validazione 0 Amministratore Validazione Amministratore Validazione CFD Diagramma di flusso di livello 1 4 1 2 3 DFD 0 Principio di analisi Nr. 3: Quando un processo viene dettagliato i flussi che lo attraversano devono comparire anche nel diagramma di livello inferiore. Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Principi di analisi 2. 3. 4. 5. 6. 7. 1.Uso di diagrammi Dal generale al particolare (top-down) Bilanciamento dei flussi (balancing) Rispetto della soglia di attenzione (span of attention) Affinamento per passi successivi (stepwise refinements) Definizione dei flussi (data dictionary) Notazione del dizionario elaborabile automaticamente Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di contesto dei dati Centrale elefonica Centro Fatturazione Amministratore Validazione 0 Amministratore Validazione Amministratore Validazione CFD Diagramma di flusso di livello 1 4 1 2 3 DFD 0 Principio di analisi Nr. 4: Un diagramma di flusso dei dati dovrebbe contenere non più di 7 ± 2 processi (soglia di attenzione: span of attention). Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Principi di analisi 1. 2. 3. 4. 5. 6. 7. Uso di diagrammi Dal generale al particolare (top-down) Bilanciamento dei flussi (balancing) Rispetto della soglia di attenzione (span of attention) Affinamento per passi successivi (stepwise refinements) Definizione dei flussi (data dictionary) Notazione del dizionario elaborabile automaticamente Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di flusso di livello 1 4 1 3 2 DFD 0 Diagramma di flusso di livello 2 1.1 1.3 1.2 DFD 1 Ogni processo del diagramma di livello 1 – se necessario – è dettagliato da un altro diagramma di flusso di livello 2. Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di flusso di livello 1 4 1 3 2 DFD 0 Diagramma di flusso di livello 2 2.5 2.3 2.1 2.2 2.4 DFD 2 Ogni processo del diagramma di livello 1 – se necessario – è dettagliato da un altro diagramma di flusso di livello 2. Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di flusso di livello 1 4 1 3 2 DFD 0 Diagramma di flusso di livello 2 3.3 3.1 3.2 3.4 DFD 3 Ogni processo del diagramma di livello 1 – se necessario – è dettagliato da un altro diagramma di flusso di livello 2. Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Diagramma di flusso di livello 1 4 1 3 2 DFD 0 Diagramma di flusso di livello 2 2.5 2.3 2.1 2.2 2.4 DFD 2 Principio di analisi Nr. 5: L’analisi del sistema è affinata per passi successivi (stepwise refinements). Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Principi di analisi 1. 2. 3. 4. 5. 6. 7. Uso di diagrammi Dal generale al particolare (top-down) Bilanciamento dei flussi (balancing) Rispetto della soglia di attenzione (span of attention) Affinamento per passi successivi (stepwise refinements) Definizione dei flussi (data dictionary) Notazione del dizionario elaborabile automaticamente Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Normalizzazione Validazione Ticket Centro Fatturazione Ticket = * File sequenziale letto * Formati uscita * da centrale via FTP * * oppure letto da nastro * Tipo_ticket +[Data_inizio_conversazione Localizzazione|Data_fine_conversazione] regole + Numero_chiamante + Numero_chiamato Amministratore + Durata_conversazione Validazione + (Quantità_impulsi) Principio di analisi Nr. 6: Ogni flusso è definito con la precisione necessaria nel dizionario dei dati. Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Principi di analisi 1. 2. 3. 4. 5. 6. 7. Uso di diagrammi Dal generale al particolare (top-down) Bilanciamento dei flussi (balancing) Rispetto della soglia di attenzione (span of attention) Affinamento per passi successivi (stepwise refinements) Definizione dei componenti dei flussi (data dictionary) Notazione del dizionario elaborabile automaticamente Analisi strutturata Diagrammi di flusso dei dati — Principi di analisi Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Normalizzazione Validazione Ticket Centro Fatturazione Ticket = * File sequenziale letto * Formati uscita * da centrale via FTP * * oppure letto da nastro * Tipo_ticket + [Data_inizio_conversazione |Data_fine_conversazione] Localizzazione regole + Numero_chiamante + Numero_chiamato + Durata_conversazione Amministratore + (Quantità_impulsi) Validazione Principio di analisi Nr. 7: I componenti dei flussi sono descritti nel dizionario dei dati con una notazione che può essere elaborata automaticamente. Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Diagrammi di flusso dei dati Livello 1 Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Nel diagramma di flusso dei dati di livello 1 descriviamo in maggior dettaglio l’unico processo del diagramma di contesto dei dati. Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Amministratore Validazione Centrale telefonica Ticket Amministratore Validazione Formati uscita Formati entrata Centro Fatturazione Ticket 4 1 Esito validazione complessivo Normalizzazione formati entrata Esito validazione campo Valori normalizzati 3 2 Funzioni di validazione campo Coordinamento validazione Localizzazione regole Amministratore Validazione Normalizzazione formati uscita Argomenti Questo è il diagramma di flusso dei dati di livello 1. Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Amministratore Validazione Centrale telefonica Ticket Amministratore Validazione Centro Fatturazione Formati uscita Formati entrata Ticket 4 1 Esito validazione complessivo Normalizzazione formati entrata Esito validazione campo Valori normalizzati 3 2 Funzioni di validazione campo Coordinamento validazione Localizzazione regole Amministratore Validazione Normalizzazione formati uscita Argomenti La riga tratteggiata dell’applicazione ... Analisi strutturata è il confine con l’esterno Diagrammi di flusso dei dati — Livello 1 Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione ... e corrisponde al confine dell’unico processo nel diagramma di contesto dei dati. Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Amministratore Validazione Centrale telefonica Ticket Amministratore Validazione Formati uscita Formati entrata Centro Fatturazione Ticket 4 1 Esito validazione complessivo Normalizzazione formati entrata Esito validazione campo Valori normalizzati 3 2 Funzioni di validazione campo Coordinamento validazione Localizzazione regole Amministratore Validazione Normalizzazione formati uscita Argomenti I flussi di dati che attraversano la linea tratteggiata nel diagramma di flusso dei dati di livello 1 ... Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione ... sono i flussi che compaiono nel diagramma di contesto dei dati. Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Criterio di verifica: quando un processo viene dettagliato i flussi che entrano ed escono dal processo ... Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Amministratore Validazione Centrale telefonica Ticket Amministratore Validazione Formati uscita Formati entrata Centro Fatturazione Ticket 4 1 Esito validazione complessivo Normalizzazione formati entrata Esito validazione campo Valori normalizzati 3 2 Funzioni di validazione campo Coordinamento validazione Localizzazione regole Amministratore Validazione Normalizzazione formati uscita Argomenti ... devono entrare ed uscire anche dal diagramma di dettaglio. Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Centrale telefonica Amministratore Validazione Ticket Amministratore Validazione Formati entrata 0 Formati uscita Normalizzazione Validazione Ticket Centro Fatturazione Localizzazione regole Amministratore Validazione Dettagliando l’unico processo del diagramma di contesto dei dati ... Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Amministratore Validazione Centrale telefonica Ticket Amministratore Validazione Formati uscita Formati entrata Centro Fatturazione Ticket 4 1 Esito validazione complessivo Normalizzazione formati entrata Esito validazione campo Valori normalizzati 3 2 Funzioni di validazione campo Coordinamento validazione Localizzazione regole Amministratore Validazione Normalizzazione formati uscita Argomenti ... evidenziamo i processi principali dell’applicazione. Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Amministratore Validazione Centrale telefonica Ticket Amministratore Validazione Formati uscita Formati entrata Centro Fatturazione Ticket 4 1 Esito validazione complessivo Normalizzazione formati entrata Esito validazione campo Valori normalizzati 3 2 Funzioni di validazione campo Coordinamento validazione Localizzazione regole Amministratore Validazione Normalizzazione formati uscita Argomenti Il diagramma di flusso dei dati di livello 1 contiene non più di 7 ± 2 processi (soglia di attenzione). Analisi strutturata Diagrammi di flusso dei dati — Livello 1 Amministratore Validazione Centrale telefonica Ticket Amministratore Validazione Formati uscita Formati entrata Centro Fatturazione Ticket 4 1 Esito validazione complessivo Normalizzazione formati entrata Valori normalizzati Localizzazione regole Amministratore Validazione Analisi strutturata Normalizzazione formati uscita Esito validazione campo 3 2 Funzioni di validazione campo Coordinamento validazione Argomenti I flussi di dati che non attraversano il confine dell’applicazione non comparivano nel diagramma di contesto dei dati. Diagrammi di flusso dei dati — Depositi dei dati Depositi dei dati (data store) Analisi strutturata Diagrammi di flusso dei dati — Depositi dei dati Amministratore Validazione Centrale telefonica Ticket Amministratore Validazione Formati uscita Formati entrata Centro Fatturazione Ticket 4 1 Esito validazione complessivo Normalizzazione formati entrata Valori normalizzati Localizzazione regole Amministratore Validazione Analisi strutturata Normalizzazione formati uscita Esito validazione campo 3 2 Funzioni di validazione campo Coordinamento validazione Argomenti Quali flussi di dati continuano ad esistere anche dopo i processi che li hanno generati? Diagrammi di flusso dei dati — Depositi dei dati Amministratore Validazione Centrale telefonica Ticket Amministratore Validazione Formati uscita Formati entrata Centro Fatturazione Ticket 4 1 Esito validazione complessivo Normalizzazione formati entrata Valori normalizzati Localizzazione regole Amministratore Validazione Analisi strutturata Normalizzazione formati uscita Esito validazione campo 3 2 Funzioni di validazione campo Coordinamento validazione Argomenti Questi flussi di dati sono congelati e possono essere usati anche dopo che sono stati creati. Diagrammi di flusso dei dati — Depositi dei dati Centrale telefonica Ticket Amministratore Validazione Amministratore Validazione Formati entrata Centro Fatturazione Formati uscita Ticket 4 1 Esito validazione complessivo Normalizzazione formati entrata Valori normalizzati Esito validazione campo 3 2 Funzioni di validazione campo Coordinamento validazione Localizzazione regole Amministratore Validazione Analisi strutturata Normalizzazione formati uscita Argomenti Rappresentiamo i flussi congelati con i depositi dei dati. Dizionario dei dati Dizionario dei dati Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] I componenti dei flussi sono descritti nel dizionario dei dati con una notazione che può essere elaborata automaticamente. Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] Un elemento del flusso Ticket è composto ... Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] ... dal Tipo ticket ... Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] ... seguito da uno solo degli elementi fra parentesi quadrate ... Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] ... – Data inizio conversazione oppure ... Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] ... Data fine conversazione – ... Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] ... seguita dal Numero chiamante, dal Numero chiamato ... Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] ... seguito dalla Durata conversazione ... Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] ... seguita opzionalmente dalla Quantità impulsi. Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] A sua volta Numero chiamante è un aggregato composto ... Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] ... dal Prefisso interurbano ... Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] ... seguito dal Prefisso urbano ... Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] ... seguito dalle Migliaia, dalle Centinaia, dalle Decine, e dalle Unità. Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] Come è definito Numero_chiamato ? Provate a rispondere. Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] Cosa indicano le parentesi quadre [ ], e la barra orizzontale | ? Analisi strutturata Dizionario dei dati Ticket = Tipo_ticket + [Data_inizio_conversazione|Data_fine_conversazione] + Numero_chiamante + Numero_chiamato + Durata_conversazione + (Quantità_impulsi) Numero_chiamante = Prefisso_interurbano + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità Numero_chiamato = [(Prefisso_interurbano) + Prefisso_urbano + Migliaia + Centinaia + Decine + Unità |Servizio_in_decade_uno |Codice_accesso + Prefisso_speciale + Migliaia + Centinaia + Decine + Unità] Cosa indicano le parentesi tonde ( ) ? Analisi strutturata Diagrammi di flusso dei dati — Livello 2 Diagrammi di flusso dei dati Livello 2 Analisi strutturata Diagrammi di flusso dei dati — Livello 2 Non ancora disponibile al 1998-01-26 Analisi strutturata Analisi dei requisiti di un'applicazione — Riepilogo Riepilogo Analisi strutturata Diagramma di contesto dei flussi — Passi di costruzione Diagramma di contesto dei flussi 1. 2. 3. 4. 5. Analisi strutturata Ricerca dei flussi di dati entranti Ricerca delle sorgenti esterne dei dati Ricerca dei flussi di dati uscenti Ricerca dei pozzi esterni dei dati Sintesi in un diagramma Diagrammi di flusso dei dati — Principi di analisi Diagrammi di flusso dei dati 1. 2. 3. 4. 5. 6. 7. Uso di diagrammi Dal generale al particolare (top-down) Bilanciamento dei flussi (balancing) Rispetto della soglia di attenzione (span of attention) Affinamento per passi successivi (stepwise refinements) Definizione dei flussi (data dictionary) Notazione del dizionario elaborabile automaticamente Analisi strutturata Diagrammi di flusso dei dati — Simboli DFD — Simboli Sorgente esterna dei dati Flusso di dati entrante Flusso di dati uscente Pozzo esterno dei dati 99 Processo di elaborazione Analisi strutturata Deposito di dati Dizionario dei dati — Esempio Dizionario dei dati — Esempio Elemento_da_definire = (Elemento_opzionale_1) + Elemento_obbligatorio_1 + [Elemento_in_alternativa_1 |Elemento_in_alternativa_2 |Elemento_in_alternativa_3] + {Elemento_ripetuto_più_volte} + 2{Elemento_ripetuto_da_2_a_5_volte}5 + (Elemento_opzionale_2) Analisi strutturata Dizionario dei dati — Simboli Dizionario dei dati — Simboli = + ( ) [ | ] { } x{ }y * * È definito come Seguito da Opzionale Uno a scelta fra Ripetizione di Ripetuto da x a y volte Commento Analisi strutturata Analisi dei requisiti di un'applicazione Copyright © 1997 by Mario G. Montobbio All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the author. Permission to use, copy and distribute this publication for the purposes of research or private study without fee is hereby granted, provided that this copyright notice and this permission notice appear in all copies. Mario G. Montobbio mailto:[email protected] Analisi strutturata