Università del Salento
Facoltà di Ingegneria
Corso di Laurea in Ingegneria dell’Informazione
Progetto di
Ingegneria del Software
Progettazione della Web Application
“Niente di Nuovo”
Mercatino dell’Usato
Docente
Prof. Luca Mainetti
Studenti
Luisa Vittoria Bruno
matr. 20003762
Marco Grazioli
matr. 20002349
1
Requisiti e Obiettivi
Realizzare una Web Application di gestione di un mercatino dell’usato che permetta:
A tutti gli utenti:
• La visualizzazione degli articoli del catalogo
Agli utenti registrati:
• La pubblicazione e la modifica di inserzioni
• L’acquisto di articoli posti in un “carrello della spesa”
• La visualizzazione degli ordini effettuati
Al gestore del servizio:
• La gestione delle richieste di registrazione e di acquisto con notifica agli utenti
interessati di modifica alle loro richieste attraverso l’invio automatico di un’ e-mail
• La creazione e la modifica delle categorie del catalogo.
2
Casi d’Uso
Dall’analisi dei requisiti sono emersi i seguenti Casi d’Uso:
3
Architettura del Database
Dai casi d’uso sono emerse tre
Macro Funzionalità, ad ognuna
delle quali corrisponde una
particolare area del Database
Gestione del
catalogo
Gestione
delle
Inserzioni
Gestione
degli ordini
4
Diagramma dei Package
I packages
relativi
ai
test
I packages
relativi
gestione
degli
ordini
I packages
relativi
allaalla
gestione
delle
inserzioni
Il package “hibernate”
contiene
tutte
le
classi
che
sidel
interfacciano
catalogo
utenti
con il database
5
Diagrammi delle classi:
Design Pattern Facade
Pattern DAO:
Le classi DAO si
interfacciano con
il Database
Pattern Facade:
Le classi Util
nascondono alle
Action del sistema
la presenza delle
classi DAO.
6
Diagrammi delle classi:
Design Pattern Singleton
Le classi Util servono a fornire delle funzionalità, senza memorizzare informazioni
di stato, pertanto è stato possibile implementarle con il Pattern Singleton, in modo
tale che le altre classi potessero accedere sempre alla stessa istanza di queste.
7
Diagrammi delle classi:
Design Pattern Composite
Considerando che il
Catalogo è composto da
Articoli e da Categorie e
che le Categorie possono
contenere altre Categorie
e Articoli è stato possibile
implementare questa
struttura attraverso il
Pattern Composite
8
Diagrammi delle classi:
Design Pattern Command
Il cambiamento di stato delle
richieste di registrazione e di
acquisto comporta l’esecuzione di
due operazioni:
• Aggiornamento dello stato
• Invio e-mail di notifica
Ognuna di queste operazioni può
essere considerata un comando ed
è stata implementa con il Pattern
Command.
Il Pattern Composite è stato
applicato per la realizzazione del
MacroCommand.
9
Diagrammi delle classi:
Design Pattern Strategy
Perstesso
consentire
il calcolo
prezzoper
del permettere
totale del contenuto
del Carrello,
Lo
Pattern
è statodel
utilizzato
di usare diverse
strategie per la
utilizzando molteplici
questa funzionalità
è stata implementata
con il
generazione
del nome algoritmi,
del file immagine
caricato contestualmente
ad
Pattern Strategy.
un’inserzione.
10
Diagramma di sequenza:
Conferma Registrazione
La Action prepara i
comandi da eseguire
salvandoli nel
MacroCommand
Viene
aggiornato
lo stato
Viene istanziato
l’Invoker
Viene inviata
l’e-mail
11
Diagramma di sequenza:
Creazione Nuova Inserzione
La Action utilizza
UploadFileUtil per
la generazione del
nome del file e per
caricarlo
Viene preparato
l’articolo da salvare
Viene salvato
l’articolo
12
Test di Unità
Durante lo sviluppo dell'applicazione sono stati effettuati alcuni test
di unità per verificare la correttezza delle funzionalità sviluppate. In
particolare, si è voluto testare l’applicazione dei pattern, la
funzionalità di invio e-mail e la funzione di verifica delle credenziali al
momento del login.
• Calcolo degli elementi di una categoria, Design Pattern Composite;
• MacroCommand, Design Patterns Composite e Command;
• Calcolo del totale del carrello, Design Pattern Strategy ;
• Generazione del nome del File, Design Pattern Strategy ;
• Verifica delle credenziali del Login;
• Invio E-mail.
13
Scarica

Diagrammi delle classi