di solito inserisce associazioni di aggregazione tra le interfacce?L'aggregazione dell'interfaccia nei diagrammi di classe UML
Esempio:
Qui, sento che un'aggregazione è ridondante. Quello tra le interfacce è più importante, perché è quello che useranno i clienti delle classi. BMW e LuxuryWheel saranno sempre utilizzati tramite ICar e IWheel. Tuttavia, ICar non aggrega realmente IWheel, poiché è un'interfaccia e non contiene alcuna logica effettiva. BMW aggrega chiaramente LuxuryWheel ma è quasi un dettaglio di implementazione.
Come si modellerà questo? Esiste un modo in UML per contrassegnare un'aggregazione (o un'associazione) come astratta o da implementare?
7.3.24 sembra pertinente. Se leggo quella sezione (e guardo l'esempio) mi sembra che non si modella esplicitamente l'associazione tra le classi concrete. Sono impliciti attraverso l'associazione tra le interfacce. Ciò significa che l'associazione tra BMW e LuxuryWheel è superflua. – TheFogger
@TheFogger: bene, questa è la domanda ... se il "deve esistere" nelle specifiche significa che DOVREBBE essere nel modello, quindi PERCHÉ hai l'associazione tra le interfacce, DEVI avere l'associazione tra l'istanza di ICar (BMW) e IWheel (LuxuryWheel). D'altra parte, a volte non sono molto sicuro delle descrizioni in linguaggio naturale delle specifiche UML, e direi che ti sei avventurato in una di quelle aree grigie. Forse dovresti usare una classe astratta ACar che ha un'aggregazione di AWheels invece di interfacce. Questo è ciò che la maggior parte delle persone sarebbe a proprio agio. – ShiDoiSi