Sei sulla pagina 1di 11

Modellare il dominio

Prof. Filippo Lanubile


Modello di dominio

• Utile per comprendere e comunicare i concetti


fondamentali di un dominio (ambito)
– E’ indipendente dal software
– Anche detto “modello concettuale”
• Base di partenza per il design della «business logic»
• Si utilizza un diagramma delle classi con
prospettiva concettuale
– Rappresentazione visuale di concetti caratteristici del
dominio studiato

Prof. Filippo Lanubile


Classe come concetto
• Una classe rappresenta un concetto ben definito che
permette l’astrazione di oggetti (o istanze) simili
– Es. Visitatore, Abbonato, Prodotto, Vendita

Visitatore Nicola Lorusso : Fabio Colonna :


Visitatore Visitatore

Classe Oggetti

• Proprietà di una classe: attributi, associazioni

Prof. Filippo Lanubile


Attributi
• Un attributo è una Nome classe
proprietà rilevante di un
Nome attributo1
concetto (classe) Nome attributo2
– Un attributo contiene un
valore per ogni oggetto
Persona
nome
età

Classe con attributi

Prof. Filippo Lanubile


Associazioni

• Un’associazione è una relazione rilevante tra due


classi (concetti)
– L’associazione è etichettata: classe1 verbo classe2

Persona lavora per Dipartimento

• Le associazioni sono in genere bidirezionali


– Si predilige la lettura dell’etichetta da sinistra a destra e
dall’alto verso il basso
Cartella
• Associazione ricorsiva
– Le classi associate coincidono contiene

Prof. Filippo Lanubile


Associazioni e legami

• Un’associazione rappresenta un gruppo di legami tra gli


oggetti delle classi associate

ha per capitale
Nazione Città Associazione
tra classi

Canada : Ottawa :
Nazione Città Legami tra
oggetti

Italia : Roma :
Nazione Città

Prof. Filippo Lanubile


Molteplicità delle associazioni
• La molteplicità specifica quanti oggetti di una classe possono essere
associati con un singolo oggetto di un’altra classe
– Il simbolo di molteplicità adiacente alla classe 2 indica quanti oggetti della classe 2
possono avere legami con un singolo oggetto della classe 1

nome associazione
classe 1 classe 2
uno ed uno solo
1

classe 1 nome associazione classe 2 opzionale (zero o uno)

0..1
nome associazione
classe 1 classe 2 molti (zero o piu' di uno)

*
nome associazione
classe 1 classe 2 uno o piu' di uno

1..*

Prof. Filippo Lanubile


Classe associativa e attributi di
legame
• È utilizzata per modellare proprietà delle associazioni
• Un attributo di una classe associativa contiene un
valore per ogni legame
• È in genere utilizzata nelle associazioni molti-a-molti

File Utente

* 1..*
Accesso
permesso

Prof. Filippo Lanubile


Ruoli
• Modalità alternativa per etichettare un’associazione
– Rappresentano il nome della proprietà
– Sono posti alla fine della linea di congiunzione la classe
associata
• I ruoli sono spesso usati per associazioni tra oggetti
della stessa classe
+proprietario
1 * +contenitore
Utente Cartella
0..1
* *
+utente autorizzato * +contenuto
contiene

Prof. Filippo Lanubile


Aggregazione e composizione
• L’aggregazione rappresenta un’associazione con significato
«è parte di»
– nell’altro verso è letta come «è composto da»
• La composizione è una forma forte di aggregazione
– La parte componente non può esistere senza il suo contenitore
– La parte componente può appartenere solo ad un unico oggetto
contenitore

Prof. Filippo Lanubile


Generalizzazione
• È utilizzata per definire
tassonomie di classi
– Esprime il concetto
«è un tipo di»
– Nell’altro verso può essere
letta come «può essere un»
• La classe generale è detta
superclasse
– Es. Persona
• Ogni classe specializzata è
detta sottoclasse
– Es. Docente
• Ogni oggetto di una
sottoclasse è anche un
oggetto della sua
superclasse

Prof. Filippo Lanubile