Sei sulla pagina 1di 13

Progettazione di Sistemi

Informativi

Diagramma delle classi,


Generalizzazione

Classi

Nome
Ordine
data
numero
prezzo Attribut
i
spedisci
chiudi

Operazioni
Associazioni
Due classi possono essere legate da associazioni
Le associazioni rappresentano i legami che possono
esserci fra gli oggetti delle classi associate
Esistono diverse categorie di associazioni
aggregazione, composizione, dipendenza, generalizzazione
vengono rappresentate mediante diversi tipi di frecce che
connettono le due classi coinvolte.
Le associazioni sono corredate da informazioni
aggiuntive
Molteplicità: il numero di oggetti delle due classi associate che
possono essere coinvolti
Nome dell’associazione
Ruoli degli oggetti delle due classi coinvolte nell’associazione

Generalizzazione fra classi

Cliente classe padre


nome
indirizzo

classe figlia classe figlia


Azienda Privato
P. IVA Cod. Fiscale
Generalizzazione fra classi
 Le classi figlie (o sottoclassi/sottotipi)
ereditano:
1. gli attributi della classe padre (o
superclasse/ supertipo) e se ne possono
aggiungere altri
2. le operazioni, anche se possono essere
opportunamente “ridefinite” nella classe
figlia

Generalizzazione fra classi


Animale

Pesce Mammifero Rettile

Cane Gatto Cavallo


Generalizzazioni totali e parziali
Le generalizzazioni si distinguono in totali e parziali
Una generalizzazione è totale quando l'unione dei
sottoinsiemi dei figli costituisce l'insieme del padre
unendo i sottoinsiemi degli uomini e delle donne si ottiene
l'insieme delle persone.

Generalizzazioni totali e parziali


Una generalizzazione è parziale quando invece
l'unione dei sottoinsiemi dei figli non risulta pari
all'insieme del padre
L'unione dei sottoinsiemi 'Bicicletta' e 'Automobile' non è
sufficiente per identificare l'insieme padre 'Mezzi Di
Locomozione'.
È una generalizzazione parziale, in quanto oltre alle biciclette
ed alle automobili esistono altri mezzi di locomozione come
ciclomotori, treni, navi, ecc.
Generalizzazioni totali e parziali

Generalizzazioni esclusive o sovrapposte


Una generalizzazione può essere inoltre
esclusiva o sovrapposta.
Una generalizzazione è esclusiva quando
l'intersezione dei sottoinsiemi dei figli è
vuota
Generalizzazioni esclusive o sovrapposte
Una generalizzazione è sovrapposta quando
l'intersezione dei sottoinsiemi dei figli non è vuota.
Un'entità padre 'Lavoratore' con le entità figlie 'Impiegato' e
'Studente' identifica una generalizzazione sovrapposta in
quanto possono esistere degli impiegati che sono
contemporaneamente studenti

Generalizzazioni
una generalizzazione può essere:
totale ed esclusiva
• BC=A; BC=
totale e sovrapposta
• BC=A; BC
parziale ed esclusiva
• BCA; BC=
parziale e sovrapposta
• BCA; BC
Generalizzazione
Considerando l’esempio Gestione Ordini

Generalizzazione
Traduzione delle generalizzazioni (1)
 Accorpamento del genitore nei figli
 Per l’ereditarietà, attributi e associazioni
del genitore vanno aggiunti a tutti i figli
 Possibile solo se la generalizzazione è
totale
 Aggiunta di un vincolo per garantire
l’esclusività

Accorpamento del genitore nei figli


Modello Relazionale
ClienteAzienda(Codice, Cognome, Nome, PartitaIva,
Email, Città, CAP, indirizzo, Provincia)
ClientePrivato(Codice, Cognome, Nome,
CodiceFiscale, Email, Città, CAP, indirizzo, Provincia)

Ordine(NumeroOrdine, Data)

OrdineAzienda(NumeroOrdine, CodClienteAzienda)
OrdinePrivato(NumeroOrdine, CodClientePrivato)

Traduzione delle generalizzazioni (2)


Accorpamento dei figli nel genitore:
Si aggiunge al genitore un attributo che
indichi il “tipo” dell’individuo (a quale classe
figlia eventualmente appartiene)
Si aggiungono al padre gli attributi e le
associazioni dei figli, che diventano opzionali
Sempre applicabile, ma comporta la
presenza di attributi e associazioni opzionali
e l’aggiunta di vincoli
Accorpamento dei figli nel genitore

Modello Relazionale
Cliente (Codice, Cognome, Nome, PartitaIva,
CodiceFiscale, Email, Città, CAP, indirizzo,
Provincia)

Ordine(NumeroOrdine, Data, CodiceCliente)

PartitaIva e CodiceFiscale possono assumere


valore NULL
Traduzione delle generalizzazioni (3)
Sostituzione della generalizzazione con
associazioni
Si aggiungono nuove associazioni che
rappresentano la generalizzazione
I figli partecipano obbligatoriamente
all’associazione, il genitore opzionalmente

Sostituzione della generalizzazione con


associazioni
Modello Relazionale
Cliente (Codice, Cognome, Nome, Email, Città,
CAP, indirizzo, Provincia)

Ordine(NumeroOrdine, Data, Cliente)

ClienteAzienda(CodCliente, PartitaIva)

ClientePrivato(CodCliente, CodiceFiscale)

Generalizzazione
Traduzione

Potrebbero piacerti anche