Progettazione concettuale impiegato datore lavora in Ente persona Progettazione concettuale 1 requisiti del Sistema informativo progettazione concettuale SCHEMA CONCETTUALE progettazione logica SCHEMA LOGICO progettazione fisica Analisi dei requisiti e progettazione concettuale ("Analisi dei dati") Comprende attività (interconnesse) di acquisizione dei requisiti analisi dei requisiti costruzione dello schema concettuale costruzione del glossario dei termini Datore Impiego corrente Impiego passato Partecipante Dipendente Professionista Progettazione concettuale 3 Raccolta dei requisiti E’ la fase in cui si individuano i problemi che l’applicazione da realizzare deve risolvere le caratteristiche che tale applicazione dovrà avere: aspetti statici (dati) aspetti dinamici (operazioni sui dati) Progettazione concettuale 4 Analisi dei requisiti Inizialmente i requisiti sono raccolti in linguaggio naturale e sono spesso ambigue e disorganizzate L’analisi dei requisiti consiste nel chiarimento e nell’organizzazione delle specifiche dei requisiti Progettazione concettuale 5 Requisiti Possibili fonti diversificate tra loro, per l’acquisizione dei requisiti: utenti, attraverso: interviste documentazione scritta apposita documentazione esistente: normative (leggi, regolamenti di settore) regolamenti interni, procedure aziendali modulistica realizzazioni preesistenti: applicazioni da rimpiazzare o che devono interagire con il software da realizzare 6 Progettazione concettuale Acquisizione e analisi dei requisiti Il reperimento dei requisiti è un'attività difficile e non standardizzabile l'attività di analisi inizia con i primi requisiti raccolti e spesso indirizza verso altre acquisizioni; spesso procede parallelamente alla realizzazione dello schema E-R Progettazione concettuale 7 Acquisizione per interviste con gli utenti utenti diversi possono fornire informazioni diverse utenti a livello più alto hanno spesso una visione più ampia ma meno dettagliata le interviste portano spesso ad una acquisizione dei requisiti “per raffinamenti successivi” Progettazione concettuale 8 Interazione con gli utenti Spunti: effettuare spesso verifiche di comprensione e coerenza sulle informazioni raccolte verificare anche per mezzo di esempi (generali e relativi a casi limite) richiedere definizioni e classificazioni far evidenziare gli aspetti essenziali rispetto a quelli marginali Progettazione concettuale 9 Un esempio Società di formazione (1) Si vuole realizzare una base di dati per una società che eroga corsi, di cui vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Per gli studenti (circa 5000), identificati da un codice, si vuole memorizzare il codice fiscale, il cognome, l'età, il sesso, il luogo di nascita, il nome dei loro attuali datori di lavoro, i posti dove hanno lavorato in precedenza insieme al periodo, l'indirizzo e il numero di telefono, i corsi che hanno frequentato (i corsi sono in tutto circa 200) e il giudizio finale. Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno, i luoghi e le ore dove sono tenute le lezioni. I corsi hanno un codice, un titolo e possono avere varie edizioni con date di inizio e fine e numero di partecipanti. Se gli studenti sono liberi professionisti, vogliamo conoscere l'area di interesse e, se lo possiedono, il titolo. Per quelli che lavorano alle dipendenze di altri, vogliamo conoscere invece il loro livello e la posizione ricoperta. Società di formazione (3) Per gli insegnanti (circa 300), rappresentiamo il cognome, l'età, il posto dove sono nati, il nome del corso che insegnano, quelli che hanno insegnato nel passato e quelli che possono insegnare. Rappresentiamo anche tutti i loro recapiti telefonici. I docenti possono essere dipendenti interni della società o collaboratori esterni. Requisiti: documentazione descrittiva Regole generali: scegliere il corretto livello di astrazione standardizzare la struttura delle frasi suddividere le frasi articolate separare le frasi sui dati da quelle sulle funzioni Progettazione concettuale 13 Glossario dei termini, omonimi e sinonimi Raramente i requisisti espressi in linguaggio naturale sono privi di ambiguità. È infatti frequente il caso di Omonimi: lo stesso termine viene usato per descrivere concetti differenti (es: libro e copia di libro, posto di lavoro e geografico) Sinonimi: termini diversi vengono usati per descrivere lo stesso concetto (es: studente e partecipante) Un modo conveniente per rappresentare i concetti più rilevanti emersi dall’analisi è il glossario dei termini, il cui scopo è fornire per ogni concetto rilevante: Una breve descrizione del concetto Eventuali sinonimi Relazioni con altri concetti del glossario stesso Progettazione concettuale 14 Requisiti: organizzazione di termini e concetti Regole generali costruire un glossario dei termini individuare omonimi e sinonimi e unificare i termini rendere esplicito il riferimento fra termini riorganizzare le frasi per concetti Progettazione concettuale 15 Glossario dei termini Termine Descrizione Partecipante Persona che partecipa ai corsi Docente Corso Società Sinonimi Studente Collegamenti Corso, Società Insegnante Corso Docente dei corsi. Può essere esterno Corso organizzato Seminario dalla società. Può avere più edizioni. Ente presso cui i Posti partecipanti lavorano o hanno lavorato Progettazione concettuale Docente Partecipante 16 Ristrutturazione dei requisiti Oltre a costruire il glossario, per semplificare le analisi successive, è utile riformulare i requisiti: Eliminare le omonimie Usare un termine univoco per ogni concetto Riorganizzare le frasi raggruppandole in base al concetto cui si riferiscono Nell’esempio: Frasi di carattere generale Frasi riferite ai partecipanti Frasi riferite ai docenti Frasi riferite ai corsi Frasi riferite alle società Progettazione concettuale 17 Strutturazione dei requisiti in gruppi di frasi omogenee Frasi di carattere generale Si vuole realizzare una base di dati per una società che eroga corsi, di cui vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Progettazione concettuale 18 Frasi relative ai partecipanti Per i partecipanti (circa 5000), identificati da un codice, rappresentiamo il codice fiscale, il cognome, l'età, il sesso, la città di nascita, i nomi dei loro attuali datori di lavoro e di quelli precedenti (insieme alle date di inizio e fine rapporto), le edizioni dei corsi che stanno attualmente frequentando e quelli che hanno frequentato nel passato, con la relativa votazione finale in decimi. Progettazione concettuale 19 Frasi relative ai datori di lavoro Relativamente ai datori di lavoro presenti e passati dei partecipanti, rappresentiamo il nome, l'indirizzo e il numero di telefono. Frasi relative ai corsi Per i corsi (circa 200), rappresentiamo il titolo e il codice, le varie edizioni con date di inizio e fine e, per ogni edizione, rappresentiamo il numero di partecipanti e il giorno della settimana, le aule e le ore dove sono tenute le lezioni. Frasi relative a tipi specifici di partecipanti Per i partecipanti che sono liberi professionisti, rappresentiamo l'area di interesse e, se lo possiedono, il titolo professionale. Per i partecipanti che sono dipendenti, rappresentiamo invece il loro livello e la posizione ricoperta. Progettazione concettuale 21 Frasi relative ai docenti Per i docenti (circa 300), rappresentiamo il cognome, l'età, la città di nascita, tutti i numeri di telefono, il titolo del corso che insegnano, di quelli che hanno insegnato nel passato e di quelli che possono insegnare. I docenti possono essere dipendenti interni della società di formazione o collaboratori esterni. Progettazione concettuale 22 Operazioni sui dati E' importante raccogliere specifiche sulle operazioni da effettuare sui dati Utilizzando le stessa terminologia usata per i dati Descrivendo la frequenza con la quale le varie operazioni sono eseguite Progettazione concettuale 23 Operazioni sulla società di formazione 1. 2. 3. 4. 5. 6. 7. 8. Inserisci un nuovo partecipante indicando tutti i suoi dati (40/giorno) Assegna un partecipante a una edizione di corso (50/giorno) Inserisci un nuovo docente indicando dati e corsi che può insegnare (2/giorno) Assegna un docente abilitato a una edizione di corso (15/giorno) Stampa tutte le informazioni sulle edizioni passate di un corso, con titolo, orari, lezioni e numero partecipanti (10/giorno) Stampa tutti i corsi offerti, con informazioni sui docenti che possono insegnarli (20/giorno) Per ogni docente, trova i partecipanti a tutti i corsi da lui insegnati (5/settimana) Effettua una statistica su tutti i partecipanti a un corso, con tutte le informazioni su di essi, sulla edizione a cui hanno partecipato, e la rispettiva votazione (10/mese) Progettazione concettuale 24 Criteri di rappresentazione Quale costrutto E-R va utilizzato per rappresentare un concetto presente nelle specifiche informali? Bisogna basarsi sulle definizioni dei costrutti del modello E-R Progettazione concettuale 25 Trasformazione in schema E-R Progettazione concettuale 26 Strategie di progetto top-down: si parte da uno schema iniziale molto astratto ma completo, che viene successivamente raffinato fino ad arrivare allo schema finale bottom-up: si suddividono le specifiche in modo da sviluppare semplici schemi parziali ma dettagliati, che poi vengono integrati tra loro inside-out: lo schema si sviluppa “a macchia d’olio”, partendo dai concetti più importanti, aggiungendo quelli a essi correlati, e così via Progettazione concettuale 27 Strategia top-down Schema Schema intermedio iniziale Schema Specifiche intermedio Schema finale Progettazione concettuale 28 Primitive di raffinamento top-down Entità Gerarchia di entità Persona Persona Uomo Progettazione concettuale Donna 29 Entità Entità e associazioni Esame Entità Entità e attributi Impiegato Studente Esame Corso Cognome Età Impiegato Stipendio Associazioni Più associazioni nata Persona Di Città Persona Città vive Associazioni Entità e associazioni Dipendente Dipendente in lavora con Dipartimento dirige Dipartimento Dirigente Realizzazione di uno schema concettuale con applicazione delle primitive di raffinamento top-down Cognome Età Persona Studente Impiegato Esame Esame Persona Uomo Corso Donna Stipendio Strategia bottom-up Specifiche 2,1 Schema 2,1 Specifiche 1,1 Schema 1,1 Specifiche Specifiche 1 Specifiche 2 Schema finale Specifiche 2,2 Schema 2,2 Specifiche1,2 1,2 Schema Progettazione concettuale 33 Primitive di raffinamento bottom-up Specifiche su concetto Nuova entità specifica su studente .. per gli studenti (circa 5000), identificati da un codice, si vuole memorizzare il codice fiscale, il cognome, l'età, il sesso, il luogo di nascita Studente Progettazione concettuale 34 Entità isolate Associazioni tra le entità Studente Studente Corso Esame Corso Entità isolate Gerarchia di generalizzazione Persona Dipendente Dirigente Dipendente Dirigente Realizzazione dello schema con l’applicazione delle primitive di raffinamento Bottom-up Persona Studente Uomo Specifica su Esame Impiegato impiegato Corso Donna Un esempio già visto… Si vuole modellare il sistema informativo di un’azienda con sedi dislocate in diverse città. Gli impiegati dell’azienda sono identificati da un codice e afferiscono a un dipartimento (a partire da una certa data). Ogni dipartimento ha un nome, un direttore e un numero di telefono ed è dislocato su una sola sede, di cui è noto l’indirizzo. Gli impiegati partecipano a diversi progetti, che sono caratterizzati da un nome, un budget e una data di consegna. Progettazione concettuale 37 …modellato con strategia inside-out (0,1) Cognome Telefono (1,N) Direzione Impiegato Codice (1,1) (0,N) Partecipazione (1,N) (0,1) Afferenza Dipartimento (1,1) Nome (0,1) Data Composizione (1,N) (1,N) Sede Progetto Via Budget Nome Indirizzo CAP Città Strategia mista a) si individuano i concetti principali e si realizza uno schema scheletro Si organizzano i concetti più importanti in un semplice schema concettuale b) Sulla base dello schema scheletro si può decomporre, raffinare, espandere, integrare c) Analisi di qualità dello schema ed eventuale ristrutturazione Vantaggi della strategia mista E' la più flessibile tra le strategie, si adatta a esigenze contrapposte: Suddividere un problema complesso in sottoproblemi Procedere per raffinamenti successivi In tutti i casi pratici di una certa complessità, la strategia mista è l'unica che si può effettivamente adottare Progettazione concettuale 42 Qualità di uno schema concettuale correttezza: uno schema E-R è corretto quando utilizza propriamente i costrutti messi a disposizione dal modello E-R. Possono esserci: - errori sintattici (uso non ammesso di costrutti) errori semantici (uso di costrutti che non rispetta la definizione) completezza: uno schema E-R è completo quando rappresenta tutti i dati di interesse e tutte le operazioni possono essere eseguite a partire dai concetti descritti dallo schema Progettazione concettuale 43 leggibilità: uno schema E-R è leggibile quando rappresenta tutti i dati in maniera naturale e comprensibile minimalità: uno schema E-R è minimale quando tutte le specifiche sui dati sono rappresentate una sola volta nello schema uno schema non è minimale quando esistono delle ridondanze, cioè concetti che possono essere derivati da altri. Non sempre una ridondanza è indesiderata, ma può nascere da precise scelte progettuali Progettazione concettuale 44 Un esempio di progettazione concettuale Società di formazione Frasi di carattere generale Si vuole realizzare una base di dati per una società che eroga corsi, di cui vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Progettazione concettuale 45 Schema scheletro Corso Partecipazione Docenza Partecipante Docente Progettazione concettuale 46 Frasi relative ai partecipanti Per i partecipanti (circa 5000), identificati da un codice, rappresentiamo il codice fiscale, il cognome, l'età, il sesso, la città di nascita, i nomi dei loro attuali datori di lavoro e di quelli precedenti (insieme alle date di inizio e fine rapporto), le edizioni dei corsi che stanno attualmente frequentando e quelli che hanno frequentato nel passato, con la relativa votazione finale in decimi. Progettazione concettuale 47 Raffinamento di partecipante CF Partecipante Codice ….. Progettazione concettuale 48 Frasi relative ai datori di lavoro Relativamente ai datori di lavoro presenti e passati dei partecipanti, rappresentiamo il nome, l'indirizzo e il numero di telefono. Frasi relative a tipi specifici di partecipanti Per i partecipanti che sono liberi professionisti, rappresentiamo l'area di interesse e, se lo possiedono, il titolo professionale. Per i partecipanti che sono dipendenti, rappresentiamo invece il loro livello e la posizione ricoperta. Datore (0,N) (1,1) Impiego corrente (0,N) Impiego passato (0,N) Partecipante Nome ….. CF Codice ….. Dipendente Livello Posizione Professionista Titolo prof. Area Frasi relative ai corsi Per i corsi (circa 200), rappresentiamo il titolo e il codice, le varie edizioni con date di inizio e fine e, per ogni edizione, rappresentiamo il numero di partecipanti e il giorno della settimana, le aule e le ore dove sono tenute le lezioni. Progettazione concettuale 51 Data fine Data inizio N.Part. Edizione corso (1,1) Tipologia (0,N) Composizione (1,1) Corso Titolo (1,N) Codice Lezione Orario Aula Giorno Frasi relative ai docenti Per i docenti (circa 300), rappresentiamo il cognome, l'età, la città di nascita, tutti i numeri di telefono, il titolo del corso che insegnano, di quelli che hanno insegnato nel passato e di quelli che possono insegnare. I docenti possono essere dipendenti interni della società di formazione o collaboratori esterni. Progettazione concettuale 53 Raffinamento di docente Telefono CF (1,N) Cognome Docente Città nascita Età Collaboratore Progettazione concettuale Interno 54 Integrazione Corso Partecipazione Docenza Partecipante Docente Progettazione concettuale 55 Integrazione: partecipante e corso (0,N) Partecipante partecipazione passata (0,N) (0,1) (0,N) partecipazione Partecipazione corrente Progettazione concettuale Edizione Corso corso 56 Integrazione: docente e corso (0,1) Edizione Corso corso Data inizio (0,N) Docenza passata Docente Docenza (0,1) (1,1) (0,1) Docenza corrente Tipologia (1,N) (0,N) Corso Abilitazione (1,N) Titolo Codice Esercizio Si vuole rappresentare la base di dati di un archivio fotografico distribuito in varie sedi. Le foto hanno un titolo, una descrizione, una dimensione, uno stato di conservazione, una data e, quando noto, un autore; per le foto a colori, è indicato il tipo di stampa (chiaro o opaco). Le foto sono reperibili in archivi, di cui è registrato il responsabile (dati anagrafici, recapito, e-mail) e l’indirizzo web. Le fotografie appartengono a una categoria e possono riprendere uno o più soggetti (personaggi, luoghi, oggetti, opere d’arte...). Ciascun soggetto ha una propria chiave. I personaggi rappresentati hanno un nome e un sesso, data e luogo di nascita ed (eventualmente) morte. Per i personaggi politici, si indica il partito di appartenenza e l’eventuale carica governativa ricoperta. Per gli artisti, si indica la loro attività prevalente (pittura, scultura, musica, ...). Quando le foto descrivono opere artistiche, è noto il nome dell’opera d’arte, l’artista che l’ha realizzata, il luogo dove l’opera risiede e l’anno di realizzazione. Quando le foto descrivono luoghi sono indicate le coordinate geografiche (nazione, città, via...) e una descrizione. Esercizio Una società multinazionale che produce abbigliamento sportivo ha sedi in diversi paesi. Le sedi della società sono identificate in modo univoco da un codice identificativo e sono caratterizzate da un indirizzo, da un numero di telefono e dal nominativo del responsabile. Le sedi sono suddivise in magazzini, centri di produzione e sedi di vendita al minuto. I magazzini, caratterizzati da un loro ulteriore codice e dal numero di addetti, riforniscono i negozi in franchising (dunque non di proprietà della società). I negozi in franchising si riforniscono unicamente dal magazzino più vicino. I centri di produzione sono caratterizzati dal numero di addetti e dalla capacità produttiva (in unità al giorno) relativa ai singoli prodotti. Le sedi di vendita al minuto sono caratterizzate da un fatturato medio e da un elenco dei prodotti disponibili a magazzino, con relative giacenze. I negozi e le sedi di vendita al minuto vendono i loro prodotti ai clienti (che sono identificati da un codice) senza alcun rapporto esclusivo. Per ogni transazione di vendita (sia al minuto che tra magazzini e negozi in franchising) devono essere registrate i prodotti venduti (e relative quantità), la data di vendita e il totale della transazione.