Analisi e progettazione del software Anno Accademico 2018-2019 Acme Eat – Requisiti La Acme Eat@Home (nel seguito chiamata semplicemente “Azienda”) è un’organizzazione che offre un servizio, su scala nazionale, di ordinazione di pasti e della relativa spedizione a domicilio. Più precisamente, l’Azienda agisce come intermediario tra un insieme di ristoranti (partner dell’Azienda) ed un insieme di consumatori (clienti dell’Azienda). Invece, Acme Eat (nel seguito chiamato semplicemente “Sistema”) è il sistema software, di tipo client-server, utilizzato dall’Azienda Eat@Home per la gestione di questo servizio di ordinazione e spedizione pasti a domicilio. Osservazione: Questa iterazione si occupa solo del servizio di ordinazione dei pasti, ma non del servizio di spedizione pasti. Il Sistema consente: ai direttori dei ristoranti, di registrare informazioni sui ristoranti che dirigono e sui loro menu; ai consumatori, di effettuare l’ordinazione di pasti nei ristoranti della propria città; alle cucine dei ristoranti, di sapere quali ordini sono stati effettuati, per poter preparare i pasti ordinati. Alcune osservazioni circa il dominio: Ogni ristorante, partner dell’Azienda, ha un proprio menu, che è indipendente dal menu degli altri ristoranti. Il menu di un ristorante è composto da un insieme di entità chiamate genericamente “prodotti”, come piatti, bevande o altro. Ad esempio, il ristorante Baffone di Roma ha nel proprio menu prodotti come: Pizza Margherita, Pizza Baffone (la specialità del ristorante), Supplì cacio e pepe, Coca Cola [lattina] e Coca Cola [bottiglia 1 litro]. Invece, il ristorante Barbetta di Milano ha nel proprio menu prodotti come: Pizza Margherita, Crocchetta di patate, Risotto alla Milanese (la specialità del ristorante) e Pepsi Cola [lattina]. Nel menu di un ristorante, ogni prodotto ha un nome (ad es., Pizza Margherita), una descrizione (ad es., pizza condita con pomodoro, mozzarella e basilico fresco) ed un prezzo (ad es., € 7.50). Attenzione, ristoranti diversi potrebbero avere dei prodotti con lo stesso nome, ma con caratteristiche differenti. Ad esempio, la Pizza Margherita di Baffone potrebbe avere la descrizione ed il prezzo diversi dalla Pizza Margherita di Barbetta. I consumatori, clienti dell’Azienda, devono essere registrati nel Sistema, che ne memorizza dati come nome, cognome, indirizzo email (identificativo) e numero di cellulare. Ad esempio, Andrea Rossi ([email protected]). Ciascuna ordinazione, effettuata da un consumatore, è relativa ad uno specifico ristorante. Ciascuna ordinazione è composta da una o più righe; ogni riga è relativa ad un prodotto (presente nel menu di quello specifico ristorante), una quantità ed un’eventuale nota del consumatore. Infine, ciascuna ordinazione include un indirizzo di consegna, nonché la data e l’orario di consegna. Ecco un esempio di ordinazione: Ordinazione #1234 Consumatore: Andrea Rossi ([email protected]) Ristorante: Baffone (di Roma) Pizza Margherita Pizza Capricciosa Supplì cacio e pepe Coca Cola [bottiglia 1 litro] con poca mozzarella ben fresca 1x 1x 2x 1x 7.50 9.50 2.00 4.00 7.50 9.50 4.00 4.00 Indirizzo di consegna: Via Vito Volterra 62, 00146 Roma Data e ora di consegna: 1 aprile 2019, ore 21:00. Totale complessivo ordinazione: € 25.00 In questa figura, ogni riga dell’ordinazione è rappresentata graficamente da una riga della tabella: la prima colonna è il prodotto, la seconda è una nota del consumatore (opzionale), la terza è la quantità, la quarta è il prezzo unitario e la quinta è il prezzo totale della riga. Esempi di possibili note sono senza aglio, al sangue e ben fresco. Le note sono semplici descrizione testuali, e non sono predefinite nel sistema (in quanto una nota può rappresentare ogni possibile richiesta di un consumatore circa un prodotto ordinato). Il totale complessivo dell’ordinazione è dato dalla somma dei prezzi totali delle righe. Analisi e progettazione del software Anno Accademico 2018-2019 Acme Eat – Requisiti L’uso del sistema in discussione è descritto principalmente dai seguenti casi d’uso: Caso d’uso UC1: Inserimento nuovo ristorante – Attore primario: un Direttore di un ristorante. Scenario principale di successo: 1. Un Direttore vuole inserire un nuovo ristorante, con il relativo il menu. 2. Il Direttore inserisce il suo codice identificativo e la sua password. Il Sistema verifica la correttezza dei dati immessi, e autentica il Direttore. Il Sistema mostra nome e cognome del Direttore. Il Sistema mostra l’elenco dei ristoranti registrati che sono diretti da quel Direttore. 3. Il Direttore sceglie l’attività “Inserimento nuovo ristorante”. 4. Il Direttore inserisce il nome del ristorante ed una descrizione del ristorante. Inoltre, il Direttore inserisce (selezionandola da un elenco) la città in cui si trova il ristorante. Il Sistema registra queste informazioni sul ristorante, a cui associa anche un identificatore univoco. Il Direttore ripete il passo 5 per ogni prodotto del menu del ristorante, finché non indica che ha terminato. 5. Il Direttore inserisce le informazioni relative ad un prodotto del menu del ristorante: il nome del prodotto, una sua descrizione ed il prezzo unitario. Il Sistema registra le informazioni sul prodotto, a cui associa anche un identificatore univoco. 6. Il Sistema mostra un riepilogo delle informazioni sul ristorante inserito (compreso il suo menu). 7. Il Direttore inserisce (selezionandolo da un elenco) l’identificatore univoco di uno dei prodotti del menu inserito, che rappresenta la specialità del ristorante. Il Sistema registra nel menu la specialità del ristorante. 8. Il Direttore conferma l’inserimento del ristorante. Il Sistema registra tutte le informazioni sul ristorante e il suo menu. Da questo momento in poi, i Consumatori del Sistema potranno vedere questo ristorante e il suo menu, per effettuare delle ordinazioni da quel ristorante (Caso d’uso UC2). Inoltre, questo ristorante comparirà tra i 15 ristoranti inseriti più di recente nel Sistema, sostituendo il ristorante meno recente in tale elenco. Estensioni: 2a Credenziali del Direttore non convalidate. Il Sistema termina l’esecuzione del caso d’uso. 3-8a Il Direttore annulla l’operazione di inserimento. Il Sistema non registra nessuna informazione sul ristorante ed il suo menu. Caso d’uso UC2: Inserimento ordinazione – Attore primario: un Consumatore. 1. Un Consumatore vuole inserire una nuova ordinazione. 2. Il Consumatore inserisce il suo indirizzo email e la sua password. Il Sistema verifica la correttezza dei dati immessi, e autentica il Consumatore. Il Sistema mostra nome e cognome del Consumatore. Inoltre, il Sistema mostra l’elenco dei 15 ristoranti inseriti più di recente nel Sistema. 3. Il Consumatore sceglie l’attività “Inserimento ordinazione”. Il Sistema mostra l’elenco delle città in cui ci sono ristoranti registrati. 4. Il Consumatore inserisce (selezionandolo da un elenco) il nome di una città. Il Sistema mostra l’elenco dei ristoranti registrati nella città selezionata. 5. Il Consumatore inserisce (selezionandolo da un elenco) l’identificatore univoco di uno dei ristoranti della città selezionata. 6. Il Sistema mostra nome e descrizione del ristorante selezionato, nonché nome e cognome del suo Direttore. Inoltre il Sistema mostra il menu del ristorante selezionato, evidenziando la specialità del ristorante. 7. Il Consumatore inserisce (selezionandolo dal menu) l’identificatore univoco di un prodotto che vuole ordinare, la relativa quantità ed eventualmente una nota (se vuole indicare sue preferenze). Il Sistema registra la riga di ordinazione per il prodotto, e mostra la descrizione ed il prezzo unitario del prodotto. Il Consumatore ripete il passo 7 fino a che non indica che ha terminato. 8. Il Sistema mostra un riepilogo dell’ordinazione, compreso il totale complessivo dell’ordinazione. 9. Il Consumatore inserisce indirizzo, data ed ora di consegna, e conferma l’ordinazione. Il Sistema registra l’ordinazione. Da questo momento, la Cucina del ristorante selezionato potrà vedere questa ordinazione (Caso d’uso UC4), per poter preparare il pasto ordinato. Estensioni: 2a Credenziali del Consumatore non convalidate. Il Sistema termina l’esecuzione del caso d’uso. 3-9a Il Consumatore annulla l’operazione di inserimento. Il Sistema non registra nessuna informazione sull’ordinazione. Analisi e progettazione del software Anno Accademico 2018-2019 Acme Eat – Requisiti Ulteriori casi d’uso per il sistema in discussione, da prendere in considerazione durante l’analisi e la progettazione: Caso d’uso UC3: Il Direttore di un ristorante usa il Sistema per aggiornare il menu di uno dei ristoranti che dirige (ad es., per aggiungere prodotti, modificare il loro prezzo, modificare la specialità del ristorante). Caso d’uso UC4: La Cucina di un ristorante usa il Sistema per visualizzare le ordinazioni per quel ristorante per la giornata di oggi, ordinate per ora di consegna. Per ciascuna ordinazione, il Sistema mostra dati sul Consumatore e sull’ordinazione, compreso l’elenco dei prodotti ordinati, con le relative quantità e note. Caso d’uso UC5: Un nuovo Consumatore usa il Sistema per registrarsi nel Sistema. Caso d’uso UC6: Un Consumatore usa il Sistema per visualizzare le ordinazioni che ha effettuato in precedenza. Per ciascuna ordinazione, il Sistema mostra la data di consegna, dati sul ristorante scelto e sull’ordinazione, compreso l’elenco dei prodotti ordinati, con le relative quantità e note. Caso d’uso UC7: Il Direttore di un ristorante usa il Sistema per visualizzare le ordinazioni per uno dei ristoranti che dirige, in un certo periodo o in una certa data.