Programmazione con Java

Похожие документы
Modello Entità-Relazione

IL MODELLO ENTITY RELATIONSHIP. il modello ER 1

Progettazione di Basi di Dati

Il modello Entità/Relazioni (ER)

Elena Baralis, Claudio Demartini

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

Ingegneria del Software

Gerarchia di Generalizzazione. Esempio. Rappresentazione grafica. Cap. 4 - Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione

I database. Introduzione alla teoria delle basi di dati

Basi di dati. Progettazione di basi di dati: Metodologie e modelli

Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++

Il modello Entity-Relationship: elementi avanzati

PROGETTAZIONE CONCETTUALE

Basi di Dati. Il Modello Entità-Relazione. Il Modello Entità-Relazione

Progettazione logica relazionale (1/2) Progettazione logica. Progettazione logica relazionale (2/2) Introduzione. Progettazione logica

Introduzione alla OOP Object Oriented Programming

Traduzione ER - relazionale

Ciclo di vita di un sistema informativo

Esercizio 1: un semplice schema concettuale. Descrivere lo schema concettuale della seguente realtà:

Claudia Raibulet

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Progettazione di basi di dati

Fase di Analisi Class Diagram. Esercizi

Progettazione di basi di dati

Basi di Dati e Sistemi Informativi su Web

Analisi e progettazione ad oggetti

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

I modelli logici dei dati

Raccolta e analisi dei requisiti

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

Il Dimensional Fact Model

SISTEMI INFORMATIVI E DATABASE

Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo

OOP in Python L O R E N Z O D I S I L V E S T R O

Esercizi svolti sul modello ER con regole di lettura. Esercizio 1

Fase di Analisi Class Diagram. Esercizi

Definizione Un modello astratto è la rappresentazione formale di idee e conoscenze relative a un fenomeno.

Alessandra Raffaetà. Basi di Dati

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

Dalla progettazione concettuale alla modellazione di dominio

PROGETTAZIONE CONCETTUALE

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la comunità scientifica di ricerca paleontologica.

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

Traduzione dello schema E-R in modello logico relazionale

RELAZIONI E BASI DI DATI

Atzeni, Ceri, Paraboschi, Torlone Basi di dati

Capitolo 2. Dall idea al codice con UML 2 Esercizi introduttivi

Programmazione ad oggetti

Basi di Dati e Sistemi Informativi. Progettazione Concettuale: Il modello Entità-Relazioni

Dichiarazione degli schemi in SQL DDL 1

Informatica (Basi di Dati)

L assetto organizzativo dell azienda

Generalizzazione. Docente : Alfredo Cuzzocrea Tel. : Informatica

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Basi di dati. Le funzionalità del sistema non vanno però ignorate

Progettazione orientata agli oggetti Introduzione a UML

Riconoscere e formalizzare le dipendenze funzionali

Logica Formale. Introduzione. Marco Piastra. Intelligenza Artificiale I. Intelligenza Artificiale I - A.A Logica Formale [1]

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione logica. Dati di ingresso e uscita

Progettazione del Software

La Statistica: introduzione e approfondimenti

La tesi di laurea. Prof. Sandro Cavirani Dott.ssa Sara Flisi, DVM

Programmazione ad Oggetti

Matematica e-learning - Corso Zero di Matematica. Gli Insiemi. Prof. Erasmo Modica A.A.

Modello dei Dati ENTITÀ-RELAZIONE (ENTITY-RELATIONSHIP) é l insieme di concetti, simboli, regole che useremo per rappresentare il modello concettuale

CAPITOLO V. DATABASE: Il modello relazionale

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Numero di contratto di noleggio CodiceInterno Chiave primaria CodiceInternazionale Codice identificativo internazionale

Il modello logico dei dati

Транскрипт:

Programmazione con Java Astrazioni e UML Astrazioni Nella vita reale siamo abituati a osservare e descrivere oggetti a vari livelli di dettaglio Dai da mangiare a Fido Porta a passeggio il cane Di quale razza è quel cane? Bisogna amare gli animali Fido, cane, razza e animale sono denotazioni di oggetti a diverso livello di astrazione Astrazioni e UML 2

Classi e istanze Un oggetto con un insieme di proprietà Fido 7 kg nero abbaia morde chiama Un altro oggetto con un insieme di proprietà Pluto 36 kg bianco abbaia morde chiama Fido è un esemplare di cane Pluto è un esemplare di cane Astrazione instance of L oggetto modella le proprietà comuni di un insieme di oggetti quali attributi ha un cane come si comporta abbaia morde quali comandi può ricevere chiama Non è necessario descrivere separatamente Fido e Pluto: sono classificati come cani è quindi una classe Sappiamo già che Fido, in quanto cane, abbaia, morde e può essere chiamato personalizzare gli attributi: l oggetto di Fido è un cane nero il cui è 7 kg Astrazioni e UML 3 Classificazione e istanziazione Che legame esiste tra la classe e le sue istanze? Intuitivamente, è un concetto più astratto di Fido e Pluto Il legame è nei due sensi Classificazione: capire che Fido è un cane Definire la rappresentazione di un Istanziazione: creare istanze ( esemplari ) di Esempio: Fido, sapendo che è un cane, e specificando i dettagli (, ) Fido Pluto Astrazioni e UML 4 2

Astrazioni Il legame concettuale che esiste tra una classe e le sue istanze e un particolare esempio di astrazione Una astrazione è un procedimento concettuale per mezzo del quale Si definisce un concetto più generale (e in tal senso più astratto) a partire da concetti più elementari (e in tal senso più concreti) Rimuovendo dalla descrizione del concetto gli aspetti di dettaglio e particolari Mettendo in evidenza gli aspetti comuni e generali Astrazioni strutturali: modellano oggetti e relazioni fra oggetti Astrazioni e UML 5 Astrazioni di struttura Classificazione ( instance_of ) Lega istanze e classi La classe definisce le caratteristiche comuni degli oggetti di un insieme Ogni oggetto della classe possiede le proprietà definite dalla classe Esempio: Fido è un (esemplare di) Astrazioni e UML 6 3

Astrazioni di struttura 2 Generalizzazione ( is_a ) Lega una classe genitore (superclasse) a una o più classi figlie (sottoclassi) che ne sono sottoinsieme Ogni oggetto della sottoclasse appartiene anche alla superclasse Esempi I cani sono mammiferi La classe è una sottoclasse della classe Mammifero Gli oggetti di una classe appartengono anche a una classe più ampia Fido è un, quindi è anche un Mammifero Ogni esemplare di è anche un esemplare di Mammifero Ogni esemplare di possiede tutte le proprietà definite dalla classe e anche tutte le proprietà definite dalla classe Mammifero Astrazioni e UML 7 Astrazioni di struttura 3 Classificazione e Generalizzazione Attenzione: nel linguaggio comune, si usa è un in entrambi i sensi. Non confondere! Fido è un Fido è un oggetto concreto Un è un Mammifero un non è un oggetto concreto!!! Distinguere: Fido è un esemplare (instance_of) di è una sottoclasse (is_a) di Mammifero Astrazioni e UML 8 4

Astrazioni di struttura 4 Aggregazione ( part_of ) Lega una classe Aggregato con un insieme di classi Parti Ogni oggetto di Aggregato è costituito da oggetti delle classi Parti Caso particolare di Associazione Esempi: Un automobile comprende motore, carrozzeria, ruote Attenzione: non confondere aggregazione e generalizzazione! Un è un Mammifero (is_a) Un fa parte di un Branco (part_of) Un non è un Branco! Astrazioni e UML 9 Astrazioni di struttura 5 Associazione ( has_a ) Definisce una connessione logica fra oggetti di una classe e oggetti di un altra classe Esempi Classi:, Associazione: una è padrona di un Cani: Fido, Pluto Persone: Mario, Pino Mario è padrone di Fido Pino è padrone di Pluto Attenzione a non confondere Mario è padrone di Fido Fido non è parte di Mario Un non è una Astrazioni e UML 0 5

Formalismi di rappresentazione ER (Entity Relationships) entità relazioni nato nell area Basi Dati UML (Unified Modeling Language) classi proprietà relazioni comportamenti nato nell area Programmazione Esprimono concetti analoghi almeno per quanto riguarda le astrazioni di struttura usiamo UML Astrazioni e UML UML: diagramma delle classi Identificazione delle classi e delle relazioni fra le stesse: attività fondamentale in fase di analisi e di progetto Nome della classe Attributi Operazioni Astrazioni e UML 2 6

UML: diagramma degli oggetti Identificazione gli oggetti del sistema e dei loro stati durante la loro vita Nome oggetto Attributi specifici Fido : = nero = Fido = 0 Pluto : = marrone = Pluto = 5 Astrazioni e UML 3 Associazioni associazione possiede Un associazione è una linea che collega le classi coinvolte Astrazioni e UML 4 7

Associazioni possiede Nome: esprime il significato dell associazione Spesso è un verbo Opzionale (ma fortemente consigliato ) Astrazioni e UML 5 Associazioni ruolo ruoli cane possiede padrone Ruolo: esprime il ruolo giocato dal partner Spesso è un sostantivo o un aggettivo Opzionale (ma fortemente consigliato ) Astrazioni e UML 6 8

Associazioni cardinalità cane 0..* possiede cardinalità padrone 0.. Cardinalità: esprime quante istanze della classe possono essere associate all altra classe Molto importante Astrazioni e UML 7 Associazioni cardinalità Esempi di cardinalità Classe molti * Classe da a molti..* Classe da a 5..5 Classe esattamente 9 9 Classe nessuno o 0.. Classe o, o 4, o 6,4,6 Astrazioni e UML 8 9

Esempi cane 0..* possiede padrone 0.. luca : marco : mario : pippo : È corretto? piero : pluto : paperino : Astrazioni e UML 9 Esempi cane 0..* possiede padrone 0.. luca : marco : X mario : pippo : È corretto? piero : pluto : paperino : Astrazioni e UML 20 0

Esempi cane possiede padrone luca : marco : mario : pippo : È corretto? piero : pluto : paperino : Astrazioni e UML 2 Esempi cane possiede padrone X luca : marco : X mario : pippo : È corretto? piero : X pluto : paperino : Astrazioni e UML 22

Associazioni multiple Volo numero voliinpartenza * voliinarrivo parte atterra partenza arrivo si gl a Aeroporto * Associazione multipla: esplicita più associazioni tra una coppia di classe per arricchirne la descrizione se non la potessi usare, il diagramma sarebbe meno leggibile Astrazioni e UML 23 Associazioni a cappio ogni ha un numero qualsiasi di figli (che sono Persone) figlio 0..* madre ogni ha una madre (che è una ) Che problema ci vedete in questo diagramma? Astrazioni e UML 24 2

Associazioni Navigabilità Frigorifero contiene cibo Cibo capacità marca 0.. 0..* descrizione qta Navigabilità: esplicita chi vede cosa Come si vedrà, determina la modalità con cui viene realizzata l associazione Astrazioni e UML 25 Aggregazione lavoratore..* Azienda Relazione parte di Astrazioni e UML 26 3

Composizione Carrozzeria Auto Ruota 4 Motore È una relazione più forte L oggetto parte appartiene ad un solo tutto e le parti hanno lo stesso ciclo di vita dell insieme All atto della distruzione dell oggetto principale si ha la propagazione della distruzione agli oggetti parte Astrazioni e UML 27 Altri esempi Club * * Aggregazione Poligono 3..* Punto Composizione Astrazioni e UML 28 4

Generalizzazione Animale Leone Gatto Pesce Astrazioni e UML 29 Esercizio: classificazione, associazione e aggregazione testo Uno studente è caratterizzato dall avere una matricola, un e un cog. Possiede inoltre un libretto che contiene gli esami da lui sostenuti con data e voto i quali sono relativi a insegnamenti. Un insegnamento è caratterizzato da una denominazione, un codice identificativo e da un numero di CFU Astrazioni e UML 30 5

Esercizio: classificazione, associazione e aggregazione soluzione Studente cog matricola Libretto 0..* voto data Esame Insegnamento denominazione CFU codice Astrazioni e UML 3 Esercizio: classificazione, associazione, aggregazione e generalizzazione testo Uno studente è identificato da una matricola, un e un cog. Ha un libretto universitario in cui sono riportati gli esami con data e voto i quali si riferiscono ad insegnamenti che sono caratterizzati da una. Un insegnamento è caratterizzato da una denominazione, un codice identificativo e da un numero di CFU Studente laureando è uno studente che sta svolgendo una tesi di laurea su un certo argomento e il cui relatore e correlatore sono docenti universitari Astrazioni e UML 32 6

Esercizio: classificazione, associazione, aggregazione e generalizzazione soluzione Studente Libretto Esame Insegnamento + matricola 0..* + voto + data + denominazione + CFU + codice +relatore Laureando Tesi Docente +correlatore Astrazioni e UML 33 Esercizi Un libro è composto da un certo numero di pagine. Ogni pagina ha del testo e delle immagini. Un libro ha un titolo ed è scritto da uno o più autori. Ogni libro è riposto in uno scaffale di una libreria. Ogni scaffale è numerato. Un azienda ha una denominazione. È caratterizzata dall avere un numero di dipendenti superiore ai 5. Ogni dipendente ha associata una matricola. I dipendenti possono essere operai, dirigenti e impiegati. Ogni dipendente ha uno stipendio e un. I dirigenti hanno un auto aziendale. Astrazioni e UML 34 7