Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno...

13
Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione della Web Application “Niente di Nuovo” Mercatino dell’Usato Università del Salento Facoltà di Ingegneria Corso di Laurea in Ingegneria dell’Informazione

Transcript of Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno...

Page 1: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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

Page 2: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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.

Page 3: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

3

Casi d’Uso

Dall’analisi dei requisiti sono emersi i seguenti Casi d’Uso:

Page 4: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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

Page 5: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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

Page 6: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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

Page 7: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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.

Page 8: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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

Page 9: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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.

Page 10: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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.

Page 11: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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

Page 12: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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

Page 13: Progetto di Ingegneria del Software 1 Docente Prof. Luca Mainetti Studenti Luisa Vittoria Bruno matr. 20003762 Marco Grazioli matr. 20002349 Progettazione.

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.