Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi di Milano Lezione 7 – Un esempio concreto: le relazioni
Relazioni Le relazioni sono comunicazioni tra le classi Il diagramma delle sequenze e quello delle collaborazioni indicano quali oggetti “hanno bisogno di parlarsi”; in questo caso deve esserci un collegamento tra di loro Tipi di relazioni – Associazione – Aggregazione – Dipendenza
Tipi di relazioni Associazione: connessione bidirezionale tra classi – Rappresentata da una linea che collega le classi in relazione Aggregazione: forma più forte di relazione (ad esempio, tra un tutto e le sue parti) – Rappresentata da una linea che collega le classi in relazione con un diamante vicino alla classe che rappresenta il tutto Dipendenza: forma più debole di relazione (ad esempio, dove il cliente non conosce l’organizzazione interna del fornitore) – Rappresentata da una linea tratteggiata dal cliente al fornitore
Determinazione delle relazioni Le relazioni vengono individuate “interrogando” il diagramma delle collaborazioni – Se due oggetti devono “parlare”, deve esserci un cammino tra di loro
Relazioni
Molteplicità e navigazione (1) La molteplicità definisce quanti oggetti partecipano a una relazione – La molteplicità è il numero di istanze di una classe in relazione con una instanza di un’altra classe – Per ogni associazione o aggregazione ci sono due molteplicità da decidere: una per ogni lato della relazione Anche se le associazioni e le aggregazioni sono bi-direzionali, è possibile renderle navigabili in una sola direzione In questo caso si usa una freccia per indicare la direzione della navigazione
Molteplicità e navigazione (2)
Ereditarietà (1) L’ereditarietà è la relazione tra una superclasse e le sue sottoclassi Due modi per identificarla: – Generalizzazione – Specializzazione Attributi, operazioni e relazioni comuni vanno posti al livello gerarchico più alto possibile
Ereditarietà (2) FINE