Sei sulla pagina 1di 14

Domenico Borgognoni, Ian Escueta, Matteo Calchera

PROJECT 104

RELAZIONE PROGETTO ANALISI E PROGETTAZIONE DEL SOFTWARE

DIAGRAMMA DEI CASI D’USO

 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

Autore: Ian Escueta

Nome del caso d’uso: VisualizzaStorico

Portata: Sito Web - TravelOn

Livello: sottofunzione

Attore primario: Amministratore

Parti interessate e interessi: L’amministratore vuole visualizzare lo storico delle prenotazioni

Pre-condizioni: L’amministratore effettua il login all’area personale

Post-condizioni: L’amministratore visualizza lo storico delle prenotazioni

Scenario principale di successo:

1. Il caso d’uso inizia quando l’amministratore apre il sito Web

2. L'amministratore inserisce i dati personali per entrare nell’area personale del sito

3. L'amministratore va alla sezione “Storico Prenotazioni”

4. Il sistema fa comparire a video lo storico delle prenotazioni

Estensioni:

3a. Produrre Grafici

3a.1 L’amministratore vuole produrre un grafico a partire dallo storico

3a.2 L’amministratore seleziona i dati da voler rappresentare graficamente

3a.3 Il sistema raffigura sottoforma di grafico i dati selezionati

3b. Esportare dati

3b.1 L’amministratore vuole esportare i dati dallo storico

3b.2 L’amministratore seleziona i dati da esportare

3b.3 Il sistema esporta i dati selezionati dall’amministratore

Requisiti: -

Frequenza di ripetizione: Potrebbe essere quasi ininterrotta


Autore: Matteo Calchera

Nome del caso d'uso: Salva Preferenza LocalitàPortata: Sito Web- Travel On, Gestore E-mail

Livello: Obiettivo Utente

Attore Primario: Cliente

Parti Interessate e Interessi:

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.

Garanzie Di Successo: L'utente registrato ha salvato la sua località nei preferiti.

Scenario Principale di Successo:

1. L'utente registrato apre la sezione "Località preferite".

2. L'utente registrato seleziona "Aggiungi località".

3. L'utente specifica se la località è uno stato, città, regione, o comune.

4. L'utente registrato seleziona una località posizionando un puntatore sulla mappa.


5. L'utente registrato conferma la scelta della località.

6. Il sistema ottiene i dati della località dalla posizione del puntatore sulla mappa, piu
precisamente il comune.

7. Il sistema salva la scelta ne "Località preferite" dell'utente registrato

Estensioni:

6a. La località selezionata è inaccessibile: Il sistema non riesce ad ottenere dati


precisi dalla località confermata
5a.1 Il sistema notifica l'utente dell'errore rifiutando l'inserimento

5a.2. Il Il sistema riporta l'utente alla scelta della località

7a. La nuova località scelta dall'utente è già presente nella lista delle località

6a.1 Il sistema notifica l'utente dell'errore e rifiuta l'inserimento

6a.2. Il sistema riporta l'utente alla scelta della località.

Requisiti Speciali: -

Elenco delle variabili tecnologiche e dei dati: Utilizzo di una mappa interattiva

Frequenza di ripetizioni: Quasi immediata

Autore: Domenico Borgognoni

Nome del caso d’uso: Modifica Prenotazione

Portata: Sito Web

Livello: Obiettivo utente

Attore primario: Utente

Parti interessate e interessi: L’utente vuole creare un'istanza per la modifica della prenotazione di un
pacchetto attraverso il sito.

Pre-condizioni:

1)L’utente deve aver completato la fase di registrazione al sito.

2)L’utente deve aver già creato un'istanza di un pacchetto vacanza già prenotato.

Post-condizioni: L’utente ha effettuato tramite il sito la modifica del pacchetto vacanza.

Scenario principale di successo:

1. il caso d’uso inizia quando l’attore apre il sito web

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.

4. L'attore seleziona la prenotazione da modificare dall'elenco delle sue preontazioni effettuate.

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.

7.L'attore Conferma la modifica.

8. Il sistema modifica la prenotazione.

Requisiti: -

Frequenza di ripetizione: Potrebbe essere quasi ininterrotta

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()

Riferimento: Caso d'uso: Modifica Prenotazione.

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:

1. Il controller prende da Utente registrato_SW la lista di prenotazioni effettuate e la assegna


ad una sua variabile ListaPrenotazioniEffettuate;
2. L'utente seleziona la prenotazione dall'elenco;
3. Alla variabile IDPrenotazioneDaModificare viene assegnata l'ID della prenotazione
selezionata dall'utente.

Matteo Calchera
Contratto: ConfermaSelezioneLocalità()
Operazione: ConfermaSelezioneLocalità()

Riferimenti: caso d'uso: SalvaPerferenza Località

Pre-Condizioni: è in corso la selezione di una nuova località, più precisamente è stata selezionata una
località sulla mappa.

Post-Condizioni:

1. Tramite localitàPreferite si inizia il processo di creazione e salvataggio di una nuova località


preferita
2. L'oggetto localitàPreferite_SW crea l'istanza l di Località_SW
3. l.tipolocalità diventa TipoLocalità
4. l.luogo diventa luogo, prendendo i dati della posizione del puntatore da
MappàSelezioneLocalità.
5. localitàPreferite_SW Controlla se ci sono duplicati dell'istanza l già presenti nella lista.
6. L viene salvata nella lista in LocalitàPreferite dell'utente Registrato.

Ian Escueta
Contratto: AperturaStorico

Operazione: AperturaStorico()

Riferimento caso d'uso: VisualizzaStorico

Pre-condizioni: l'amministratore ha effettuato l'accesso all'area personale.

Post-condizioni: l'amministratore visualizza l'istanza storico s contenente tutte le istanze di


Prenotazione.

SD
Domenico Borgognoni
SD: “SelezionaPrenotazione”

Ian Escueta
SD: “AperturaStorico”

Matteo Calchera
SD: “ConfermaLocalità"
Info Modellazione SD Conferma Selezione Località.

Inizialmente, l’SD di ConfermaSelezioneLocalità, conteneva una classe controller che svolgeva


funzioni e processava informazione. E l’incapsulamento dei dati

Screen della bozza SD senza l’uso dei pattern

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.

DIAGRAMMA DELLE CLASSI

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.

Potrebbero piacerti anche