Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PROJECT 104
Aggiunto caso d’uso “Visualizza Storico”, con annesse estensioni “Produrre Grafici” e
“Esporta Dati”, associato all’attore “Amministratore”.
Aggiunto caso d’uso “Salva Preferenza Località”, con annesso estensione “Ricezione
Notifica” associato all’attore esterno “Gestore Email”, associato all’attore “Utente
Registrato”.
CASI D’USO
Livello: sottofunzione
2. L'amministratore inserisce i dati personali per entrare nell’area personale del sito
Estensioni:
Requisiti: -
Nome del caso d'uso: Salva Preferenza LocalitàPortata: Sito Web- Travel On, Gestore E-mail
1. Cliente: Vuole salvare una località esistente, ma non per forza presente sui cataloghi. In
modo da Essere avvisato qualora venga inserito un nouvo pacchetto avente come località
quella salvata.
2. Sito TravelOn: vuole registrare tutte le località preferite (corrette) dell' utente in una lista.
Pre-condizioni: L'utente registrato deve aver effettuato il login correttamente e aver avuto accesso
la propria area personale.
6. Il sistema ottiene i dati della località dalla posizione del puntatore sulla mappa, piu
precisamente il comune.
Estensioni:
7a. La nuova località scelta dall'utente è già presente nella lista delle località
Requisiti Speciali: -
Elenco delle variabili tecnologiche e dei dati: Utilizzo di una mappa interattiva
Parti interessate e interessi: L’utente vuole creare un'istanza per la modifica della prenotazione di un
pacchetto attraverso il sito.
Pre-condizioni:
2)L’utente deve aver già creato un'istanza di un pacchetto vacanza già prenotato.
2. L’attore inserisce i dati personali per entrare nell’area personale del sito
3. L’attore apre il form nel quale è possibile effettuare la modifica del pacchetto vacanza.
5.L'attore seleziona il campo da modificare (può cambiare date, ora di partenza/arrivo, mezzo di
trasporto, hotel e tipo di alloggio in base alle disponibilità e senza creare ambiguità).
6.L'attore inserisce il nuovo valore del campo che vuole modificare.
Requisiti: -
MODELLO DI DOMINIO
Aggiunta classe “Storico” con associazione “molti a uno” alla classe “Prenotazione” e con
associazione “uno a uno” con la classe “Amministratore”.
Aggiunta classe “Località” con associazione “uno a molti” alla classe “LocalitàPreferite”
aventi come attributi TipoLocalità e Luogo di tipo String.
Aggiunta classe “LocalitàPreferite” con associazione “zero a uno” alla classe “Utente”.
SSD
Autore: Domenico Borgognoni
SSD: “ModificaPrenotazione”
Autore: Matteo Calchera
SSD: “LocalitàPreferite”
Ian Escueta
SSD: “VisualizzaStorico”
CONTRATTI
Domenico Borgognoni
Contratto SelezionaPrenotazione()
Operazione: SelezionaPrenotazione
Pre-condizioni: L'utente deve aver avuto accesso alla sua area Personale ed aver selezionato la
sezione per modificare la prenotazione.
Post-condizioni:
Matteo Calchera
Contratto: ConfermaSelezioneLocalità()
Operazione: ConfermaSelezioneLocalità()
Pre-Condizioni: è in corso la selezione di una nuova località, più precisamente è stata selezionata una
località sulla mappa.
Post-Condizioni:
Ian Escueta
Contratto: AperturaStorico
Operazione: AperturaStorico()
SD
Domenico Borgognoni
SD: “SelezionaPrenotazione”
Ian Escueta
SD: “AperturaStorico”
Matteo Calchera
SD: “ConfermaLocalità"
Info Modellazione SD Conferma Selezione Località.
Applicando alcuni pattern Grasp il modello è divenuto più compatto e concettualmente corretto:
PATTERN USATI:
Controller: Ho preferito avere un controller che delega più operazioni possibili mantenendo solo
quello fondamentali. Strettamente collegato con il prossimo Pattern.
High Cohesion: Non usando più una classe controller contenente molte operazioni, ho dovuto creare
diverse classi software e di assegnare responsabilità(modificate anche nel diagramma delle classi)
che mi permettessero di ottenere oggetti coesi tra di loro.
Creator: Ho notato che la classe loçalità preferite raggruppa gli oggetti Località, allora era più
coerente che fosse lei a creare le istanze di Località:
Information Expert: Un istanza Località deve necessariamente conoscere i dati del luogo processati
dalla mappa.
Le foto mostrano tutte le classi che sono state aggiunte o modificate, per ulteriori informazioni o per
notare le associazioni consiglio di guardare su github, dove abbiamo caricato il file completo.