UML- Aggregazione o associazione

0

Di seguito è il problema per cui ho creato un diagramma UML con Staff come superclasse e cameriere, manager e host come sottoclassi, ho capito altre parti, ad eccezione della relazione tra le classi table e cover, dovrebbe essere Aggregation (o composizione) ) o Associazione.

Schizzo UML approssimativo

Ci sono tre tipi di membri dello staff, manager, camerieri e host. Tutti i membri del personale hanno un documento personale e un numero di telefono. I manager sono anche in grado di aggiungere e rimuovere camerieri e host dal sistema.

Tabelle: i tavoli del ristorante, ciascuno di un numero identificativo e un numero di posti. Ogni tabella è assegnata a un cameriere e i camerieri possono disporre di un numero qualsiasi di tabelle. Ogni tabella avrà un numero di copertine (vedi sotto) che non deve superare il numero di posti. La classe Table dovrebbe avere un metodo per verificare se è un posto a sedere valido.

Copertine: ogni cliente che entra nel ristorante deve essere rappresentato come copertura. Ogni copertina deve avere un ID di copertina, un numero di tabella e un ordine di cibo.

    
posta user3602066 27.04.2016 - 20:58
fonte

1 risposta

1

In UML, l'aggregazione e la composizione sono varianti dell'associazione. L'associazione è una relazione "ha un". L'aggregazione è una relazione "parte di". La composizione è una forma più strong di Aggregazione, in cui le parti non possono esistere senza l'intero.

Poiché sai che Cover ha Table , hai almeno un'associazione. Tuttavia, può esistere un Table senza Cover o un Cover esiste senza Table ? Se la risposta a uno di questi è "sì", allora non hai una composizione. Successivamente, chiediti se Cover fa parte di Table o se Table fa parte di Cover . Se "sì", allora hai un'aggregazione. Se "no", hai una semplice associazione.

Suggerirei che il tuo esempio sia uno di un'associazione. La prossima cosa da capire è la direzionalità delle associazioni. Le associazioni possono essere bidirezionali (l'oggetto alle due estremità conosce l'oggetto dall'altra parte) o unidirezionale (un oggetto conosce l'altro oggetto, ma non l'altro modo). Ad esempio, la relazione che stai visualizzando tra Waiter e Table è un'associazione bidirezionale.

    
risposta data 27.04.2016 - 21:15
fonte

Leggi altre domande sui tag