forked from Agave-SIW/Agave
-
Notifications
You must be signed in to change notification settings - Fork 0
/
specifiche.txt
113 lines (95 loc) · 6.29 KB
/
specifiche.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Agave `Progetto SIW 2015`
--------------
* Gaetano Bonofiglio
* Veronica Iovinella
* Andrea Salvoni
--------------
### Estensioni
* Quando il **cliente** effettua il login, l'applicazione lo ricorda fino al logout.
* Un cliente può registrarsi da solo al sito.
* Ad ogni prodotto può essere associata una serie di **recensioni** di altri clienti.
* Una recensione è composta da un **commento**, una **valutazione** da 1 a 5 e un *autore* (un cliente).
* Nella pagina del singolo prodotto è mostrato l'elenco delle recensioni.
* Nella pagina con l'elenco dei prodotti è mostrata la media delle valutazioni per ogni prodotto.
* Quando l'**amministratore** effettua il login, l'applicazione lo ricorda fino al logout.
* Se l'amministratore non è loggato non può accedere al **pannello admin**.
* Quando un amministratore invia un nuovo prodotto deve **caricare un'immagine** che poi verrà mostrata nel riepilogo del prodotto.
* Quando un cliente effettua un **ordine**, ogni prodotto (*riga ordine*) selezionato viene salvato temporaneamente nel **carrello** fino alla conferma o alla cancellazione (di fatto, il carrello rappresenta l'ordine *aperto* delle specifiche originali).
* Carrello, ordini e ordini evasi sono comunque di tipo *Orders*, ma sono differenziati in base alla loro associazione a Customer, con diversa cardinalità (il carrello rappresenta l'ordine in creazione, quindi è 1 a 1).
* Il carrello può essere svuotato o confermato. Alla conferma l'ordine diventa effettivo e il carrello viene comunque svuotato. Questo provoca un cambiamento dell'associazione.
### Specifiche Originali
* Si vuole realizzare un sistema informativo su Web per la gestione degli ordini di una piccola azienda che effettua una attività di e-commerce dei propri prodotti
* Oltre agli utenti occasionali, due tipologie di attori interagiscono con il sistema: i clienti e l'amministrazione
* Il cliente può svolgere le seguenti operazioni (è possibile introdurne altre):
* Consultazione catalogo prodotti
* Creazione di un ordine
* Consultazione dei propri ordini
* L'amministrazione può svolgere le seguenti operazioni:
* Inserimento di un prodotto nel catalogo
* Inserimento di un cliente nella anagrafica clienti
* Evasione di un ordine
* Per ogni prodotto sono di interesse un nome, un codice, una descrizione, un costo, la quantità in magazzino
* Ogni prodotto può essere fornito da uno o più fornitori, ogni fornitore può fornire uno o più prodotti
* Ogni fornitore ha una partita iva e un indirizzo, telefono, indirizzo di posta elettronica
* Ogni cliente ha nome, cognome, data di nascita, data di registrazione, indirizzo, indirizzo di posta elettronica
* Un ordine si compone di più righe: ogni riga riporta un prodotto, il prezzo unitario del prodotto e la quantità ordinata (ad es. penne, 1€, 400)
* Per ogni ordine è necessario memorizzare:
* la data in cui l'ordine è stato aperto dal cliente
* la data in cui l'ordine è stato chiuso dal cliente (da quel momento in poi l'ordine non verrà modificato e l'amministrazione può procedere ad evadere l'ordine)
* la data in cui l'ordine è stato evaso (cioè la data in cui i prodotti ordinati sono stati prelevati dal magazzino e spediti al cliente)
* I clienti che vogliono effettuare gli ordini devono essere registrati nella anagrafica dei clienti della azienda: solo i clienti identificati e autenticati possono effettuare ordini
* Il catalogo dei prodotti può essere consultato da clienti non autenticati
* Segue una bozza dei principali casi d'uso
* I casi d'uso dovranno essere estesi e completati a piacere (giustificando ogni scelta)
* NB: ipotizziamo che i pagamenti vengano gestiti off-line
* Caso d'uso UC1: consulta listino
* Attore primario: utente non registrato
* Scenario principale di successo:
* L'utente consulta il catalogo dei prodotti
* L'utente sceglie un prodotto e ne richiede i dettagli
* Il sistema mostra i dettagli del prodotto scelto
* L'utente ripete i passi precedenti un numero indefinito di volte
* Caso d'uso UC2: effettua ordine
* Attore primario: cliente (utente registrato)
* Scenario principale di successo:
* Il cliente crea un ordine
* Il cliente consulta il catalogo dei prodotti
* Il cliente sceglie un prodotto e aggiunge codice e quantità del prodotto scelto all'ordine
* Il sistema imposta il prezzo unitario del prodotto scelto al prezzo corrente di listino
* Il sistema registra la riga ordine
* Il cliente ripete i due passi precedenti finché necessario
* Il cliente "chiude" l'ordine
* Il sistema registra l'ordine
* Precondizioni: il cliente è identificato e autenticato
* Caso d'uso UC3: consulta i propri ordini
* Attore primario: cliente
* Scenario principale:
* Il cliente consulta l'elenco dei propri ordini
* Il sistema mostra al cliente l'elenco dei suoi ordini
* Il cliente chiede il dettaglio di un ordine
* Il sistema mostra il dettaglio dell'ordine
* Il cliente ripete i due passi precedenti finché necessario
* Precondizioni: il cliente è identificato e autenticato
* Caso d'uso UC4: inserimento prodotti nel catalogo
* Attore primario: amministrazione
* Scenario principale:
* L'amministratore inserisce un nuovo prodotto nel catalogo specificandone i dettagli
* Il sistema registra il prodotto
* I punti precedenti vengono ripetuti fino a che necessario
* Precondizioni: l'amministratore è identificato e autenticato
* Caso d'uso UC5: recupera indirizzo cliente
* Attore primario: amministrazione
* Scenario principale:
* L’amministratore fornisce l'id di un ordine
* Il sistema mostra all’amministratore i dati del cliente che ha effettuato l’ordine
* Precondizioni: l’amministratore è identificato e autenticato
* Caso d'uso UC6: evasione ordine
* Attore primario: amministrazione
* Scenario principale:
* Il sistema presenta all'amministratore gli ordini chiusi, ma non evasi
* L'amministratore sceglie un ordine
* Il sistema evade l'ordine: aggiorna l'ordine inserendo la data di spedizione e aggiorna la quantità dei prodotti in magazzino (sottraendo la quantità di prodotti usati per l'ordine)
* Precondizioni:
* l'amministratore è identificato e autenticato
* Eccezioni:
* alcuni prodotti potrebbero non essere presenti in magazzino nella quantità specificata dall'ordine. In questo caso l'ordine rimane in sospeso