Esercizi UML - Politecnico di Milano Sede di Cremona

Transcript

Esercizi UML - Politecnico di Milano Sede di Cremona
Esercizi di UML
Ristorante
Una ristorante ha la necessità di progettare un database per la gestione degli ordini. Il ristorante per minimizzare i
costi e ottimizzare il servizio richiede che sia lo stesso cliente a decidere quali cibi ordinare attraverso un tablet
presente ad ogni tavolo. Il tablet sostituisce interamente sia il blocchetto di degli ordini che il menù poiché permette
di visualizzare tutta la lista delle portate identificate da un codice e caratterizzate da un nome e una descrizione; oltre
a queste fondamentali informazioni è riportata tutta la lista degli ingredienti che compongono la portata. Gli
ingredienti sono caratterizzati da un codice e da un nome e possono essere suddivisi in aromi (spezie, rosmarino...),
condimenti (olio, aceto... ) e cibi; questi ultimi sono suddivisi in latticini, uova, frutta, verdura, carne e cereali (con e
senza glutine). Questa suddivisione fine del contenuto permette ai clienti di filtrare i cibi non adatti a vegetariani,
vegani o a persone intolleranti/allergiche al glutine, lattosio o ad un particolare ingrediente. Ogni ordine effettuato
attraverso il tablet è identificato dal numero di sala, dal numero di tavolo, dal giorno e l'ora; riporta inoltre il numero
di commensali e le portate ordinate con la relativa quantità. Oltre alle portate è possibile ordinare anche delle
bevande identificate da un codice che queste possono essere suddivise in alcoliche o analcoliche. Il prezzo di ogni
portata può essere diverso se consumata a pranzo o a cena mentre le bevande mantengono sempre lo stesso prezzo.
È infine necessario prevedere la possibilità di ordinare delle promozioni o menu speciali che prevedono un'insieme di
portate e/o bevande ad un prezzo agevolato. Tali promozioni sono caratterizzate da un nome, uno slogan e una
descrizione inoltre hanno una durata limitata nel tempo e potrebbero essere valide solo a pranzo o solo a cena.
Il ristorante vuole sfruttare il proprio sistema di ordine per accettare anche ordini online o telefonici da asporto. Un
ordine da asporto è identificato da una data e un progressivo numerico (univoco nello stesso giorno); riporta tutta la
lista delle portate con le relative quantità, bevande e promozioni ordinate. Un ordine da asporto può essere ritirato
presso il ristorante o può essere consegnato a domicilio; in questo ultimo caso è necessario memorizzare nome,
cognome, via, civico e numero di telefono di chi ha memorizzato l'ordine.
Multiutility
Una società di multiutility ha la necessità di gestire un database per la memorizzazione di tutti i suoi clienti. La società
fornisce energia elettrica e acqua potabile sia ad aziende che per uso residenziale. I clienti residenziali sono identificati
dal codice fiscale della persona che ha sottoscritto il contratto, inoltre si vuole memorizzare il nome, cognome, la data
di nascita, il luogo di nascita, l'indirizzo di residenza e un recapito telefonico. I clienti business sono identificati dal
codice fiscale della società, si vuole inoltre memorizzare la partita iva, il nome e il cognome del legare rappresentante,
un recapito telefonico, uno recapito fax, l'indirizzo della sede legale e della sede operativa della società. Ogni cliente
può usufruire della fornitura di energia elettrica o di acqua potabile o di entrambe; per farlo è necessario aprire un
contratto identificato da un codice. Si richiede inoltre la memorizzazione della data di apertura del contratto, del tipo
di fornitura (interrompibile o non interrompibile) e dell'aliquota iva (poiché le utenze residenziali avranno l'aliquota
agevolata al 10% mentre quelle business al 22%). Per misurare gli effettivi consumi è necessario istallare dei contatori;
si fa notare che è possibile istallare più contatori dello stesso tipo per ogni contratto. Ogni contatore è identificato da
un numero di matricola; si vuole inoltre memorizzare la data dell'ultima manutenzione e la lettura iniziale che riporta i
Kw o i metri cubi letti al momento in cui si associa il contatore al nuovo contratto (nel caso di subentri il valore può
essere diverso da 0). I contatori dell'acqua sono analogici e necessitano di letture manuali inoltre richiedono la
memorizzazione della pressione massima supportata mentre i contatori della corrente elettrica sono caratterizzati dal
voltaggio massimo supportato (220V, 350V ...), inoltre sono dotati di memoria interna e permettono di effettuare
letture remote. Ogni tre mesi si effettuano delle letture per determinare i consumi; tali letture riportano un numero
complessivo di metri cubi di acqua potabile o Kw utilizzati suddivisi per fasce F1 (più costosa), F2(media) e F3 (meno
costosa). Tutte le letture sono riferite ad un contatore e sono identificate dal numero del trimestre del'anno in cui
avviene la lettura. I prezzi di acqua e luce possono variare ogni trimestre quindi è necessario mantenere traccia di
queste variazioni in un'apposita tabella prezzi nella quale sono riportati il prezzo del singolo metro cubo d'acqua
potabile e i prezzi al Kw delle diverse fasce F1, F2 e F3. Dopo ogni lettura viene emessa una bolletta per ogni contratto
nella quale sono riportati per ogni contatore i consumi di acqua o luce, i prezzi del singolo Kw per le diverse fasce e/o
del singolo metro cubo, il periodo temporale a cui si riferisce la bolletta, il totale della bolletta da pagare e tipo di
pagamento (addebito su conto corrente o bollettino postale). Il totale da pagare deve essere espresso sia al netto
dell'iva (somma di tutti i consumi per i relativi prezzi) sia con iva (totale a netto del iva + iva).