Esempio ordini 08UMLEX1.1
Sommario Specifiche del sistema di gestione ordini Specifiche Use Case Use Case Specifiche del diagramma delle classi Diagramma delle classi Specifiche per lo scenario della richiesta di un ordine Sequence diagram della gestione di un ordine 08UMLEX1.2
Diapositiva sommario (cont.) Collaboration Diagram Specifiche per lo state diagram StateDiagram di un ordine Specifiche per l activity diagram Activity Diagram Decomposizione dell attività di autorizzazione al pagamento 08UMLEX1.3
Specifiche del sistema di gestione ordini - 1 Il sistema consente di effettuare e gestire ordini relativi ai prodotti di una azienda; un cliente puo effettuare ordini con diverse modalità di pagamento; l azienda puo decidere delle politiche di credito verso un cliente; l azienda gestisce l aggiornamento del conto di un cliente; 08UMLEX1.4
Specifiche del sistema di gestione ordini - 2 La gestione della politica verso il cliente comporta l analisi del rischio e la verifica del comportamento di ciascun cliente rispetto ai limiti prefissati; e possibile verificare i prodotti presenti rispetto agli ordini ricevuti ed eventualmente riordinare un prodotto mancante in magazzino; 08UMLEX1.5
Specifiche Use Case L ufficio vendite e responsabile della individuazione dei limiti di credito per i clienti; il venditore analizza il rischio e fissa il prezzo per una vendita ad un cliente; in alcuni casi è opportuno verificare che non venga superato il limite di credito prefissato per un cliente, nel fissare il prezzo di vendita. 08UMLEX1.6
UseCase Manager Fissa i limiti di credito Aggiorna conto Sistema di contabilita Analizza il rischio <<include>> <<include>> Commerciante Discuti prezzo Verifica comportamento Conclude affare <<extend>> Cliente Limiti credito superati 08UMLEX1.7
Rational 98i Use Case FissaLimitiCredito Manager AggiornaConto SistemaDiContabi lita Rational Rose 98i prevede solo generalizzazioni. Si suggerisce di utilizzare uno stereotipo per evocare la relazione di dipendenza desiderata. Se un attore e definito come classe viene presentato nei vari diagrammi con la doppia valenza Tutte le associazioni sono per default orientate; occorre selezionare l opzione Navigable per renderle bidirezionali Commerciante <<extend>> LimitiCreditoSuperati AnalizzaRischio DiscutiPrezzo ConcludiAffare <<include>> <<include>> VerificaComportamento Cliente nome : String indirizzo : String classecredito() 08UMLEX1.8
Specifiche del diagramma delle classi Si vogliono descrivere gli ordini effettuati dai clienti la struttura di ciascun ordine con riferimento ai singoli oggetti ordinati, identificando il tipo di prodotto; si consideri che i clienti possono essere di tipo differente (singoli o società); nel caso in cui il cliente abbia una scarsa possibilità di credito è necessario che il pagamento dell ordine avvenga in anticipo. 08UMLEX1.9
{if Ordine.Cliente.classeCredito= "bassa" then Ordine.prepagato=TRUE} Ordine dataricezione : Date prepagato : Boolean numero : Integer importo : Currency 0..* effettua 1..1 Cliente (fro m Use Case V iew) spedizione() chiusura() prepara() 1..1 1..1 nome : String indirizzo : String classecredito() di 0..1 Spedizione dataspedizione : Date corriere : String Non e possibile indicare il verso del nome delle relazioni Lineaordine quantita : Integer prezzo : Currency disponibilita : Boolean prepara() untitled() ha 1..* 0..* Azienda nomecontatto : Cliente limitecredito : Currency contomensile() relativa 1..1 Prodot to codice : Integer descrizione : String Privato cartacredito : String eta : Integer 1..1 1..1 0..* 1..1 RifornimentoProdotto ScortaMagazzino quantita : Integer scortaminima : Integer controlla() dariordinare() preleva() aggiungi() dataattivazione : Date dataprevistaconsegna : Date quantita Richiesta : Integer 08UMLEX1.10
Specifiche per lo scenario della richiesta di un ordine È possibile usare l interfaccia utente del sistema per la preparazione di ordini; per ciascuna linea presente nell ordine si effettua la verifica che la quantità di oggetti in magazzino sia presente e in caso positivo per tutti gli oggetti si effettua la spedizione relativa; nel caso in cui la quantità dell oggetto in magazzino scenda sotto un livello limite viene effettuato un approvvigionamento dell oggetto in questione. 08UMLEX1.11
Sequence diagram della gestione di un ordine :FinestraIngresso Ordini :Ordine :LineaOrdine :ScortaMagazzino prepara ( ) * prepara ( ) disponibilita =controlla ( ) return [disponibilita ] preleva() dariordinare() [dariordinare] new ( ) : Rifornimento Prodotto new ( ) [disponibilita ] : Spedizione Prodotto 08UMLEX1.12
:FinestraIngres soordini prepara( ) : Ordine : Lineaordine : ScortaMagazzino : : Spedizione RifornimentoProdot to prepara( ) controlla( ) return [disponibilita ] preleva( ) dariordinare( ) [dariordinare] new() [disponibilita ] new() Gli oggetti sono "bloccati" in alto ed occorre, quindi, indicare esplicitamente le operazioni di creazione. Non e possibile indicare l iterazione (vedi prepara() da ordine a LineaOrdine) 08UMLEX1.13
Collaboration Diagram : FinestraIngressoOrdini 1: prepara() : Ordine 1.1.2.1: dariordinare ( ) <<local>> X : Linea Ordine 1.1:* prepara ( ) 1.1.1: controlla ( ) 1.1.2: [disponibilita ] remove ( ) y:scorta Magazzino : Spedizione prodotto 1.1.3: [disponibilita ] new ( ) :Rifornimento Prodotto 1.1.2.2: new ( ) 08UMLEX1.14
:FinestraIngre ssoordini 1: prepara( ) : Ordine 2: prepara( ) L : Li neaordine 4: ret urn 8: [disponibilita ] new() 6: dariordinare( ) 3: controlla( ) 5: [disponibilita ] preleva( ) : RifornimentoProdotto 7: [dariordinare] new() : ScortaMagazzino : Spedizione Non essendo possibile specificare iterazioni il collaboration diagram, generato automaticamente a partire dal sequence diagram, presenta una numerazione ad un solo livello. Non e possibile associare stereotipi alle associazioni; e delegato agli adornamenti delle estremita dei collegamenti indicare la visibilita (vedi <<local>> tra ordine e linea d ordine) 08UMLEX1.15
Specifiche per lo state diagram illustrare lo State diagram relativo al ciclo di vita di un ordine evidenziando cosa accade: se in fase di verifica sono presenti tutti gli oggetti se ve ne sono alcuni mancanti si consideri che nel caso manchi qualche oggetto e' necessario gestire l attesa degli oggetti mancanti 08UMLEX1.16
StateDiagram di un ordine Active [ non tutti gli item controllati ] Elaborazione do: controlla item [ tutti gli item controllati e disponibili ] Spedizione do: inizia spedizione [ tutti gli item controllati && qualcuno mancante ] Arrivo Item [Qualeche item mancante ] Arrivo item [ tutti gli item disponibili ] Attesa Cancellato abort Spedito 08UMLEX1.17
Attivo Cancellato Spedito [ NOT tutti item controllati ] Elaborazione do/ controllaitem [ tutti item controllati AND tutti item disponibili ] Spedizione do/ iniziaspedizione arrivoitem[ tutti item disponibili ] [ tutti item controllati AND NOT tutti item disponibili ] arrivoitem[ NOT tutti item disponibili ] Attesa Spedit 08UMLEX1.18
Specifiche per l activity diagram si mostri come viene gestito l arrivo di un ordine in maniera simile a quanto indicato nel precedente sequence diagram considerare che i pagamenti da parte degli utenti che sottomettono l ordine vanno autorizzati dall ufficio finanziario 08UMLEX1.19
GestioneRischio Ges tione Ordini GestioneMagazzino RiceveOrdine AutorizzaPag amento ControllaItem [ NOT disponibili ] Ordina [ concesso ] [ disponibili ] Preleva [ rifiutato ] CancellaOrdi ne Spedisci Cancellato Spedito 08UMLEX1.20
Decomposizione dell attività di autorizzazione al pagamento analizzare l attività di autorizzazione al pagamento considerando che il pagamento può essere effettuato tramite assegno, carta di credito o alla consegna è possibile verificare la disponibilità per la carta di credito o relativamente all assegno è possibile accettare pagamenti alla consegna per clienti regolari (in base alla loro storia) per clienti occasionali verificando i loro dati personali, ma solamente se l ordine ha un valore inferiore a 1000$ nel caso qualche controllo fallisca si richiede un pagamento anticipato 08UMLEX1.21
Attivita di pagamento [controllo OK] [fallito] ordine annullato Controllo carta credito [fallito] [carta credito] [assegno] Controllo assegno Determina tipo pagamento [consegna] Cliente abituale? [no] Ordine> 1000$? [si] [no] [controllo OK] [si] In regola con i pagamenti [si] [no] [non accettata] Richiesta prepagato [accettata] Controllo cliente [fallito] ordine OK Apri nuovo conto cliente [controllo OK] 08UMLEX1.22