Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012 V. Costamagna, F. Dotta, F. Barbano, L....

Post on 02-May-2015

214 views 0 download

Transcript of Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012 V. Costamagna, F. Dotta, F. Barbano, L....

Everywhere Takeaway

Progetto di SSCSWebA.A. 2011/2012

V. Costamagna, F. Dotta, F. Barbano, L. Violanti, Oltikuka

Obiettivo a lungo termine

Realizzare un'applicazione web based per gestire l'ordinazione di prodotti da asporto

(servizio presente in altri stati,ma ancora assente in Italia)

Requisiti del cliente (informali)

Vorrei portare in Italia un sistema per la gestione del servizio takeaway nelle principali città italiane.

Il servizio dovrà occuparsi di tutte le fasi, dalla ricerca alla consegna.

Dovrà permettere di cercare diversi tipi di cibo e ristoranti per distanza, località, qualità, tipologia di cibo, ecc.

Il servizio deve permettere agli utenti di inviare recensioni relative ai vari locali.

Possibilmente deve avere anche interfacce mobile.

Requisiti (1)

È presente una scheda per ogni locale che offre il servizio di take-away, che comprende una descrizione del locale, gli orari in cui è attivo il servizio take-away, il menu dei cibi offerti (con relativi prezzi) e la geo-localizzazione tramite le API di Google Maps

Gli utenti, anche anonimi, possono visualizzare liberamente le schede dei locali ed i relativi menu

Requisiti (2)

Per effettuare un'ordinazione, l‘ Utente deve registrarsi come Cliente

Al termine di un'ordinazione, il Cliente può esprimere una valutazione (0-5 stelle) sui cibi ordinati

I gestori dei locali registrati possono inserire, modificare o eliminare i menu

Utilizzo dei social network (Twitter, Facebook, ecc..) per consigliare cibi ed esprimere le proprie valutazioni

Goal (1)

Registrazione cliente

Registrazione venditore

Vari tipi di ricerca:

Ricerca per posizione

Ricerca per cibo

Ricerca per valutazione

Ricerca per orario

Ricerca per prezzo

Goal (2)

Prenotazione di uno o più prodotti

Recensione dei prodotti acquistati

Interfaccia Web Mobile

Pagina profilo utente (storico, preferenze, social, ecc..)

Note:

Per potere effettuare una prenotazione occorre essere registrati

Le ricerche possono essere effettuate anche da utenti non registrati

Non Goal

Pagamento online (il pagamento avviene alla consegna)

Prenotazione telefonica

Applicazione mobile

User stories

L’ Utente è una qualsiasi persona che, in modo anonimo, può visitare il portale e visualizzare i prodotti inseriti.

Un Cliente è una qualsiasi persona che si registra al portale per acquistare uno o più prodotti

Un Venditore è una qualsiasi persona che vuole registrare il proprio locale sul portale per mettere in vendita dei prodotti

Un Locale rappresenta l’entità registrata da un Venditore

User stories: Utente

1. L’ Utente può effettuare una ricerca di un determinato prodotto utilizzando 4 diversi modi:

1. Prodotto: filtraggio dei Locali che vendono uno specifico prodotto

2. Orario: ricerca dei Locali specificando un determinato orario di apertura

3. Posizione: ricerca di un locale in una determinata posizione geografica

4. Valutazione: ricerca in base al punteggio assegnato ai prodotti dai Clienti

2. L’Utente anonimo può effettuare la registrazione per diventare un Cliente del portale

3. L’Utente anonimo può effettuare la registrazione per diventare un Venditore del portale

User stories: ClienteL’entità Cliente può svolgere le seguenti operazioni:

• Modifica dati personali inseriti al momento della registrazione

• Effettuare una ordinazione di uno o più prodotti presenti nelle schede di un locale

• Assegnare un punteggio di valutazione ad un locale in cui ha acquistato dei prodotti

• Effettuare le ricerche di prodotti utilizzando le 4 modalità descritte precedentemente e in più può ricercare dei prodotti simili a quelli presenti nel suo storico acquisti

User stories: Venditore

Il Venditore puo’ modificare solo alcuni dei propri dati personali, cioe’ indirizzo, telefono, username e password, mentre non puo’ modificare nome, cognome, CF data di nascita ed email.

Può inserire nel portale un proprio locale per iniziare a vendere i prodotti

Può modificare alcune informazioni inerenti al locale inserito, inoltre può rimuovere completamente un proprio locale

Può gestire lo stato delle proprie prenotazioni

User stories: Locale

• Il Venditore puo’ modificare nome e prezzo dei prodotti del proprio Locale.

• Il Venditore puo’ eliminare i prodotti offerti dal proprio locale.

• Il Venditore puo’ inserire nuovi prodotti che offre il proprio Locale.

• Il Venditore puo’ visualizzare tutte le prenotazioni, relative al proprio Locale, effettuate dai Clienti.

• Il Venditore puo’ visualizzare le valutazioni del proprio Locale.

Use Case: Registrazione Cliente/Venditore (1/2)

Precondizioni: N/A

Postcondizioni: l’ Utente è registrato come Cliente o Venditore

Attori: Utente

1. L’ Utente compila il form di registrazione in base al tipo di servizio che vuole utilizzare (Cliente/Venditore)

2. Il sistema normalizza e controlla i dati inseriti, in caso positivo presenta una pagina di conferma

3. L’ Utente conferma i dati inseriti nel passo 1

4. Il sistema registra l’avvenuta registrazione inviando una email all’Utente contenente un link di attivazione e attende per massimo 48 ore che l’Utente si attivi

5. L’Utente attiva la registrazione tramite il link ricevuto per email

6. Il sistema presenta una pagina di benvenuto

Use Case: Registrazione Cliente/Venditore (2/2)

Eccezioni:

1. L’ Utente non completa i campi del form o li completa in modo errato, oppure non conferma il passo 3

• Il sistema redireziona l’Utente alla pagina di registrazione

2. L’Utente non si attiva tramite il link ricevuto via mail entro il limite di 48 ore

• Il sistema scarta la richiesta di registrazione dell’Utente

Use Case: Inserimento/Modifica Locale da parte di un Venditore (1/2)

Precondizione: Il Venditore è autenticato

Postcondizione: Il Venditore ha inserito/modificato un locale di sua proprietà

Attori: Venditore

1. Il Venditore completa il form relativo ai dati del Locale che vuole inserire (o modificare)

2. Il sistema verifica che i dati inseriti siano corretti e presenta una pagina di conferma

3. Il Venditore conferma l’inserimento del Locale (o le modifiche ad un Locale preesistente )

4. Il sistema registra il nuovo Locale (o le modifiche al Locale preesistente) e informa il Venditore dell’avvenuta operazione

Use Case: Inserimento/Modifica Locale da parte di un Venditore (2/2)

Eccezioni:

1. Se le informazioni inserite dal Venditore sono insufficienti o inesatte, il sistema ripresenta il form di inserimento/modifica

2. Se il Venditore non conferma l’inserimento/modifica del Locale, il sistema ripresenta il form di inserimento/modifica

Note

Se il Venditore vuole eliminare un Locale il sistema verifica se esistono prenotazioni attive per il Locale scelto. In caso positivo il sistema avvisa il Venditore che non può eliminare il Locale finché esistono prenotazioni attive

Use Case: Inserimento/Modifica prodotto di un Locale (1/2)

Precondizione: Venditore autenticato e possiede un Locale

Postcondizione: Il Venditore ha inserito/modificato dei prodotti che verranno offerti nel proprio Locale

Attori: Venditore, Locale

1. Il Venditore completa il form di inserimento con i dati relativi al prodotto che vuole inserire (o modificare) in un determinato Locale

2. Il sistema controlla i dati inseriti e se sono corretti conferma l’inserimento (o modifica) del prodotto nel Locale

3. Il Venditore conferma l’inserimento del Prodotto (o le modifiche ad un Prodotto preesistente)

4. Il sistema registra il nuovo Prodotto (o le modifiche al Prodotto preesistente) e informa il Venditore dell’avvenuta operazione

Use Case: Inserimento/Modifica prodotto di un Locale (2/2)

Eccezioni:

1. Se le informazioni inserite dal Venditore sono insufficienti o inesatte, il sistema ripresenta il form di inserimento/modifica

2. Se il Venditore non conferma l’inserimento/modifica del Prodotto, il sistema ripresenta il form di inserimento/modifica

Note:

Se sono attive prenotazioni per il prodotto da modificare o eliminare, il sistema informa il Venditore che non può modificare o eliminare il prodotto se esistono prenotazioni attive per quel prodotto

Use Case: Inserimento/Modifica Prenotazione (1/2)

Precondizione: Cliente registrato

Postcondizione: Il Cliente ha effettuato/modificato un prenotazione

Attori: Cliente, Locale

1. Il Cliente vuole inserire un nuova prenotazione:

1. Il Cliente sceglie un prodotto offerto da un Locale

2. Il sistema mostra le caratteristiche del prodotto scelto dal Cliente

3. Il Cliente aggiunge tale prodotto al proprio carello

4. Quando il cliente termina gli acquisti, il sistema mostra un form dove inserire le informazioni necessarie per completare l’ordine

5. Il sistema verifica i dati inseriti e in caso positivo conferma la prenotazione, oppure mostra l’errore

2. Il Cliente vuole modificare (o eliminare) una prenotazione :

1. Il Cliente sceglie quale delle proprie prenotazioni vuole modificare (o eliminare)

2. Il sistema verifica che il Cliente possa modificare (o eliminare) la prenotazione

Use Case: Inserimento/Modifica Prenotazione (2/2)

3. Il Cliente modifica la prenotazione (o conferma l’eliminazione)

4. Il sistema verifica la modifica effettuata e in caso positivo avvisa del completamento della modifica (o eliminazione)

Eccezioni:

1. Il Cliente non può modificare (eliminare) la prenotazione selezionata:

1. Il sistema informa il Cliente dell’errore

2. Se le informazioni inserite dal Cliente sono insufficienti o inesatte, il sistema ripresenta il form di inserimento/modifica

Use Case: Ricerca di un prodotto

Precondizione: Utente o Cliente vuole ricercare un prodotto

Postcondizione: Visualizzazione dei risultati della ricerca

Attori: Utente, Cliente

1. L’utente o il Cliente definisce i criteri e i filtri di ricerca

2. Il sistema mostra i risultati della ricerca secondo i filtri selezionati

Use Case: Valutazione Locale

Precondizioni: Il Cliente ha acquistato un prodotto di un Locale

Postcondizione: Il Cliente ha inserito una valutazione di un Locale

Attori: Cliente, Locale

1. Il Cliente seleziona il Locale da valutare

2. Il sistema verifica che il Cliente abbia i criteri necessari per valutare il Locale, in caso positivo mostra la finestra di valutazione

3. Il Cliente inserisce la valutazione

4. Il sistema registra e conferma l’avvenuta valutazione

Eccezioni:

5. Il Cliente non può valutare il Locale perché non ha acquistato un prodotto del Locale o perché è scaduto il termine della valutazione

1. Il sistema avvisa il Cliente dell’errore

Use Case: Gestione prenotazioni

Precondizione: Venditore autenticato che possiede un Locale

Postcondizione: Venditore gestisce le proprie prenotazioni

Attori: Venditore, Locale

1. Il sistema mostra al Venditore le prenotazioni attive

2. Il Venditore sceglie una prenotazione da gestire

3. Il sistema mostra la pagina di gestione

4. Il Venditore gestisce lo stato della prenotazione

5. Il sistema verifica l’operazione e in caso positivo comunica l’esito altrimenti mostra un messaggio di errore e si riparte dal punto 1

Use Case: Visualizzazione valutazioni

Precondizione: Venditore autenticato che possiede un Locale

Postcondizione: Venditore visualizza le valutazione dei Clienti sul proprio Locale

Attori: Venditore, Locale

1. Il Venditore sceglie dalla propria pagina personale il Locale di cui vuole vedere le valutazioni

2. Il sistema mostra le valutazioni presenti per il Locale scelto

Use Case: Storico/Social Network

UCD: Registrazione

UCD: Gestione locale

UCD: Gestione prodotti locale

UCD: Inserimento/modifica prenotazione

UCD: Ricerca prodotto

UCD: Valutazione locale

UCD: Gestione prenotazioni

UCD: Visualizzazione valutazioni

CRC CARDS (1)

UTENTERESPONSABILITA’ COLLABORAZIONI

- Registrazione - Locale- Prodotto- Valutazione

ATTRIBUTI

N/A

CRC CARDS (2)

CLIENTERESPONSABILITA’ COLLABORAZIONI

- Autenticazione- Modifica profilo

- Locale- Prodotto- Valutazione- Prenotazione

ATTRIBUTI

Nome, cognome, indirizzo, telefono, email, CF, data di nascita, username, password.

CRC CARDS (3)

VENDITORERESPONSABILITA’ COLLABORAZIONI

- Autenticazione- Modifica profilo

- Locale

ATTRIBUTI

Nome, cognome, indirizzo, telefono, email, CF, data di nascita, username, password.

CRC CARDS (4)

PRENOTAZIONERESPONSABILITA’ COLLABORAZIONI

- Inserimento- Visualizzazione- Modifica- Cancellazione

- Locale- Prodotto- Cliente- Valutazione

ATTRIBUTI

Dati cliente, dati locale, dati prodotti, data/ora.

CRC CARDS (5)

VALUTAZIONERESPONSABILITA’ COLLABORAZIONI

- Inserimento- Visualizzazione- Modifica- Cancellazione- Ricerca

- Locale- Utente- Cliente- Prenotazione

ATTRIBUTI

Dati locale, dati cliente, data/ora, voto, descrizione.

CRC CARDS (6)

PRODOTTORESPONSABILITA’ COLLABORAZIONI

- Inserimento- Visualizzazione- Modifica- Cancellazione- Ricerca

- Locale- Utente- Cliente- Prenotazione

ATTRIBUTI

Nome, descrizione, costo, categoria.

CRC CARDS (7)

LOCALERESPONSABILITA’ COLLABORAZIONI

- Inserimento- Visualizzazione- Modifica- Cancellazione- Ricerca

- Venditore- Utente- Cliente- Prenotazione- Prodotto- Valutazione

ATTRIBUTI

Nome, indirizzo, proprietario, P.IVA o CF, menu, email, orario di vendita, scheda valutazioni, orario di apertura.

Project Plan al 22-11-2011

CRC: Completato

Scenari: 23/11/2011 - 25/11/2011

Casi d’uso: 24/11/2011 - 28/11/2011

UCD: 27/11/2011 – 2/12/2011

Diagrammi di Attività: 1/12/2011 – 6/12/2011

Diagrammi di Sequenza: 5/12/2011 – 14/12/2011

Diagrammi di Classe: 13/12/2011 – 15/12/2011

Verifica della documentazione: 16/12/2011

Diagramma Temporale

CRC

Diagrammi di Classe

Scenari

UCD

Casi d’uso

Diagrammi di Attività

Diagrammi di Sequenza

Verifica

Oggi 15/12/2011