Architettura dei Database Territoriali Pr. R. Laurini III – STRUMENTI PER LA MODELLAZIONE DEGLI OGGETTI SPAZIALI Capitolo 3° STRUMENTI PER LA MODELLAZIONE DEGLI OGGETTI SPAZIALI 3.1 – Dati alfanumerici e multimediali • Alfanumerico – intero, reale, catena di caratteri, booleani • Multimediale – – – – – segnali, immagini, disegni, immagini animate, audiovisivi, documenti, musica Ecc. Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali • • • • • • • • 3.1 – Dati alfanumerici e multimediali 3.2 – Riassunto sulle strutture dati 3.3 – Livelli di progettazione - ANSI SPARC 3.4 – Formalismo entità-associazioni 3.5 – Formalismo con pittogrammi e icone 3.6 – Passaggio dal concettuale al relazionale 3.7 – UML 3.8 – Conclusioni 3.2 – Riassunto sulle strutture dati • • • • • • Tabella Lista Anello Albero binario Altre strutture Indice 1 Architettura dei Database Territoriali Pr. R. Laurini Strutture dati • Dati elementari Tabella • Vettore = tabella a 1 dimensione – interi, reali, booleani, caratteri, ecc. • Tabella a n dimensioni • Struttura dati = parecchi dati legati insieme • Esempi: un vettore, una tabella, ecc. Vettore (tabella a 1 dim.) Provincie Agrigento Alessandria Ancona Aosta Arezzo Ascoli Piceno Asti Avelino Bari Belluno Benevento Bergamo Bologna Brescia Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali Tabella a 2 dimensioni Dj Oi Tij Esempio: Tij = numero delle persone di origine i andando alla destinazione j 2 Architettura dei Database Territoriali Pr. R. Laurini Lista Anello Ingresso Svizzera Ingresso Germania Spagna Grecia Francia Belgio Irlanda Danimarca Italia Danimarca Belgio Lussemburgo Paesi Bassi Portogallo Spagna Albero binario Albero binario per classificazione GR Io vvvv Nonna vvvvv Nonnetto vvvvv Nonnetta vvvvvv LUX E Mamma Papà Nonno .............. vvvvvv Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali D B I F DK GB NL IRL P 3 Architettura dei Database Territoriali Pr. R. Laurini Alberi n-ari Indice • Elenco • Acceleratore d’accesso • Senza indice: Giulio Gustavo Ann Ursula Francesca Maria Giacomo Antonio – scansione sequenziale di tutto il DB – costoso in termine di tempo Luigi • Necessità di struttura dati e procedure di accesso adattate Carlo Indicizzazione Gerarchia di indici Indice livello 1 Indice livello 2 1 Chiavi Indirizzi …. ….. ….. …. ….. …… …... Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 05 5 11 6 22 7 5 33 8 42 9 59 10 6 68 11 77 12 89 15 7 13 26 15 27 22 28 ... 15 79 44 85 45 89 46 01 20 03 21 05 22 Indice livello 3 2 22 1 59 2 89 3 3 ... 07 23 09 24 11 25 Dati aaaa bbbb cccc dddd Blocco eeee gggg hhhh kkkk Blocco ... 4 Architettura dei Database Territoriali Pr. R. Laurini 3.3 – Livelli di progettazione ANSI SPARC Tempi di risposta • Ipotizziamo n record • Metodo per la progettazione dei sistemi informativi • Senza indice (scansione sequenziale) • tm = n/2 • Con indici (scansione dicotomica) • tm = log2(n) • Separazione dei dati dai trattamenti • Metodo MERISE MONDO REALE Modello ANSI SPARC Modello esterno 1 Modello esterno 2 Modello concettuale (1/2) Modello esterno 3 Modello esterno n Modello concettuale • Biglietto da visita del DB • Modello di una porzione del mondo reale (mini-mondo) • Concettuale – Fatto con concetti chiari – Base della concezione del DB Modello logico Modello interno Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 5 Architettura dei Database Territoriali Pr. R. Laurini Modello concettuale (2/2) • Caratteristiche di un buon modello concettuale – Espressività – Semplicità – Minimalità – Formalità Modello logico • Utilizzando un formalismo matematico preciso • Ad esempio: modello relazionale Formalismo entità-associazione Modello interno • • • • Detto anche fisico Fatto con strutture dati Importanza degli indici Performanza Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali Esempio Mondo reale Modello concettuale Modello logico Nodo x y Realtà Modello Schema Concetto di strada nella mente dei cittadini Classificazione: strada Identificazione: nome Geometria: arco Tabella con 3 colonne Per nodi: intero Per coordinate : reale 6 Architettura dei Database Territoriali Pr. R. Laurini Esempio di modello di flussi 3.4 – Formalismo entità-associazione Amministrazione del Catasto Mappe catastali • Divisione dell'entità in domini • Analisi dei flussi d'informazioni tra gli attori interni ed esterni • Modello concettuale Ufficio della Ricomposizione Fondiaria Consultazione Modello entità-associazione CARDINALITA ASSOCIAZIONE Persona - nome - codice fiscale - data di nascità 0-n Possesso - data di acquisito 1-n Particella - numero - superficie ATTRIBUTI Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali Richiesta di ricomposizione Informazioni Litterali Proprietari CLASSE D'ENTITA Attore della Ricomposizione Ministero Comuni, ecc.) Informazione sulle ipoteche Ufficio delle Ipoteche Modello entità-associazione • • • • • • • detto anche entità-relazione ISO TC 97 SC5 WG3 1982 individuare gli identificatori (chiavi) chiave chiave discrimante chiave stabile nel tempo chiave minimale 7 Architettura dei Database Territoriali Pr. R. Laurini Concetti • • • • • • • Esempio entità classe d’entità attributi identificatore associazione cardinalità (i-j ; k-l) vincoli d’integrità Città - nome - sindaco 1-n • Associazioni one-to-many • Associazioni many-to-one • Associazioni many-to-many Avere2 1-1 1-1 Strada Isolato Limite - numero 3-n 1-n - numero - nome 1-n Avere3 1-1 Particella - numero - superficie 3.5 – Formalismo con pittogrammi e icone Associazioni • Spesso con attributi 1-n Avere1 • Piccolo disegno (simbolo grafico) rappresentando un tipo geometrico • Pittogrammi Punto • Uso Linea Superficie Volume Provincia - nome Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 8 Architettura dei Database Territoriali Pr. R. Laurini Altri esempi Modello concettuale con icone Città Parcheggio Pittogramma semplice - ecc... 1-n Localizzare 1-n Particella Strada 1-n Limite 0-n 1-n Contenire Città Pittogramma alternativo 1-1 Fabbricato Proprietario - ecc... Possesso 1-n Con pittogrammi e icone Città Nome Popolazione 1..* 1-n Pittogrammi e icone • Facilitano la comprensione 1-n 1-1 Particella Strada Nome Tipo Direzione Limite 2-n 3-n Nome Indirizzo • Esistono pittogrammi – temporali – spazio-temporali 1-n • Uso delle icone per le interfaccie visuali 0-1 A Proprietario N°Proprietario Nome Data di nascità 1-n 1-n Casa Indirizzo Superficie Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 9 Architettura dei Database Territoriali Pr. R. Laurini 3.6 – Passaggio dal concettuale al relazionale Entità • Prima fase di trasformazione Particella – Ogni entità una relazione – Ogni associazione una relazione - N° di particella - superficie • Seconda fase – Modifiche PARTICELLA (N_Particella, Superficie) Associazione many-to-many Particella - N_particella - superficie Proprietario 1-n Possesso 1 -Data-compr 1-n - N_proprietario - indirizzo Associazioni one-to-many Proprietario - N° di proprietario 1-n - indirizzo Veicolo Possesso-2 -Data-compr 1-1 -Targa - Modello POSSESSO-1 (N_Particella, N_Proprietario, Data-compr) VEICOLO(Targa, modello, Data-comp) Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 10 Architettura dei Database Territoriali Pr. R. Laurini Esempio Entità e associazioni • Entità • "Una ditta di distribuzione desidera organizzare la gestione degli ordini in corso sotta la forma di un data-base. Un cliente può avere parecchi ordini in corso e ciascun di loro può indicare parecchi articoli". Modello concettuale – articoli – clienti – ordini • Associazioni – clienti-ordini – ordini-articoli Relazioni CLIENTE (No-cliente, nome, indirizzo,CF) Cliente -No-cliente -nome -indirizzo -CF 1-n Ordine Articolo -No-ordine -No-articolo -quantità-Sto -prezzo 1-1 1-n 0-n Ordina Contiene - data -quantità-ordinata Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali ORDINE (No-ordine, data-ordine) ARTICOLO (No-articolo, qtàsto, prezzo) CONTIENE (No-ordine, No-articolo, Qtàordinata) 11 Architettura dei Database Territoriali Pr. R. Laurini 3.7 – UML • UML = Unified Modeling Language • OMG = Object Management Group • Metodo di disegno, soprattutto per il software engineering • Versione 2.0 UML • UML è un linguaggio grafico. • Modello: è l'astrazione di un problema. • Unificato: rappresenta uno standard. • Linguaggio: insieme di simboli con un vocabolario ed una grammatica, strumento per la comunicazione. http://xoomer.alice.it/giovanni.cocco/guide/guidaUML/guidaUML.htm Vantaggi dell'UML Documentazione Ufficiale • UML 2.0 Superstructure: • La documentazione del sistema software prima che venga sviluppato. – La superstruttura definisce sei diagrammi struttura, tre diagrammi comportamento, quattro diagrammi di interazione e i vari elementi compresi in essi. • Lo schema preciso ed organico del sistema semplifica la scrittura del codice e semplifica il riutilizzo del codice. • UML 2.0 Infrastructure: • Migliora la comunicazione fra tutte le persone coinvolte nello sviluppo. • UML 2.0 Object Constraint Language (OCL): • Permette a tutti i componenti del team di avere un idea complessiva di tutto il sistema. • UML 2.0 Diagram Interchange: • Semplifica il mantenimento del sistema. Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali – L'infrastruttura definisce le classi base di fondamento per UML ma anche per altre specifiche OMG. – Permette di settare le pre-condizioni, le post-condizioni, le invarianti e altre condizioni. – Specifiche che estendono il metamodello di UML con un pacchetto supplementare per informazione orientata ai grafici, permettendo lo scambio, la memorizzazione e la visualizzazione cosi come erano in origine. 12 Architettura dei Database Territoriali Pr. R. Laurini • Object Diagram COMPONENTI UML • • • • • • • • • Object Diagram Class Diagram Use Case Diagram (Diagramma dei Casi d'Uso) Sequence Diagram (Diagramma di sequenza) Collaboration Diagram (Diagramma delle collaborazioni) State Diagram (Diagramma di stato) Activity Diagram (Diagramma delle attività) Component Diagram (Diagramma dei componenti) Deployment Diagram (Diagramma di sviluppo) • Sequence Diagram (Diagramma di sequenza) – definisce le interazioni tra gli oggetti in funzione del tempo. • Collaboration Diagram (Diagramma delle collaborazioni) – serve a descrivere la cooperazione tra le varie componenti di un sistema. Ponendo l'accento su "quali" oggetti partecipano ad una data interazione. • State Diagram (Diagramma di stato) – definisce lo stato in un dato momento di un sistema e il suo evolvere(start state, end state) al trascorrere del tempo Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali – rappresenta una singola classe. • Class Diagram – è il diagramma che rappresenta le classi nel senso OOP. Quindi le classi con attributi, metodi e le loro relazioni. • Use Case Diagram (Diagramma dei Casi d'Uso) – è la descrizione del comportamento del sistema dal punto di vista dell'utente (detto actor va inteso in senso generale potrebbe anche essere un altro sistema che interagisce con l'Use Case). Deve specificare i requisiti del sistema e cosa questo deve fare. • Activity Diagram (Diagramma delle attività) – rappresenta la catena ben definita delle azioni(attività) interne ad un Use Case o ad un Oggetto. • Component Diagram (Diagramma dei componenti) – il component diagram mostra le varie componenti di un sistema e le loro dipendenze. Si può usare anche per rappresentare su quale componente software lavora ogni persona del team. A differenza dei precedenti non sono diagrammi concettuali ma descrivono componenti fisiche del sistema. • Deployment Diagram (Diagramma di sviluppo) – rappresenta la logistica e le caratteristiche del sistema. Macchine coinvolte, le caratteristiche, il software installato e altro... 13 Architettura dei Database Territoriali Pr. R. Laurini Esempio diagramma di oggetti Diagramma di classe • Nome della classe • Attributi • Metodi Classi ed oggetti Classi Oggetti BankAccount jimsAccount:BankAccount - count:int = 0 number: int Owner: String balance double = 0 + + + + + + create(aNumber:int) incrementCount():void getCount():int deposit(d:int):boolean withdraw(w:int):boolean setOwner(n:String):void getOwner(): String number:int = 1234567 Owner:String = “Jim Arlow” balance double = 300,00 Nome e attributi • Nome della classe – Deve essere scritto con l'iniziale maiuscola. Se composto da più parole si usa la notazione Pascal (NomeDellaMiaClasse). • Attributi della classe – Ogni classe può avere zero o più attributi che sono le sue proprietà. Il nome dell'attributo va scritto con la notazione a Cammello (nomeDellAttributo, notare la differenza di notazione rispetto ai nomi delle classi). Agli attributi si può associare un tipo e un valore di default. Con la sintassi: visibilitàAttributo nomeAttributo : TipoAttributo = ValoreDefault Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 14 Architettura dei Database Territoriali Visibilità • Publico + – i metodi e gli attributi della classe possono essere usati da tutte le altre classi. • Protetto # – i metodi e gli attributi della classe possono essere usati da tutte le classe che derivano dalla classe originale (ereditarietà). • Privato – i metodi e gli attributi della classe possono essere usati solo dalla classe stessa dove sono definiti. Constraint Pr. R. Laurini Metodi della classe • I metodi non sono altro che le azioni che quella classe può compiere. Il loro nome viene scritto con la notazione a cammello come per gli attributi (nomeDelMetodo). Possono essere caratterizzati da ulteriori informazioni come parametri, il tipo dei parametri e il tipo del valore restituito se si tratta di funzioni. La sintassi per i metodi è: visibilità nomeMetodo (listaParametri) : tipoRestituito {stringaProprietà}. Le associazioni • definisce una o più regole che la classe è tenuta a rispettare. Per tutti quei casi in cui non è possibile farlo ad esempio con associazioni o attributi. Si definiscono inserendo del testo racchiuso tra parentesi graffe. UML lascia piena libertà su cosa deve essere il testo. Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 15 Architettura dei Database Territoriali Pr. R. Laurini Generalizzazioni • Una classe può ereditare attributi e metodi da un'altra classe che viene detta classe padre (o super classe). Alle clasi figlie possono poi essere aggiunti attributi e metodi propri della particolare classe. I metodi delle classi figlie possono anche sovrascrivere i metodi della superclasse. Esempio di generalizzazione Shape draw(g:Graphics) getArea(): int getBoundingArea():int Square Circle draw(g:Graphics) getArea(): int Aggregazione e composizione Aggregazione draw(g:Graphics) getArea(): int Esempi Composizione Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 16 Architettura dei Database Territoriali Interfacce e realizzazioni Pr. R. Laurini Esempio diagramma di classe • Un interfaccia è una classe che offre i suoi metodi ad altre classi. A differenza delle classi normali non ha quindi degli attributi. Il collegamento tra una classe e una interfaccia si chiama realizzazione ed è rappresentato da una freccia con linea tratteggiata dalla classe all'interfaccia. USE CASE DIAGRAM • Rappresenta ciò che il sistema fa dal punto di vista di un osservatore esterno. A differenza del Class Diagram che da una visione statica del sistema lo Use Case Diagram permette di avere una visione del sistema nel tempo. Si tratta quindi di una descrizione dinamica. • Ogni Use Case rappresenta una particolare compito che il nostro sistema dovrà assolvere per soddisfare le richieste dei clienti. Un Use Case rappresenta diversi scenari che riguardano l'utilizzo del sistema. Ognuno degli scenari descrive una sequenza di eventi. • La sequenza degli eventi viene iniziata da quello che si chiama Actor (può essere una persona, del hardware, un altro sistema o il passare del tempo stesso). La catena di eventi porta ad un risultato che può essere destinato all'actor che le ha dato il via oppure a un altro actor. Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali • Uno scenario è una sequenza di passi che descrivono l'interazione fra un utente e il sistema. Un Use Case è dato da un insieme di scenari che condividono lo stesso scopo per l'utente. • Per individuare gli Use Case si può procedere individuando tutti gli eventi esterni a cui il sistema deve reagire. • Use Case Diagram sono utili in tre aree: definizione i requisiti del sistema, realizzazione dei test per ogni Use Case e nella comunicazione con il cliente che risulta semplificata dal loro utilizzo. • Gli Use Case non devono essere in realtà molto dettagliati. La quantità di testo deve essere sufficiente perché l'utente capisca l'idea di base e il programmatore possa farsi un idea di cosa ci sarà dietro. 17 Architettura dei Database Territoriali Pr. R. Laurini Simbolismo Actor1 • • • • • Esempio diagrammi d’uso Actor2 L'actor che fa iniziare la sequenza Le Pre-condizioni dello Use Case Le diverse sottosequenze dello scenario Le Post-condizioni dello scenario L'actor che riceve "l'uscita"' dello Use Case Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 18 Architettura dei Database Territoriali SEQUENCE DIAGRAMS Pr. R. Laurini Simbolismo • Sequence Diagram è uno dei diagrammi di interazione. • La scopo è quello di definire le interazioni tra gli oggetti in funzione del tempo. Per realizzare quindi tale rappresentazione sono necessari il tempo che viene rappresentato come evoluzione lungo l'asse verticale, gli oggetti (rappresentati come rettangoli), e i messaggi (rappresentati con delle frecce). Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 19 Architettura dei Database Territoriali Pr. R. Laurini Quattro i tipi di messaggi • ricorsivo – quando un oggetto manda un messaggio a stesso.Rappresentato da una freccia che inizia e finisce sulla lifeline dello stesso oggetto. • simple – messaggio da un oggetto ad un altro che rappresenta il passaggio di controllo da un oggetto ad un altro. rappresentato da una normale freccia con punta a triangolo aperto ( -> ). • synchronous – implica che il mittente del messaggio ottenga una risposta dal destinatario del suo messaggio prima di proseguire con altre azioni. Si rappresenta con una freccia con punta a triangolo pieno. • asynchronous – l'oggetto mittente non deve aspettare alcuna risposta dal destinatario prima di proseguire con le successive operazioni. Un messaggio asincrono può creare un nuovo thread (punta quindi ad una attivazione), creare un nuovo oggetto, inviare un messaggio (cioè comunicare con un oggetto già attivo). COLLABORATION DIAGRAMS Simbolismo • Il Collaboration Diagram di un sistema rappresenta le stesse informazioni del Sequence Diagram. Solo che mentre nel Sequence Diagram la rappresentazione è in funzione del tempo nel Collaboration Diagram la rappresentazione è in funzione del ruolo dei messaggi che gli oggetti si scambiano. Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 20 Architettura dei Database Territoriali Pr. R. Laurini STATE DIAGRAM • Gli State Diagram servono a descrivere l'evoluzione nel tempo di un oggetto del nostro sistema. • Ogni State Diagram si riferisce ad un oggetto particolare del sistema. Descrive quindi tutti i suoi possibili stati e come questo passi da uno all'altro in conseguenza degli eventi che lo raggiungono. – nome dello stato – variabili di stato – attivita dello stato Simbolismo Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali Esempio 21 Architettura dei Database Territoriali ACTIVITY DIAGRAMS Pr. R. Laurini Simbolismo • Rappresenta la sequenza delle attività. Supporta comportamenti condizionali e attività parallele. E' una variante dello State Diagram. • L'Activity Diagram serve a studiare cosa succede in un sistema. Si tratta sostanzialmente di un diagramma di flusso. Rappresenta quindi il flusso di decisioni ed attività che schematizzano il nostro sistema. E' molto simile a quello che viene chiamato diagramma di flusso ed è molto utile per capire come si svolge una certa attività, processo o operazione. Esempio COMPONENT DIAGRAMS • Il Component Diagram mostra le varie componenti software di un sistema e le dipendenze che esistono fra di esse. • A differenza dei precedenti non sono concettuali ma sono componenti fisiche del sistema che risiedono sul hardware del sistema considerato. • Si tratta quindi di moduli fisici di codice. Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 22 Architettura dei Database Territoriali Esempio Pr. R. Laurini DEPLOYMENT DIAGRAMS • Il Deployment diagram serve a rappresentare la struttura fisica e le relazioni tra hardware e software del nostro sistema. • Il componente generale di un Deployment Diagram è detto Nodo e rappresenta una generica risorsa generalmente hardware. • Ad esempio può essere un semplice sensore oppure un mainframe. Esempio Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali Altro esempio 23 Architettura dei Database Territoriali Organizzazione dei diagrammi UML Pr. R. Laurini 3.8 – Conclusioni • Importanza della modellazione concettuale • Modello entità-associazione • Database relazionali Cap. 3°: Strumenti per la Modellazione degli Oggetti Spaziali 24