Come disegnare correttamente un diagramma di classe UML con un'associazione pienamente qualificata?

4

Dato il seguente codice devo disegnare il diagramma di classe corrispondente:

public class Shop
{
    List<Client> clients;
    Storage store;
    User chief;
    Set<Invoice> invoices;
}

public class Invoice
{
    Map<Product, Row> rows;
    Client client;
}

public class Client{}
public class Product{}

public class Storage
{
    Map<Integer, Product> products;
}

public class Row 
{
    Product p;
    double qty;
}

Su draw.io ho prodotto il seguente disegno:

Il focus della mia domanda è acceso - Relazione tra fattura e riga: È corretto disegnare l'associazione qualificata in questo modo? Su draw.io non ho trovato alcuna opzione per descrivere questo caso particolare. L'ho creato trascinando la classe del prodotto in modo che fosse adiacente alla fattura.

  • Relazione tra spazio e prodotto. È corretto? O dovrei rappresentarlo anche come un'associazione qualificata usando la classe Integer come qualificatore?

  • Vedi qualche errore sulle frecce di relazione o sulla cardinalità?

posta koalaok 09.01.2016 - 19:54
fonte

1 risposta

1

Penso che sia necessario modellare il prodotto come classe distinta per chiarire che uno spazio di archiviazione può avere prodotti che non sono ancora inclusi in alcuna fattura.

È possibile modellare Row come classe di associazione per l'associazione prodotto-fattura:

Altrimenti il tuo diagramma sembra ok. La struttura di Storage sembra comunque un po 'divertente. Se dovrebbe tenere traccia della quantità di elementi, probabilmente dovrebbe avere un Map<Product, Integer> invece di Map<Integer, Product> .

    
risposta data 12.01.2016 - 12:48
fonte

Leggi altre domande sui tag