Analisi Strutturata. Generalità. Analisi strutturata

Documenti analoghi
Introduzione ai Data Flow Diagram

Diagrammi di Flusso dei Dati

Gestione del workflow

Modellazione funzionale con Data Flow Diagram

Gestione del workflow

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali

SISTEMI INFORMATIVI E DATABASE

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Ingegneria del Software

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Progettazione esterna

Algoritmi e soluzione di problemi

Ciclo di vita di un sistema informativo

Modellazione di sistema

Analisi, rappresentazione e progettazione delle procedure

ANALISI FUNZIONALE E DIAGRAMMI DI FLUSSO DEI DATI DFD 1

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Diagrammi a blocchi 1

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

Il Software programmabili programma algoritmo

Introduzione alla programmazione

Linguaggi, Traduttori e le Basi della Programmazione

Algoritmi. Pagina 1 di 5

MODELLO e RAPPRESENTAZIONE

Progettazione concettuale. Facoltà di Scienze Matematiche, Fisiche e Naturali. Progettazione concettuale. Acquisizione e analisi dei requisiti

Dall algoritmo al programma

Diagrammi a blocchi 1

Prodotto/servizio. Ogni prodotto/servizio è. Il risultato, intermedio o finale,, di un processo operativo La risposta ad una domanda ORGANIZZAZIONE

Cap. 1-I 1 I sistemi informatici

Cos è la programmazione?

PROCESSI e PROCEDURE METODOLOGIE

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

DESCRIZIONI RIGOROSE c7

STA II ANNO: AA Ecologia e Fondamenti dei. Sistemi. Ecologici Introduzione ai. Sistemi. Informativi Geografici. Lezione del

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Teoria dell Informazione

PROBLEMA: «Stabilire se un numero è pari o dispari?»

Le basi di dati. Lez. 2: Progettazione di un DB. Laboratorio di informatica gestionale

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

DISPENSE DI PROGRAMMAZIONE

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Sistemi Web per il turismo - lezione 3 -

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

Basi di Dati Concetti Introduttivi

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Analisi e specifica dei requisiti

Analisi dei Requisiti e Definizione delle Specifiche

Web Application Engineering

Metodologie e modelli di progetto

IL PROCESSO di PROGETTAZIONE

Che cosa è e a cosa serve un GIS?

Sviluppo di programmi

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

Programmazione modulare

Algoritmi e Linguaggi

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione concettuale

Esempio di Patto Formativo per la classe terza

Traccia delle soluzioni. Si consideri il seguente enunciato: Spett Ditta,

Programmazione di INFORMATICA e Laboratorio

Function Block Diagram

CONCETTI FONDAMENTALI

Rappresentazione con i diagrammi di flusso (Flow - chart)

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

SCUOLA SECONDARIA DI I GRADO ALIGHIERI - TANZI MOLA DI BARI ANNO SCOLASTICO 2011/1012

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Formalismi per la descrizione di algoritmi

Cosa si intende con stato

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione concettuale

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

LA METAFORA DELL UFFICIO

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Requisiti normativi, standard, template

Linguaggi di Programmazione

Architettura degli Elaboratori

Reti Logiche 1. Prof. B. Buttarazzi A.A. 2009/2010. Reti Sequenziali

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

Modelli di interazione tra processi

Il linguaggio di programmazione Python

Progettazione del Sofware

FISICA E LABORATORIO INDIRIZZO C.A.T. CLASSE PRIMA. OBIETTIVI U. D. n 1.2: La rappresentazione di dati e fenomeni

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

LINGUAGGI DI ALTO LIVELLO

AUTOMA A STATI FINITI

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

2- Identificazione del processo. (o dei processi) da analizzare. Approcci: Esaustivo. In relazione al problema. Sulla base della rilevanza

Metodologie per la Progettazione Concettuale

Casi d uso: esercizi

Laboratorio di Programmazione Laurea in Bioinformatica

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

ERP, ENTERPRISE RESOURCE PLANNING

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Transcript:

Generalità 1 Analisi strutturata "primo" tentativo di fornire linee guida per le attività di sviluppo software utilizzo di modelli (semi)formali e diagrammatici l'attenzione è rivolta soprattutto alla componente funzionale, mentre i dati giocano un ruolo subordinato Caratteristiche: definizione delle interazioni tra il sistema (il dominio applicativo di interesse) e il mondo esterno scomposizione gerarchica del sistema in processi (funzioni, attività nel dominio applicativo) collegati tramite flussi di dati descrizione con l uso del diagramma di flusso di dati - "Data Flow Diagram" anni 70 (metà) Analisi strutturata Gane - Sarson, De Marco 1984 Analisi strutturata per McMenamin - Palmer eventi 1985 Analisi strutturata per sistemi in tempo reale Ward - Mellor 2 1

Elementi di base dei DFD Si basano su una notazione grafica che mostra il flusso dei dati e le trasformazioni applicate ad essi dall ingreso all uscita del sistema; ciascun elemento è identificato da un nome (etichetta) processo (process) deposito (data store) agente esterno (external agent) flusso di dati (data flow) esempio: cliente ordine del cliente acquisisci ordine ordine acquisito fornitore 3 Processo (Funzioni / Trasformazioni) E' un'attività di trasformazione, che acquisisce dati in input e li trasforma in dati di output. Ogni processo: deve essere collegato ad almeno un flusso di dati in input e ad almeno uno in output i flussi in output devono essere diversi rispetto ai flussi di input (in quanto oggetto di una trasformazione) input 1 input 2 processo output 1 4 2

Flusso di dati Indica un flusso di materiale (dati) omogeneo: ha una direzione connette due elementi del sistema uno dei due elementi è necessariamente un processo (o un agente esterno) che produce il flusso o lo acquisisce emetti fattura fatture cliente 5 Deposito (data store) è un archivio, di dati permanenti, a cui i processi del sistema possono accedere, in lettura e/o in aggiornamento è, per definizione, statico: mentre il flusso trasporta i dati, che sono quindi "in movimento", nel deposito i dati sono messi "a riposo", disponibili per essere trattati dai processi acquisizio ne ricevuti 6 3

Agente Esterno (external agent) è un elemento/sistema esterno, con il quale il sistema da analizzare scambia informazioni in input e/o in output (sorgente o pozzo di flussi) può essere una persona, un'organizzazione, un sistema hardware / software, un oggetto qualsiasi come ogni sistema, potrebbe essere analizzato, ma: l'agente esterno è da considerarsi come una "scatola nera", della quale non ci interessano le caratteristiche interne ci interessano solo gli scambi di dati (flussi) tra l'agente esterno ed il sistema da analizzare cliente sistema contabilità generale sensore banca 7 Processo: tipologie di trasformazione listino prezzi emetti ricevuta ricevuta fiscale 1) produzione in output di dati diversi rispetto a quelli di input listino prezzi sconto o maggiorazione aggiorna listino listino prezzi aggiornato 2) produzione in output di dati della medesima tipologia di quelli di input, ma con valori diversi 8 4

Processo: tipologie di trasformazione dizionario parole da controllare controllo ortografia parole corrette parole errate 3) partizionamento di un flusso in input via posta via telefono accettazio ne ricevuti 4) unione di più flussi in input 9 Composizione del flusso di dati il flusso può riferirsi a: dati organizzati in strutture (es. memorizzati in un archivio) o non strutturati (es. reclami, risposte) zero, una o più occorrenze (es. dal deposito possono essere letti da zero a molti ) di un dato reclami ricevuti tratta reclami risposte 10 5

Ruolo del deposito Consente la connessione asincrona tra due processi acquisizio ne ricevuti ricevuti evasione il processo che accede ai dati contenuti nel deposito (es. evasione ) può iniziare la propria attività in un momento successivo al termine dell'attività del processo che li memorizza (es. acquisizione ) Quando la connessione tra processi avviene senza il tramite di un deposito, i processi sono "sincroni": acquisizio ne ricevuti evasione il secondo processo inizia la propria attività immediatamente al termine dell'attività del primo 11 Deposito e flussi di dati i flussi di dati che entrano in un deposito lo aggiornano, mentre quelli che ne escono lo leggono i flussi in input al deposito, e in output dal deposito, aggiornano o leggono un sottoinsieme dei dati contenuti nel deposito, non necessariamente l'intero deposito: flussi diversi possono aggiornare e/o leggere il medesimo deposito: ciascuno di essi corrisponde ad un determinato sottoinsieme del deposito via posta via telefono da evadere già evasi è anche lecito che il medesimo flusso aggiorni e legga il deposito contratti stipulati contratti contratti stipulati 12 6

Ruolo degli agenti esterni l'individuazione degli agenti esterni è la base per la definizione del contesto del sistema gli agenti esterni corrispondono alle particolari entità del "mondo esterno" con cui il sistema è in relazione definire gli agenti esterni, e i flussi di dati che essi scambiano con il nostro sistema, permette di precisare i "confini" del sistema che stiamo analizzando: le attività che producono i flussi indirizzati verso gli agenti esterni sono interne al sistema le attività che producono i flussi che arrivano dagli agenti esterni sono al di fuori del sistema 13 Diagramma di contesto ogni sistema è in relazione con il "mondo esterno", dal quale riceve input e verso il quale produce output X "il sistema" Z Y Deposito W il diagramma di contesto rappresenta le interazioni tra il sistema e il "mondo esterno" un solo processo, che rappresenta il sistema nella sua globalità tutti gli agenti esterni i flussi che agenti esterni e sistema si scambiano eventuali depositi 14 7

Scomposizione dei processi ogni processo può essere scomposto in sottoprocessi ( eplosione di un processo): la scomposizione origina un nuovo diagramma regola di scomposizione: i flussi di input e di output collegati al processo "padre" devono essere collegati anche ai processi "figli" (padri e figli devono avere i medesimi input ed output "netti - regola di continuità dei flussi) la scomposizione è reversibile: è cioè possibile aggregare più processi in un macro-processo DFD articolati su più livelli il meccanismo di scomposizione dei processi permette di rappresentare le funzionalità di un sistema a diversi livelli di dettaglio: dal diagramma più sintetico, con un unico processo (contesto) attraverso una serie di diagrammi intermedi fino ai diagrammi di dettaglio, che evidenziano i processi elementari (non ulteriormente scomposti) 15 Scomposizione dei processi x y processo 2 z Diagramma di scomposizione del processo 2 Ciascuna processo è identificato oltre che dal nome da un numero; i processi figli sono identificati con lo stesso numero del padre seguito da un altro numero progressio, con una notazione punto Es. n.ro padre 2 n.ri figli 2.1, 2.2, 2.3 n.ro padre 2.2 n.ri figli 2.2.1, 2.2.2, 2.2.3 x 2.1 deposito "X" y 2.2 2.3 z 16 8

x diagramma di contesto x z 0 y z DFD articolati su più livelli diagramma di scomposizione di primo livello x x 1 y 2 3 z z scomposizione processo 1 1.1 1.4 1.2 1.3 scomposizione processo 3 3.3 3.2 3.1 scomposizione processo 2 2.1 2.2 17 * connessione logica AND tra flussi OR esclusivo tra flussi Altri simboli utilizzati OR tra flussi A C A C B * P D B E P D F A C B E * P D 18 9

Problemi della scomposizione 1. In che modo (secondo quali criteri) è opportuno partizionare un processo? sono state proposte diverse tecniche per aiutare l'analista nella scomposizione. "eventi" a cui il processo deve rispondere, e definizione di un sottoprocesso per ciascun evento, che tratti l'evento in modo completo producendo tutte le "risposte" necessarie per soddisfarlo scomposizione in base a partizionamenti nel dominio applicativo 2. In quanti sottoprocessi bisogna partizionare ciascun processo? non esiste una regola vera e propria. Il numero dei sottoprocessi dipende dal tipo di processo e dai criteri (dalla tecnica) utilizzata per il partizionamento poiché ogni scomposizione genera un nuovo diagramma, è importante che il diagramma risultante risulti comprensibile, e che pertanto il numero di (sotto) processi contenuti non sia troppo elevato l'applicazione ai DFD di studi di psicologia sperimentale hanno portato a proporre un numero indicativo di 7 (+ o - 2) sottoprocessi per ogni processo (sono numeri da prendere con buon senso, non da applicare in modo meccanico) 19 3. Fino a che livello di dettaglio spingersi nella scomposizione? Ogni processo può essere più o meno complesso, e generare quindi un numero di sottoprocessi elementari molto diverso da quelli originati da un altro processo Le tecniche utilizzate per il partizionamento influenzano anche il numero di diagrammi prodotti nella scomposizione, ed il livello di dettaglio necessario. Il livello analitico da raggiungere è comunque fortemente condizionato dal processo di sviluppo utilizzato, e dalle modalità di passaggio previste tra l'analisi e il disegno. 20 10

Qualche regola Non considerare operazioni di inizializzazione, terminazione del sistema, di gestione di errori o eccezioni il sistema va immaginato in uno stato stabile ed invariante in cui idati di uscita sono prodotti da quelli di ingresso individuare entrate ed uscite nette dal sistema o sua parte evidenziarle, ad esempio, disegnandole più estrne assegnare ai flussi nomi significativi, assegnare ai processi nomi significativi, che esprimano le trasformazioni sui dati evitare nomi generici ed ambigui, usare la terminologia del dominio applicativo verificare la correttezza e la consistenza del DFD, percorrendo i flussi sia dagli ingressi alle uscite, sia risalendo dalle uscite fino agli ingressi dai quali essi dipendono 21 Punti di forza e criticità dei DFD Punti di forza attenzione posta sull'interazione tra il sistema e il mondo esterno (approccio "sistemico", e definizione chiara del contesto capacità di rappresentare qualunque tipo di sistema, a diversi livelli di astrazione intuitività, immediatezza come strumento di comunicazione costituiscono una linea guida per gli analisti, in quanto costringono a porsi le domande a cui l'analisi deve dare risposta Criticità l'approccio top-down può risultare inadeguato per sistemi dai requisiti instabili rischi di orientamento alle soluzioni tecniche ( "come bisogna implementare" anziché al "cosa deve fare il sistema"), particolarmente nei livelli più dettagliati le "regole sintattiche" sono limitate: la qualità dei modelli prodotti dipende fortemente dall'esperienza di chi li utilizza 22 11

Dizionario dei dati Per descrivere i dati di un DFD La struttura dei dati è descritta usando notazioni e metodi dei linguaggi formali Definizione A Β A è definito come B Sequenza/ Composizione A + B A in sequenza con (o composto da) B Selezione [A B] A oppure B Ripetizione j { A } i A ripetuto da min i a max j volte Ripetizione A* 1 o più occorrenze di A Opzionalità [A] A oppure nulla Esempio N.ro telefonico [numero locale numero esterno centralino] Centralino 0 numero locale [interno conferenza] 9 interno { cifra } 4 cifra [0 1 2 3 4 5 6 7 8 9 ] conferenza { # interno } 2 5 + # + # numero esterno 9 + [prefisso] + esterno prefisso 0 + { cifra } 1 3 esterno { cifra } 5 8 23 Descrizione dei processi In modo: informale (linguaggio naturale) semiformale (pseudocodice, liguaggio naturale strutturato) formale 24 12

Esercizio Disegnare il DFD del sistema Ambulatorio 25 13