confusione del diagramma di classe UML

1

Sto imparando come disegnare un diagramma di classe UML e dopo aver letto alcuni tutorial, sono ancora confuso sugli usi appropriati di Tipo di associazione (Il diamante trasparente e il diamante nero). Capisco i loro usi ma non ho una comprensione molto concreta su quando usarli e quando no.

Ad esempio nello schema di classe di esempio riportato di seguito, avrei pensato che se Cliente non esiste, il Ordine sarà eliminato, ma un diamante di associazione non è stato usato.

Spero che qualcuno possa fornirmi ulteriori spiegazioni / esempi sugli usi dei tipi di associazione.

Grazie.

    
posta user415795 21.04.2013 - 16:26
fonte

1 risposta

1

Un'associazione collega una classe all'altra per indicare una relazione tra loro. Ad esempio, hai un'associazione tra Customer e Order che (senza ulteriori informazioni) indica che:

  1. Un cliente può avere un ordine o forse più ordini,

  2. Un ordine può appartenere a un cliente o forse condiviso da più clienti.

Il diagramma nella tua domanda fornisce informazioni aggiuntive: c'è un solo cliente per ordine e zero o più ordini per cliente, quindi le regole diventano:

  1. Un cliente ha zero o più ordini,

  2. Un ordine appartiene a uno e un solo cliente.

Mentre l'aggregazione viene utilizzata nell'associazione tra Order e OrderDetail , non viene utilizzata nell'associazione tra Customer e Order . Questo viene fatto per indicare la dipendenza dal ciclo di vita. Se un'istanza di Order viene distrutta, anche tutte le istanze di OrderDetail al suo interno verranno distrutte; d'altra parte, le istanze di Order sono indipendenti dal ciclo di vita dell'istanza Customer , quindi nessuna aggregazione qui.

Ciò non significa che un ordine possa esistere senza un cliente: l'associazione 1 ↔ 0 .. * vieta esplicitamente gli ordini che non hanno clienti. La differenza tra un'associazione 1 ↔ 0 .. * e l'aggregazione avviene realmente sul livello del ciclo di vita.

    
risposta data 21.04.2013 - 16:43
fonte

Leggi altre domande sui tag