Diagramma delle Classi Flashcards
Da che parti è composta una classe in UML?
- Nome
- Attributi
- Metodi
Come si trova una classe?
- Evidenzio i nomi degli ipotetici oggetti dalla specifica del problema
- Considero gli use case e gli scenari
- Esaminando gli oggetti identificati negli scenari, controllo se alcuni possono essere raggruppati in classi
Quando e come si definiscono le relazioni?
- Durante l’analisi si stabiliscono le connessioni fra le classi
- E’ utile pensare alle molteplicità per esplicitare assunzioni implicite
- Durante il progetto le associazioni e le molteplicità vengono raffinate
Perché è meglio fare tante classi?
- Incapsulano meno intelligenza globale del sistema
- Sono più riutilizzabili
- Sono più facili da realizzare
Cosa succede se si fanno poche classi?
Ogni classe:
- Incapsula più intelligenza globale
- E’ meno riutilizzabile
- E’ meno facile da realizzare
Cosa sono gli attributi derivati?
Sono attributi che vengono calcolati sulla base di altri attributi, quindi non vengono memorizzati
Come si individuano gli attributi?
- Direttamente nel testo della specifica
- Durante la definizione della classe stessa
- Attraverso la conoscenza del dominio applicativo
Quali operazioni deve possedere una classe?
Tutte e sole le operazioni rilevanti al dominio applicativo
Come si scrive un operazione?
{+, -, #} nome (parametri) tipoRitorno
Cos’è una associazione?
Una associazione definisce un canale bidirezionale fra due classi
Cosa fa un diagramma delle classi?
Descrive gli aspetti statici di un sistema
- classi
- struttura
- relazioni
Come si distingue una classe astratta?
Attraverso il nome in corsivo
Come si definisce un attributo?
{+, -, #} nome : tipo [molteplicità]
Di default che visibilità un attributo?
Privato
Cos’è una aggregazione?
E’ una forma particolare di associazione e indica che una parte è in relazione con un oggetto (part-of)
Cosa implica la composizione?
- una istanza della parte appartiene ad una sola istanza del composto
- la parte deve sempre appartenere a un composto
- il composto è responsabile per la creazione e cancellazione delle sue parti
Quali vantaggi ha l’uso della composizione?
Ha vantaggi in relazione ai rischi e problemi di memory management e previene i dangling pointers (si adatta bene alla garbage collection)
Quando si usa la composizione?
Si usa la composizione quando la parte appartiene ad un unico “tutto” in un dato momento e non ha vita indipendente
Quando si usa la aggregazione?
Si usa la aggregazione se due oggetti sono uniti da una relazione part-of (come auto con ruota e motore)
Quando si usa la associazione?
Si usa la associazione se due oggetti sono considerati indipendenti
Cosa indica una dipendenza?
Una dipendenza indica che un elemento cliente è a conoscenza di un elemento fornitore e che un cambiamento del fornitore potrebbe influire sul cliente
E’ possibile aggiungere altre sezioni alla classe?
Sì, come per esempio le eccezioni che solleva o una descrizione
Che relazione c’è tra il diagramma delle classi e quello di interazione?
- Diagrammi statici e dinamici sono disegnati in parallelo
- L’uno induce la struttura dell’altro
- Devono essere consistenti
Cos’è una classe attiva?
Una classe si definisce attiva se, quando istanziata, essa controlla la propria esecuzione e quindi opera autonomamente
Cos’è una generalizzazione?
E’ una relazione tassonomica tra una classe più generale a una più specifica, quindi ogni istanza della classe più specifica è indirettamente una istanza della classe più generica