Come mostrare una relazione "o include" - UML Usa il diagramma del caso

3

Non ho trovato questo problema prima e non riesco a trovarlo nel mio libro UML di Schaum Outline e mi chiedevo se qualcuno qui potesse aiutarti.

Sto facendo un diagramma dei casi d'uso per l'e-commerce, e in esso voglio descrivere che per aggiungere un libro al tuo carrello, devi cercare prodotti (usando il motore di ricerca dei siti web) o sfogliare prodotti (usando la navigazione).

Ma il fatto è che può essere o uno, e non entrambi.

C'è un modo per dimostrare che l'aggiunta di un prodotto al carrello deve includere questo o quello? Perché altrimenti sembrerebbe che debba includere entrambi.

O dovrei unire i due casi d'uso (cercare prodotti e sfogliare prodotti) in uno?

    
posta TheNewBlack 11.04.2013 - 20:09
fonte

2 risposte

1

La cosa più importante è che dalla descrizione del caso d'uso risulta chiaro che deve essere fatta una scelta tra la ricerca e la funzionalità di ricerca.

Nel tuo diagramma, il caso di utilizzo "aggiungi al carrello" deve <<include>> sia per i casi di utilizzo di "prodotti di ricerca" sia per quelli di "sfoglia i prodotti" (presupponendo che la scelta per la ricerca o la navigazione sia effettuata dall'aggiunta al carrello) caso d'uso). Se vuoi davvero dimostrare che questi casi d'uso inclusi si escludono a vicenda, puoi aggiungere un vincolo UML { mutually exclusive } collegato alle frecce di inclusione, ma questo è completamente facoltativo.

    
risposta data 12.04.2013 - 08:33
fonte
1

Sì, è possibile in UML.

  • Chiamiamo le alternative A1 e A2.
  • Dovrebbero avere alcune funzionalità comuni o non sarebbero intercambiabili. Trova quelli.
  • Crea un'interfaccia comune o una classe astratta per le alternative. Chiamiamolo A .
  • Usa il riferimento a A invece dei riferimenti ad A1 o A2.
 A a;

Poiché il tipo comune è astratto, hai una garanzia, che utilizzerai A1 o A2.

a=new A1();

o

a=new A2();

Guarda link per un diagramma

    
risposta data 15.01.2014 - 14:43
fonte

Leggi altre domande sui tag