Transcript 7_ProgConcettuale - Dipartimento di Ingegneria dell
Progettazione concettuale
persona impiegato lavora in datore
Progettazione concettuale
Ente
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
Impiego corrente Datore 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 Progettazione concettuale 6
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
Partecipante Persona che Docente Corso Società
Descrizione
partecipa ai corsi
Sinonimi
Studente
Collegamenti
Corso, Società Insegnante Corso Docente dei corsi.
Può essere esterno Corso organizzato dalla società. Può avere più edizioni.
Seminario Ente presso cui i partecipanti lavorano Posti 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)
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
: si suddividono le specifiche in modo da sviluppare semplici schemi parziali ma dettagliati, che poi vengono integrati tra loro
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 finale
Progettazione concettuale 28
Primitive di raffinamento top-down
Entità entità Gerarchia di
Persona Uomo Persona Donna
Progettazione concettuale 29
Entità Entità e associazioni
Esame
Entità Entità e attributi
Impiegato Studente Esame Corso Cognome Età Impiegato Stipendio
Associazioni Più associazioni
Persona Di Città
Associazioni Entità e associazioni
Persona nata vive Città Dipendente in Dipartimento Dipendente lavora con Dirigente dirige Dipartimento
Realizzazione di uno schema concettuale con applicazione delle primitive di raffinamento top-down
Cognome Persona Età Studente Corso Uomo Stipendio Donna
Strategia bottom-up
Progettazione concettuale 33
Primitive di raffinamento bottom-up
Specifiche su concetto Nuova entità
specifica su studente
.. per gli 5000), identificati da un codice, nascita studenti (circa si vuole memorizzare il codice fiscale, il cognome, l'età, il sesso, il luogo di Progettazione concettuale
Studente
34
Entità isolate Associazioni tra le entità
Studente Studente Esame Corso Corso
Entità isolate Gerarchia di generalizzazione
Persona Dipendente Dirigente Dipendente Dirigente
Realizzazione dello schema con l’applicazione delle primitive di raffinamento Bottom-up
Specifica su impiegato
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
Cognome Codice Impiegato (0,N) Partecipazione (1,N) (0,1) Direzione (1,1) Telefono (1,N) Dipartimento (0,1) Afferenza (1,N) (0,1) Data (1,1) Composizione (1,N) Nome Sede Progetto Via Indirizzo Budget Nome Città CAP
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
Progettazione concettuale
Docente
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
Partecipante CF 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.
(0,N) (1,1) Impiego corrente Livello Datore (0,N) Impiego passato (0,N) Partecipante Dipendente Posizione Nome …..
CF Codice …..
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 inizio (1,1) Tipologia (0,N) Corso Data fine N.Part.
Edizione corso (1,N) Composizione (1,1) Lezione Titolo Codice 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 (1,N) Docente Città nascita CF Cognome Età Collaboratore
Progettazione concettuale
Interno
54
Partecipazione
Integrazione
Corso Docenza Partecipante
Progettazione concettuale
Docente
55
Integrazione: partecipante e corso
(0,N) partecipazione passata (0,N) (0,1) (0,N) partecipazione Partecipazione corrente Edizione Corso corso
Progettazione concettuale 56
Data inizio
Integrazione: docente e corso
(0,1) Docenza passata (0,N) Edizione Corso corso (1,1) (0,1) Docenza corrente (0,1) Tipologia (0,N) Corso (1,N) 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.