Esercizi sui Function Point
Transcript
Esercizi sui Function Point
Ingegneria del Software – Esercizi su Function Point Es. 4 - 11 Marzo 98 Si consideri l’applicazione Gestione Pazienti di un ospedale. L'organizzazione dei dati è rappresentata dal seguente diagramma ER: Applicazione Gestione Pazienti Codice Sanitario Nome Paziente (1,n) Esami refertati (n,n) Data Reparto Esami da effettuare Esito (1,n) Indirizzo Data (1,n) Laboratorio Esame Tipo Applicazione Gestione Laboratori Le linee tratteggiate indicano i confini dell'applicazione Gestione Pazienti, che si deve contare, e dell'applicazione Gestione Laboratori. Pagina 1 L’applicazione Gestione Pazienti deve eseguire le seguenti operazioni: 1 Gestione dei dati sui Pazienti 1.1 Iscrizione Paziente: inserisci i dati di un nuovo paziente. I dati comprendono il numero di Codice Sanitario, il Nome, l’Indirizzo e il Reparto in cui viene ricoverato il paziente. 1.2 Interroga Pazienti: richiedi i dati di un paziente dato il suo Nome o il suo numero di Codice Sanitario. 1.3 Elenca Pazienti per Reparto: mostra la lista di tutti i Pazienti di un certo Reparto, stampandone il numero totale alla fine. 2 Gestione degli Esami 2.1 Inserisci Esame da Effettuare: inserisci gli esami che un Paziente deve effettuare. L’utente deve inserire il Codice Sanitario del paziente, il Tipo di esame e la Data dell'esame di laboratorio da effettuare. 2.2 Interroga Esami: richiedi l’elenco degli esami da effettuare su un Paziente dato il suo Codice Sanitario; 3 Gestione dei Referti 3.1 Inserisci Referto: inserisce il referto di un esame di laboratorio. L’utente inserirà il Tipo dell’esame, la Data e il Referto (positivo o negativo). 3.2 Interroga Esami refertati: richiede i referti degli esami effettuati da un Paziente, dato il suo numero di Codice Sanitario, e stampa il numero totale di esami refertati. Si richiede di identificare le funzioni di tipo dati e di tipo transazione e di calcolare la complessità (in termini di DET e Pagina 2 RET) delle funzioni di tipo dati e la complessità (in termini di DET e FTR) delle funzioni di tipo transazione. Si tenga presente che Esame è considerato come ILF per l'Applicazione Gestione Laboratori. Pagina 3 Soluzione es. 11 Marzo 98. Regole di identificazione ILF 1) Il gruppo di dati o informazioni di controllo è un gruppo di dati logico, o identificabile dall'utente, che soddisfa determinati requisiti utente. 2) Il gruppo di dati è mantenuto all'interno del confine dell'applicazione. 3) Il gruppo di dati è modificato, o mantenuto, attraverso un processo elementare dell'applicazione. 4) Il gruppo di dati identificato non è stato contato come un EIF per l'applicazione. Entità e relazioni Paziente Sì Esami da effettuare Sì Esami refertati Sì Sì Sì No Sì, dal processo 1.1 Iscrizione Paziente. Sì, dal processo 2.1 Inserisci Esame da effettuare Sì Sì, dal processo 3.1 Inserisci Referto Sì No Pagina 4 Regole di identificazione EIF 1) Il gruppo di dati o informazioni di controllo è un gruppo di dati logico, o identificabile dall'utente, che soddisfa determinati requisiti utente. 2) Il gruppo di dati è referenziato dall'applicazione che si sta misurando ed è ad essa esterno. 3) Il gruppo di dati non è mantenuto dall'applicazione che si sta misurando. 4) Il gruppo di dati è contato come un ILF per almeno un'altra applicazione. 5) Il gruppo di dati identificato non è stato contato come un ILF per l'applicazione. Entità e relazioni Tipo Esame Sì Sì Sì Sì Sì Pagina 5 RET: ILF o EIF Paziente Esami da effettuare Esami refertati DET ILF o EIF Paziente Cod. Sanit. Nome Indirizzo Reparto Totale Esami da effettuare Data Codice Sanitario Tipo Totale Esami refertati Data Referto Codice Sanitario Tipo RET 1 1 1 Campo Chiave esterna? Conta riconoscibile Conta 1 DET implementazion dall’utente e non e come un DET: ricorsivo? Conta 1 DET Sì Sì Sì Sì 4 No No No No No No No No Sì No No Sì No No No 1 Sì 2 No Sì Sì No No No Sì No No No No Sì No Pagina 6 Totale 2 2 Esame Tipo Laboratorio Totale Sì Sì 2 No No No No Pagina 7 Regole di identificazione EI Processi Iscrizione Paziente 1) I dati sono ricevuti dall’esterno del confine dell’applicazione. 2) I dati in un ILF sono mantenuti attraverso un processo elementare dell'applicazione. 3) Il processo è la più piccola unità di attività che è significativa per l'utente. 4) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 5) E' applicabile una delle seguenti due regole: i) il trattamento logico è unico rispetto ad altri EI, ii) i dati identificati sono diversi rispetto ad altri EI. Sì Inserisci Inserisci Esame da Referto Effettuare Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Pagina 8 Regole di identificazione EO 1) Il processo invia dati all’esterno del confine dell’applicazione. 2) I dati o le informazioni di controllo sono inviati attraverso un processo elementare dell'applicazione. 3) Il processo è la più piccola unità di attività che è significativa per l'utente. 4) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 5) E' applicabile una delle seguenti due regole: i) il trattamento logico è unico rispetto ad altri EO, Processi Elenca Pazienti per Reparto Sì Interroga Esami Refertati Sì Sì Sì Sì Sì Sì Sì Sì Sì Pagina 9 ii) i dati identificati Sì Sì sono diversi rispetto ad altri EO. Interroga Esami Refertati è un EO perché stampa un dato derivato (totale esami refertati). Pagina 10 Regole di identificazione EQ 1) Una richiesta di input entra nel confine dell’applicazione. 2) Un risultato di output esce dal confine dell'applicazione. 3) Sono reperiti dei dati. 4) I dati reperiti non contengono dati derivati. 5) Il processo è la più piccola unità di attività che è significativa per l'utente. 6) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 7) L'elaborazione non aggiorna alcun ILF. 8) E' applicabile una delle seguenti due regole: Processi Interroga Pazienti Sì Interroga Esami Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Pagina 11 i) il trattamento logico è unico rispetto ad altri EQ, ii) i dati identificati sono diversi rispetto ad altri EQ. Sì Sì Sì Sì Pagina 12 Calcolo degli FTR e DET delle funzionalià di tipo transazioni: PROCESSO EI: Iscrizione Paziente Inserisci Esame da Effettuare Inserisci Referto FTR DET 1 4 3 (verifica se il 3 paziente esiste in Paziente e se il tipo di esame esiste in Esame) 3 (verifica se il 4 paziente esiste in Paziente e se il tipo di esame esiste in Esame) EO: Elenca Pazienti per 1 4+1 Reparto Interroga Esami 2 (verifica se il 4+1 Refertati paziente esiste in Paziente) EQ: Interroga Pazienti 0 1 (lato input) Interroga Pazienti 1 4 (lato output) Interroga Esami (lato 0 1 input) Interroga Esami (lato 1 3 output) Pagina 13 Es. 4 - 17 Ottobre 97 Si consideri l’applicazione Gestione Conti Corrente di una banca. L'organizzazione dei dati è rappresentata dal seguente diagramma ER: Applicazione Gestione Clienti Nome Cliente Indirizzo Codice fiscale (1,n) E’ titolare di Data apertura (1,1) Numero Filiale Conto (0,n) Saldo Ultimo Mese Effettuata su (1,1) Transazione Numero progressivo Importo Data Valuta Causale Applicazione Gestione Conti Corrente Le linee tratteggiate indicano i confini dell'applicazione Gestione Conti Corrente, che si deve contare, e dell'applicazione Gestione Clienti. Pagina 14 L’applicazione Gestione Conti Corrente deve eseguire le seguenti operazioni: 1 Gestione dei dati sui Conti Corrente 1.1 Inserisci Conto: inserisci i dati di un nuovo conto. I dati comprendono il Numero, la Filiale, il Nome del Titolare e la Data di Apertura. Il Nome del Titolare deve essere presnete nell’applicazione Gestione Clienti. 1.2 Interroga Conto: richiedi i dati di un conto dato il suo Numero. 1.3 Elenca Conti: mostra la lista di tutti i conti. 2 Gestione dei dati sulle Transazioni 2.1 Inserisci Transazione: inserisci i dati di una nuova transazione. I dati comprendono il Numero del Conto, il Numero Progressivo, l’Importo, la Data, la Valuta e la Causale. 2.2 Interroga Transazione: richiedi i dati di tutte le transazioni effettuate in un dato giorno su un dato conto corrente. 2.3 Stampa Estratto Conto: mostra la lista di tutte le transazioni compiute nel mese precedente su un dato conto, stampando alla fine il saldo totale. Si richiede di identificare le funzioni di tipo dati e di tipo transazione e di calcolare la complessità delle funzioni di tipo dati. Si tenga presente che Cliente è considerato come ILF per l'Applicazione Gestione Clienti. Pagina 15 Soluzione 17 Ottobre97: Regole di conteggio ILF 1) Il gruppo di dati o informazioni di controllo è un gruppo di dati logico, o identificabile dall'utente, che soddisfa determinati requisiti utente. 2) Il gruppo di dati è mantenuto all'interno del confine dell'applicazione. 3) Il gruppo di dati è modificato, o mantenuto, attraverso un processo elementare dell'applicazione. 4) Il gruppo di dati identificato non è stato contato come un EIF per l'applicazione. Entità e relazioni Conto, E’ Titolare di Sì Transazio Cliente ne, Effettuta su Sì Sì Sì Sì Sì, dal processo 1.1 Inserisci Conto. Sì, dal No processo 2.1 Inserisci Transazio ne. Sì No Sì No Pagina 16 Regole di conteggio EIF 1) Il gruppo di dati o informazioni di controllo è un gruppo di dati logico, o identificabile dall'utente, che soddisfa determinati requisiti utente. 2) Il gruppo di dati è referenziato dall'applicazione che si sta misurando ed è ad essa esterno. 3) Il gruppo di dati non è mantenuto dall'applicazione che si sta misurando. 4) Il gruppo di dati è contato come un ILF per almeno un'altra applicazione. 5) Il gruppo di dati identificato non è stato contato come un ILF per l'applicazione. Entità e relazioni Cliente Sì Sì Sì Sì Sì Pagina 17 RET: ILF o EIF Conto, E’ titolare di RET 2 Transazione, Effettuta su 1 Cliente 1 DET ILF o EIF Conto, E’ titolare di Numero Filiale Saldo Ultimo Mese Data Apertura Nome_cliente Totale Transazione, Effettuta su Numero Progressivo Importo Data Valuta 2 RET perché E’_titolare_di ha un attributo 1 RET perché Effettuata_su non ha attributi Campo Chiave esterna? Conta riconoscibile Conta 1 DET implementazion dall'utente e non e come un DET: ricorsivo? Conta 1 DET Sì Sì Sì No No No No No No Sì No 4 No Sì 1 No No Sì No No Sì Sì Sì No No No No No No Pagina 18 Numer_conto No Causale Sì Totale 5 Sì No 1 No No Cliente Nome Indirizzo Codice Fiscale Totale No No No No No No Sì Sì Sì 3 Pagina 19 Regole di conteggio EI Processi Inserisci Conto 1) I dati sono Sì ricevuti dall’esterno del confine dell’applicazione. 2) I dati in un ILF Sì sono mantenuti attraverso un processo elementare dell'applicazione. 3) Il processo è la Sì più piccola unità di attività che è significativa per l'utente. 4) Il processo è Sì autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 5) E' applicabile una delle seguenti due regole: vi) il trattamento Sì logico è unico rispetto ad altri EI, vii) i dati Sì identificati sono diversi rispetto ad altri EI. Inserisci Transazione Sì Sì Sì Sì Sì Sì Pagina 20 Regole di conteggio EO 1) Il processo invia dati all’esterno del confine dell’applicazione. 2) I dati o le informazioni di controllo sono inviati attraverso un processo elementare dell'applicazione. 3) Il processo è la più piccola unità di attività che è significativa per l'utente. 4) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 5) E' applicabile una delle seguenti due regole: vi) il trattamento logico è unico rispetto ad altri EO, Processi Stampa Estratto Conto Sì Sì Sì Sì Sì Pagina 21 vii) i dati Sì identificati sono diversi rispetto ad altri EO. Pagina 22 Regole di conteggio EQ 1) Una richiesta di input entra nel confine dell’applicazione. 2) Un risultato di output esce dal confine dell'applicazione. 3) Sono reperiti dei dati. 4) I dati reperiti non contengono dati derivati. 5) Il processo è la più piccola unità di attività che è significativa per l'utente. 6) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 7) L'elaborazione non aggiorna alcun ILF. 8) E' applicabile una delle seguenti due regole: Processi Interroga Conto Sì Elenca Conti Sì Interroga Transazione Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Pagina 23 ix) il trattamento logico è unico rispetto ad altri EQ, x) i dati identificati sono diversi rispetto ad altri EQ. Sì Sì Sì Sì Sì Sì Stampa Estratto Conto è l’unico EO perché è l’unico che stampa dei dati derivati (saldo del mese). Pagina 24 Esercizio 4 - 11 Settembre 1997 Si consideri l’applicazione Gestione Biblioteca. L’organizzazione dei dati è rappresentata dal seguente diagramma ER: Applicazione Gestione Biblioteca Nome Autore Data di Nascita Data di Morte (1,n) Anno Scritto da (1,1) Editore Titolo Libro (0,1) Prestito Data Durata (0,n) Nome Lettore Indirizzo Applicazione Gestione Lettori Le linee tratteggiate indicano i confini dell'applicazione Gestione Biblioteca, che si deve contare, e dell'applicazione Gestione Lettori. Pagina 25 L’applicazione Gestione Biblioteca deve eseguire le seguenti operazioni: I Gestione dei dati sugli autori A Inserisci Autore: inserisci i dati di un nuovo autore. I dati comprendono il Nome, la Data di Nascita e la Data di Morte (nulla se vivente). B Interroga Autori: richiedi i dati di un autore dato il suo Nome. C Elenca Autori: mostra la lista di tutti gli autori stampando alla fine il numero totale degli autori. II Gestione dei dati sui libri A Inserisci Libro: inserisci i dati di un nuovo libro. I dati comprendono il Titolo, Editore, Anno e il Nome dell'autore (che deve essere già presente nell'applicazione). B Interroga Biblioteca: richiedi i dati di un libro dato il suo Titolo. C Elenca Libri: mostra la lista di tutti i libri stampando alla fine il numero totale di libri. III Gestione dei prestiti. A Inserisci Prestito: inserisci i dati riguardanti il prestito di un libro ad un lettore. I dati comprendono il Titolo del libro, il Nome del lettore, la Data di inizio prestito e la Durata. B Interroga Prestiti: chiedi quali prestiti sono stati fatti a un certo lettore. C Elenca Prestiti: mostra la lista di tutti i prestiti stampando il Titolo del libro prestato, la Data, la Durata e il Nome del lettore, senza stampare alla fine il numero totale di prestiti. Si richiede di identificare le funzioni di tipo dati e di tipo transazione e di calcolare la loro complessità. Si tenga presente che Lettore è considerato come ILF per l'Applicazione Gestione Lettori. Pagina 26 Soluzione: Regole identificazione Entità e ILF relazioni Libro, Scritto da 1) Il gruppo di dati o Sì informazioni di controllo è un gruppo di dati logico, o identificabile dall'utente, che soddisfa determinati requisiti utente. 2) Il gruppo di dati è Sì mantenuto all'interno del confine dell'applicazione. 3) Il gruppo di dati è Sì, dal modificato, o processo mantenuto, Inserisci attraverso un Libro. processo elementare dell'applicazione. 4) Il gruppo di dati Sì identificato non è stato contato come un EIF per l'applicazione. Autore Prestito Lettore Sì Sì Sì Sì Sì No Sì, dal processo Inserisci Autore. Sì, processo Inserisci Prestito No Sì Sì No Pagina 27 Regole identificazione EIF Entità e relazioni Lettore 1) Il gruppo di dati o Sì informazioni di controllo è un gruppo di dati logico, o identificabile dall'utente, che soddisfa determinati requisiti utente. 2) Il gruppo di dati è Sì referenziato dall'applicazione che si sta misurando ed è ad essa esterno. 3) Il gruppo di dati non Sì è mantenuto dall'applicazione che si sta misurando. 4) Il gruppo di dati è Sì contato come un ILF per almeno un'altra applicazione. 5) Il gruppo di dati Sì identificato non è stato contato come un ILF per l'applicazione. Pagina 28 RET: ILF o EIF Libro, Scritto da Autore Prestito Lettore RET 2 (associazione con attributo) 1 1 1 Pagina 29 DET ILF o EIF Libro, Scritto da Titolo Editore Anno Nome_Autore Totale Campo Chiave esterna? Conta riconoscibile Conta 1 DET implementazion dall’utente e non e come un DET: ricorsivo? Conta 1 DET Sì Sì Sì No 3 No No No Sì 1 No Sì Sì No No No Sì 3 No Prestito Data Durata Titolo_Libro Nome_Lettore Totale Sì Sì No No 2 No No Sì Sì 2 Lettore Nome Indirizzo Totale Sì Sì 2 No No Autore Nome Data di Nascita Data di Morte Totale No No No No No No Pagina 30 Regole identificazione Processi EI Inserisci Libro 1) I dati sono Sì ricevuti dall’esterno del confine dell’applicazione. 2) I dati in un ILF Sì sono mantenuti attraverso un processo elementare dell'applicazione. 3) Il processo è la Sì più piccola unità di attività che è significativa per l'utente. 4) Il processo è Sì autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 5) E' applicabile una delle seguenti due regole: vi) il trattamento Sì logico è unico rispetto ad altri EI, vii) i dati Sì identificati sono diversi rispetto ad altri EI. Inserisci Autore Sì Inserisci Prestito Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Pagina 31 Regole identificazione Processi EO Elenca Libri 1) Il processo invia Sì dati all’esterno del confine dell’applicazione. 2) I dati o le Sì informazioni di controllo sono inviati attraverso un processo elementare dell'applicazione. 3) Il processo è la Sì più piccola unità di attività che è significativa per l'utente. 4) Il processo è Sì autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 5) E' applicabile una delle seguenti due regole: vi) il trattamento Sì logico è unico rispetto ad altri EO, Elenca Autori Sì Sì Sì Sì Sì Pagina 32 vii) i dati Sì identificati sono diversi rispetto ad altri EO. Sì Pagina 33 Regole identificazione Processi EQ Interroga Libri 1) Una richiesta di Sì input entra nel confine dell’applicazione. 2) Un risultato di Sì output esce dal confine dell'applicazione. 3) Sono reperiti dei Sì dati. 4) I dati reperiti non Sì contengono dati derivati. 5) Il processo è la Sì più piccola unità di attività che è significativa per l'utente. 6) Il processo è Sì autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 7) L'elaborazione Sì non aggiorna alcun ILF. 8) E' applicabile una delle seguenti due regole: Interroga Interroga Elenca Autori Prestiti Prestiti Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Pagina 34 ix) il trattamento logico è unico rispetto ad altri EQ, x) i dati identificati sono diversi rispetto ad altri EQ. Sì Sì Sì Sì Sì Sì Sì Sì Elenca prestiti è un EQ perche' non genera alcun dato derivato. Pagina 35 DET per EI (1 per ogni campo che etichetta un flusso entrante dall’esterno dell’applicazione nel processo) Inserisci Libro Libro, Scritto da Titolo Editore Anno Nome_Autore Totale Autore Nome Data di Nascita Data di Morte Totale Prestito Data Durata Titolo_Libro NomeLettore Totale Inserisci Autore Inserisci Prestito Sì Sì Sì Sì 4 Sì Sì Sì 3 Sì Sì Sì Sì 4 Pagina 36 FTR per EI (1 per ogni ILF mantenuto, 1 per ogni ILF o EIF referenziato) Inserisci Libro Libro, Scritto da Sì, mantenuto Autore Sì, referenziato Prestito Lettore Totale 2 Inserisci Autore Inserisci Prestito Sì, referenziato Sì, mantenuto 1 Sì, mantenuto Sì, referenziato 3 Pagina 37 DET per EO (1 per ogni campo che etichetta un flusso dal processo verso l’esterno dell’applicazione) Elenca Libri Libro, Scritto da Titolo Editore Anno Nome_Autore Totale_Libri Totale Autore Nome Data di Nascita Data di Morte Totale_Autori Totale Elenca Autori Sì Sì Sì Sì Sì 5 Sì Sì Sì Sì 4 Pagina 38 FTR per EO (1 per ogni ILF o EIF referenziato) Elenca Libri Libro, Scritto da Sì Autore Sì Prestito Lettore Totale 2 Elenca Autori Sì 1 (tutti referenziati) Pagina 39 DET per EQ (lato input: 1 per ogni campo che etichetta un flusso entrante dall’esterno dell’applicazione nel processo) Interroga Interroga Biblioteca Autori Interroga Prestiti Elenca Prestiti Sì 1 0 Libro, Scritto da Titolo Sì Editore Anno Nome_Autore Totale 1 Autore Nome Data di Nascita Data di Morte Totale Prestito Data Durata Titolo_Libro NomeLettore Totale Sì 1 Pagina 40 FTR per EQ (lato input: 1 per ogni ILF che ha almeno un campo contato come DET lato input) Interroga Libri Libro, Scritto da Sì Autore Prestito Lettore Totale 1 Interroga Autori Interroga Prestiti Elenca Prestiti Sì Sì 1 1 0 (tutti referenziati) Pagina 41 DET per EQ (lato output: 1 per ogni campo che etichetta un flusso dal processo verso l’esterno dell’applicazione) Interroga Interroga Biblioteca Autori Libro, Scritto da Titolo Editore Anno Nome_Autore Totale Autore Nome Data di Nascita Data di Morte Totale Prestito Data Durata Titolo_Libro NomeLettore Totale Interroga Prestiti Elenca Prestiti Sì Sì Sì Sì 4 Sì Sì Sì Sì 4 Sì Sì Sì Sì 4 Sì Sì Sì 3 (si conta anche il DET usato come campo di selezione in ingresso) Pagina 42 FTR per EQ (lato output: 1 per ogni ILF o EIF referenziato) Interroga Interroga Biblioteca Autori Libro, Scritto da Sì Autore Sì Sì Prestito Lettore Totale 2 1 Interroga Prestiti Sì Elenca Prestiti Sì Sì Sì 3 Sì Sì 3 Pagina 43 Esercizio n. 4 - 6 Giugno 1997 Si consideri l’applicazione Gestione Professori per la gestione delle informazioni riguardanti i professori e i corsi di una Università. L'organizzazione dei dati è rappresentata dal seguente diagramma ER: Applicazioni Gestione Studenti Studenti Matricola Età Anno di corso Media (1,n) Esame Superato Voto (1,n) Istituto Codice Corso (1,1) Tenuto da (1,n) Professore Anzianità Nome Applicazione Gestione Professori Le linee più marcate indicano i confini dell'applicazione Gestione Professori, che si deve contare, e dell'applicazione Gestione Studenti. Pagina 44 L’applicazione Gestione Professori deve eseguire le seguenti operazioni: 1 Gestione dei dati sui professori 1.1 Inserisci Professore: inserisci i dati di un nuovo professore (Nome e Anzianità). 1.2 Interroga Professori: richiedi i dati di un professore dato il suo Nome. 1.3 Elenca Professori: mostra la lista di tutti i professori stampando alla fine il numero totale dei professori. 2 Gestione dei dati sui corsi 2.1 Inserisci Corso: inserisci i dati di un nuovo corso. I dati comprendono il Codice, l'Istituto e il nome del professore che tiene il corso. 2.2 Interroga Corsi: richiedi i dati di un corso dato il suo Codice. I dati comprendono il Codice, l'Istituto e il nome del professore. 2.3 Elenca Corsi: mostra la lista di tutti i corsi stampando alla fine il numero totale dei corsi. I dati comprendono il Codice, l'Istituto e il Nome_Professore. 3 Gestione degli esami superati. 3.1 Inserisci Esame Superato: inserisci un nuovo esame superato. I dati comprendono il Codice_Corso, la Matricola dello studente e il Voto. 3.2 Interroga Esami Superati: richiedi i dati di un esame superato dato il suo codice. I dati comprendono il Codice_Corso, la Matricola_Studente e il Voto. 3.3 Elenca Esami Superati: mostra la lista di tutti gli esami superati stampando alla fine il numero totale di esami. Si richiede di identificare le funzioni di tipo dati e di tipo transazione e di calcolare la complessità delle funzioni di tipo dati. Pagina 45 Soluzione es. 4: Regole di Entità e identificazione ILF relazioni Professore Corso, Tenuto da 1) Il gruppo di dati o Sì Sì informazioni di controllo è un gruppo di dati logico, o identificabile dall'utente, che soddisfa determinati requisiti utente. 2) Il gruppo di dati è Sì Sì mantenuto all'interno del confine dell'applicazione. 3) Il gruppo di dati è Sì, dal Sì, dal modificato, o processo 1.1 processo mantenuto, Inserisci 2.1 attraverso un Professore. Inserisci processo elementare Corso. dell'applicazione. 4) Il gruppo di dati Sì Sì identificato non è stato contato come un EIF per l'applicazione. Esame Studente Superato Sì Sì Sì No Sì, No processo 3.1 Inserisci Esame Superato Sì No Pagina 46 Regole di identificazione Entità EIF relazioni Studente 1) Il gruppo di dati o Sì informazioni di controllo è un gruppo di dati logico, o identificabile dall'utente, che soddisfa determinati requisiti utente. 2) Il gruppo di dati è Sì referenziato dall'applicazione che si sta misurando ed è ad essa esterno. 3) Il gruppo di dati non Sì è mantenuto dall'applicazione che si sta misurando. 4) Il gruppo di dati è Sì contato come un ILF per almeno un'altra applicazione. 5) Il gruppo di dati Sì identificato non è stato contato come un ILF per l'applicazione. e Pagina 47 RET: ILF o EIF Professore Corso, Tenuto da Esame Superato Studenti RET 1 1 1 1 Pagina 48 DET ILF o EIF Professore Nome Anzianità Totale Corso, Tenuto da Codice Istituto Nome_Professor e Totale Esame Superato Voto Codice_corso Matricola_stude nte Totale Studenti Matricola Eta` Anno_corso Media Totale Campo Chiave Conta riconoscibile esterna? implementadall’utente e Conta 1 DET zione come non un DET: ricorsivo? Conta 1 DET Sì Sì 2 No No No No Sì Sì No No No Sì No No No 2 1 Sì No No No Sì Sì 1 2 Sì Sì Sì Sì 4 No No No No No No No No No No No Pagina 49 Regole identificazione EI di Processi Inserisci Inserisci Professore Corso 1) I dati sono ricevuti dall’esterno del confine dell’applicazione. 2) I dati in un ILF sono mantenuti attraverso un processo elementare dell'applicazione. 3) Il processo è la più piccola unità di attività che è significativa per l'utente. 4) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 5) E' applicabile una delle seguenti due regole: vi) il trattamento logico è unico rispetto ad altri EI, vii) i dati identificati sono diversi rispetto ad altri EI. Esercizi FP Sì Sì Inserisci Esame Superato Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì 50 Regole di identificazione EO 1) Il processo invia dati all’esterno del confine dell’applicazione. 2) I dati o le informazioni di controllo sono inviati attraverso un processo elementare dell'applicazione. 3) Il processo è la più piccola unità di attività che è significativa per l'utente. 4) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 5) E' applicabile una delle seguenti due regole: vi) il trattamento logico è unico rispetto ad altri EO, vii) i dati identificati sono diversi rispetto ad altri EO. Esercizi FP Processi Elenca Elenca Professori Corsi Sì Sì Elenca Esami Superati Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì 51 Regole di identificazione Processi EQ Interroga Interroga Professori Corsi 1) Una richiesta di input entra nel confine dell’applicazione. 2) Un risultato di output esce dal confine dell'applicazione. 3) Sono reperiti dei dati. 4) I dati reperiti non contengono dati derivati. 5) Il processo è la più piccola unità di attività che è significativa per l'utente. 6) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 7) L'elaborazione non aggiorna alcun ILF. 8) E' applicabile una delle seguenti due regole: ix) il trattamento logico è unico rispetto ad altri EO, x) i dati identificati sono diversi rispetto ad altri EO. Esercizi FP Sì Sì Interroga Esami Superati Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì 52 DET per EI (1 per ogni campo che etichetta un flusso entrante dall’esterno dell’applicazione nel processo) Inserisci Inserisci Inserisci Esame Corso Professore Superato Corso, Tenuto da Codice Sì Istituto Sì Nome_Profess Sì ore Totale 3 Professore Nome Anzianita` Totale Esame Superato Codice Corso Matricola Voto Totale Esercizi FP Sì Sì 2 Sì Sì Sì 3 53 FTR per EI (1 per ogni ILF mantenuto, 1 per ogni ILF o EIF referenziato) Inserisci Inserisci Inserisci Esame Corso Professore Superato Corso, Tenuto Sì, mantenuto Sì, referenziato da Professore Sì, referenziato Sì, mantenuto Esame Superato Sì, mantenuto Studenti Sì, referenziato Totale 2 1 3 Esercizi FP 54 DET per EO (1 per ogni campo che etichetta un flusso dal processo verso l’esterno dell’applicazione) Elenca Elenca Elenca Corsi Professori Esami Superati Corso, Tenuto da Codice Sì Istituto Sì Nome_Profess Sì ore Totale Corsi Sì Totale 4 Professore Nome Anzianita` Totale Professori Totale Esame Superato Codice Corso Matricola Voto Totale Esami Totale Esercizi FP Sì Sì Sì 3 Sì Sì Sì Sì 4 55 FTR per EO (1 per ogni ILF o EIF referenziato) Elenca Corsi Elenca Elenca Esami Professori Superati Corso, Tenuto Sì Sì da Professore Sì Sì Esame Sì Superato Studenti Sì Totale 2 1 3 Esercizi FP 56 DET per EQ (lato input: 1 per ogni campo che etichetta un flusso entrante dall’esterno dell’applicazione nel processo) Interroga Interroga Interroga Corsi Professori Esami Superati Corso, Tenuto da Codice Sì Sì Istituto Nome_Profess ore Totale 1 Professore Nome Anzianita` Totale Esame Superato Codice Corso Matricola Voto Totale Esercizi FP Sì 1 (Sì) 1 57 FTR per EQ (1 per ogni ILF che ha almeno un campo contato come DET lato input) Interroga Interroga Interroga Corsi Professori Esami Superati Corso, Tenuto Sì Sì da Professore Sì Esame (Sì) Superato Studenti Totale 1 1 1 Esercizi FP 58 DET per EQ (lato output: 1 per ogni campo che etichetta un flusso dal processo verso l’esterno dell’applicazione) Interroga Interroga Interroga Corsi Professori Esami Superati Corso, Tenuto da Codice Sì Sì Istituto Sì Nome_Professore Sì Totale 3 Professore Nome Anzianita` Totale Esame Superato Codice Corso Matricola Voto Totale Esercizi FP Sì Sì 2 (Sì) Sì Sì 3 59 FTR per EQ (lato output: 1 per ogni ILF o EIF referenziato) Interroga Interroga Interroga Corsi Professori Esami Superati Corso, Tenuto Sì Sì da Professore Sì Sì Esame Sì Superato Studenti Sì Totale 2 1 3 Esercizi FP 60 Esercizio n. 4 - 27 Giugno 1997 Si consideri l’applicazione Gestione Deputati per la gestione delle informazioni riguardanti i deputati. L'organizzazione dei dati è rappresentata dal seguente diagramma ER: Applicazioni Gesitone Deputati Nome Deputato Cognome Residenza (1,1) Numero tessera Iscritto (1,n) Data di iscrizione Sede Nome Partito (1,n) Presidenza (1,1) Commissione Parlamentare Frequenza Nome Applicazione Gestione Commissioni Parlamentari Le linee tratteggiate indicano i confini dell'applicazione Gestione Deputati, che si deve contare, e dell'applicazione Gestione Commissioni Parlamentari. Esercizi FP 61 L’applicazione Gestione Deputati deve eseguire le seguenti operazioni: 1 Gestione dei dati sui deputati 1.1 Inserisci Deputato: inserisci i dati di un nuovo deputato (Nome, Cognome, Residenza, Numero di Tessera del partito a cui è iscritto, Data di iscrizione e Nome del partito a cui è iscritto). 1.2 Cerca Deputato: richiedi i dati di un deputato dato il suo Nome. 1.3 Elenca Deputati: mostra la lista di tutti i deputati stampando alla fine il numero totale dei deputati. 2 Gestione dei dati sui partiti 2.1 Inserisci Partito: inserisci i dati di un nuovo partito. I dati comprendono il Nome e la Sede. 2.2 Cerca Partito: richiedi i dati di un partito dato il suo Nome. 2.3 Elenca Partiti: mostra la lista di tutti i partiti stampando alla fine il numero totale dei partiti. 3 Gestione delle presidenze delle commissioni. 3.1 Inserisci Presidenza: inserisci i dati riguardanti la presidenza di una commissione da parte di un partito. I dati comprendono il Nome del partito e il Nome della commissione. 3.2 Interroga Presidenze: chiedi quale partito presiede una commissione e con quale frequenza si riunisce la commissione dato il nome della commissione. 3.3 Elenca Presidenze: mostra la lista di tutte le presidenze (senza stampare alla fine il numero totale di presidenze). Si richiede di identificare le funzioni di tipo dati e di tipo transazione e di calcolare la complessità delle funzioni di tipo dati. Esercizi FP 62 Soluzione es. 4: Regole di Entità e identificazione relazioni ILF Deputato, Iscritto 1) Il gruppo Sì di dati o informazion i di controllo è un gruppo di dati logico, o identificabil e dall'utente, che soddisfa determinati requisiti utente. 2) Il gruppo Sì di dati è mantenuto all'interno del confine dell'applicaz ione. Esercizi FP Partito Sì Presidenza Commissio ne Sì Sì Sì Sì No 63 3) Il gruppo di dati è modificato, o mantenuto, attraverso un processo elementare dell'applicaz ione. 4) Il gruppo di dati identificato non è stato contato come un EIF per l'applicazion e. Sì, dal processo 1.1 Inserisci Deputato. Sì, dal processo 2.1 Inserisci Partito. Sì, No processo 3.1 Inserisci Presidenza Sì Sì Sì Esercizi FP No 64 Regole di identificazione EIF 1) Il gruppo di dati o informazioni di controllo è un gruppo di dati logico, o identificabile dall'utente, che soddisfa determinati requisiti utente. 2) Il gruppo di dati è referenziato dall'applicazione che si sta misurando ed è ad essa esterno. 3) Il gruppo di dati non è mantenuto dall'applicazione che si sta misurando. 4) Il gruppo di dati è contato come un ILF per almeno un'altra applicazione. 5) Il gruppo di dati identificato non è stato contato come un ILF per l'applicazione. Esercizi FP Entità e relazioni Commissione Sì Sì Sì Sì Sì 65 RET: ILF o EIF Deputato, Iscritto Partito Presidenza Commissione Esercizi FP RET 2 (associazione con attributi) 1 1 1 66 DET ILF o EIF Campo Chiave Conta riconoscibile esterna? implementazio dall’utente e Conta 1 DET ne come un non ricorsivo? DET: Conta 1 DET Deputato, Iscritto Nome Cognome Residenza Numero_tessera Data_di_iscrizione Nome_Partito Totale Sì Sì Sì Sì Sì No 5 No No No No No Sì 1 No No No No No No Partito Nome Sede Totale Sì Sì 2 No No No No Sì Sì 2 No No No No No No Presidenza Nome_commissione No Nome_partito No Totale Commissione Nome Frequenza Totale Esercizi FP Sì Sì 2 67 Regole di identificazione EI 1) I dati sono ricevuti dall’esterno del confine dell’applicazione. 2) I dati in un ILF sono mantenuti attraverso un processo elementare dell'applicazione. 3) Il processo è la più piccola unità di attività che è significativa per l'utente. 4) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 5) E' applicabile una delle seguenti due regole: vi) il trattamento logico è unico rispetto ad altri EI, vii) i dati identificati sono diversi rispetto ad altri EI. Esercizi FP Processi Inserisci Deputato Sì Inserisci Partito Sì Inserisci Presidenza Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì 68 Regole di identificazione EO 1) Il processo invia dati all’esterno del confine dell’applicazione. 2) I dati o le informazioni di controllo sono inviati attraverso un processo elementare dell'applicazione. 3) Il processo è la più piccola unità di attività che è significativa per l'utente. 4) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 5) E' applicabile una delle seguenti due regole: vi) il trattamento logico è unico rispetto ad altri EO, Esercizi FP Processi Elenca Deputati Sì Elenca Partiti Sì Sì Sì Sì Sì Sì Sì Sì Sì 69 vii) i dati Sì identificati sono diversi rispetto ad altri EO. Esercizi FP Sì 70 Regole di identificazione EQ Processi Cerca Cerca Deputati Partiti 1) Una richiesta di input entra nel confine dell’applicazione. 2) Un risultato di output esce dal confine dell'applicazione. 3) Sono reperiti dei dati. 4) I dati reperiti non contengono dati derivati. 5) Il processo è la più piccola unità di attività che è significativa per l'utente. 6) Il processo è autonomo e lascia l'applicazione che si sta misurando in uno stato di coerenza funzionale. 7) L'elaborazione non aggiorna alcun ILF. 8) E' applicabile una delle seguenti due regole: Esercizi FP Sì Sì Interroga Presiden ze Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Sì Elenca Presiden ze Sì 71 ix) il trattamento logico è unico rispetto ad altri EQ, x) i dati identificati sono diversi rispetto ad altri EQ. Esercizi FP Sì Sì Sì Sì Sì Sì Sì Sì 72 DET per EI (1 per ogni campo che etichetta un flusso entrante dall’esterno dell’applicazione nel processo) Inserisci Inserisci Inserisci Deputato Partito Presidenza Deputato, Iscritto Nome Sì Cognome Sì Residenza Sì Numero_tessera Sì Data_di_iscrizione Sì Nome_Partito Sì Totale 6 Partito Nome Sede Totale Presidenza Nome_commissio ne Nome_partito Totale Esercizi FP Sì Sì 2 Sì Sì 2 73 FTR per EI (1 per ogni ILF mantenuto, 1 per ogni ILF o EIF referenziato) Inserisci Inserisci Inserisci Deputato Partito Presidenza Deputato, Sì, mantenuto Iscritto Partito Sì, Sì, mantenuto Sì, referenziato referenziato Presidenza Sì, mantenuto Commissione Sì, referenziato Totale 2 1 3 Esercizi FP 74 DET per EO (1 per ogni campo che etichetta un flusso dal processo verso l’esterno dell’applicazione) Elenca Elenca Deputati Partiti Deputato, Iscritto Nome Sì Cognome Sì Residenza Sì Numero_tessera Sì Data_di_iscrizione Sì Nome_Partito Sì Totale deputati Sì Totale 7 Partito Nome Sede Totale partiti Totale Esercizi FP Sì Sì Sì 3 75 FTR per EO (1 per ogni ILF o EIF referenziato) Elenca Elenca Deputati Partiti Deputato, Sì Iscritto Partito Sì Sì Presidenza Commissione Totale 2 1 Esercizi FP 76 DET per EQ (lato input: 1 per ogni campo che etichetta un flusso entrante dall’esterno dell’applicazione nel processo) Cerca Cerca Interroga Elenca Deputato Partito Presiden Presiden za ze Deputato, Iscritto Nome Sì Cognome Residenza Numero_tessera Data_di_iscrizione Nome_Partito Totale 1 Partito Nome Sede Totale Presidenza Nome_commissio ne Nome_partito Totale Esercizi FP Sì 1 Sì 1 0 77 FTR per EQ (lato input: 1 per ogni ILF che ha almeno un campo contato come DET lato input) Cerca Cerca Interroga Elenca Deputato Partito Presiden Presiden za ze Deputato, Iscritto Sì Partito Sì Presidenza Sì Commissione Totale 1 1 1 0 Esercizi FP 78 DET per EQ (lato output: 1 per ogni campo che etichetta un flusso dal processo verso l’esterno dell’applicazione) Cerca Cerca Interroga Elenca Deputato Partito Presiden Presiden za ze Deputato, Iscritto Nome Sì Cognome Sì Residenza Sì Numero_tessera Sì Data_di_iscrizione Sì Nome_Partito Sì Totale 6 Partito Nome Sede Totale Presidenza Nome_commissione Nome_partito Totale Commissione Nome_commissione Frequenza Totale Esercizi FP Sì Sì 2 Sì Sì Sì Sì 2 Sì 3 79 FTR per EQ (lato output: 1 per ogni ILF o EIF referenziato) Cerca Cerca Deputato Partito Deputato, Iscritto Partito Presidenza Commissione Totale Esercizi FP Sì Sì Sì 2 1 Interroga Elenca Presiden Presiden za ze Sì Sì Sì 3 Sì Sì Sì 3 80