Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno...
-
Upload
virgilio-ferrari -
Category
Documents
-
view
221 -
download
1
Transcript of Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno...
Progetto di Ingegneria del Software
1
DocenteProf. Luca Mainetti
StudentiLuisa Vittoria Brunomatr. 20003762 Marco Graziolimatr. 20002349
Progettazione della Web Application “Niente di Nuovo”
Mercatino dell’Usato
Università del SalentoFacoltà di Ingegneria
Corso di Laurea in Ingegneria dell’Informazione
2
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.
3
Casi d’Uso
Dall’analisi dei requisiti sono emersi i seguenti Casi d’Uso:
4
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
5
Diagramma dei Package
Il package “hibernate” contiene tutte le classi che si interfacciano con il databaseI packages relativi alla gestione del catalogoI packages relativi alla gestione delle inserzioniI packages relativi alla gestione degli ordiniI packages relativi alla gestione degli utentiI packages relativi ai test
6
Diagrammi delle classi:Design Pattern Facade
Pattern Facade:Le classi Util nascondono alle Action del sistema la presenza delle classi DAO.
Pattern DAO:Le classi DAO si interfacciano con il Database
7
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.
8
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
9
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 notificaOgnuna 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.
10
Diagrammi delle classi:Design Pattern Strategy
Per consentire il calcolo del prezzo del totale del contenuto del Carrello, utilizzando molteplici algoritmi, questa funzionalità è stata implementata con il Pattern Strategy.
Lo stesso Pattern è stato utilizzato per permettere di usare diverse strategie per la generazione del nome del file immagine caricato contestualmente ad un’inserzione.
11
Diagramma di sequenza:Conferma Registrazione
La Action prepara i comandi da eseguire
salvandoli nel MacroCommand
Viene istanziato l’Invoker
Viene aggiornato lo stato
Viene inviata l’e-mail
12
La Action utilizza UploadFileUtil per la generazione del nome del file e per
caricarlo
Viene preparato l’articolo da salvare
Viene salvato l’articolo
Diagramma di sequenza:Creazione Nuova Inserzione
13
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.