SlideShare a Scribd company logo
Michele Palumbo
Analisi dei requisiti
MultiStadium Portal (MSP) è un prodotto software che permette la gestione di un impianto sportivo di qualunque
tipo che abbia uno o più campi da gestire e, offre la possibilità agli spettatori di prenotare o comprare un biglietto
in un determinato posto per la partita a cui desiderano assistere.
MSP è adatto a qualsiasi tipo di impianto sportivo di piccole – medie dimensioni.
È dotato di una buona usabilità, sia per l’interfaccia gestionale sia per quella del cliente.
Requisiti Funzionali MSP
I requisiti funzionali vengonodivisi in duemacrosistemi.
● Cliente:
Visualizzazionedelle partitein base a determinati parametri.
Prenotazionee acquistodei biglietti.
Gestionee visualizzazionidelle prenotazioni.
● Gestore:
Aggiunta di una partitaal calendario.
Gestionedei prezzie degli scontiapplicati.
Gestionedello stadio.
Visualizzazionedelle partitein base a determinati parametri.
Il Sottosistema Cliente
Il sottosistema Clientepermette all’utente di:
● Visualizzare tuttele partite:
- in base allo stadio,
- in base alla settimana,
● Visualizzare partite in programma:
- in base all’ordine cronologico
- in base allo stadio
- in base all’ordine alfabetico
● Effettuare una prenotazioneper un biglietto o acquistaredirettamente il biglietto
● Visualizzare gli acquisti e le prenotazioni effettuate e acquistare una prenotazione non ancora scaduta.
Il Sottosistema Gestore
Il sottosistema Gestorepermette all’utente di:
● Aggiungere una partita al calendario
● Visualizzare le partite in base alla capienza dello stadio e all’ordine cronologico
● Applicare varie politiche di sconto:
- in base allo stadio
- in base alla partita
- applicazione sconto a tutte le partite
- possibilità rimozione sconto da tutte le partite.
● Assegnare un nuovo prezzo:
- in base alla partita
- in base allo stadio.
● Aumentare o ridurre la capacità di uno stadio
● Visualizzare incassi totali e incassi per stadio.
Requisiti non funzionali
● Usabilità: Il sistema è user friendly e l’utente non ha bisogno di elevate conoscenze per usarlo al meglio
● Affidabilità: Il sistema salva e legge tutti i dati su/da file.
● Sicurezza: Il sistema necessita di un logIn unico per ogni utente che permette di usufruire del sistema in tutta
sicurezza.
Schede CRC
Tutte le classi descritte di seguito implementano
l’interfaccia Serializabledato che la lettura e la scrittura dei dati da/su file avviene attraverso il flusso
ObjectInputStreame ObjectOutputStream.
Definiamo e analizziamo le classi.
User
La classe User è una classe ASTRATTA che definisce un oggetto generico Utente che ha un Nome, Cognome, UserName e Password.
Oltre ai metodi getter e setter, ha i metodi astratti per effettuare un login generico che verranno poi implementati nelle sottoclassi che
estenderanno User.
User
Responsabilità Collaboratori
Effettuail LogIn dell’utente se le credenziali
sono valide
User
Client
La classe Client definisce un oggetto Cliente che è un User. Client ha un Arraylist di prenotazioni (Booking) e un ArrayList di acquisti
(Purchases). Eredita i metodi da User, in più ha il compito di prenotare un posto per una partita, , comprare una prenotazione
effettuata, comprare direttamente un biglietto per una partita ed effettuare il Login del Client.
Client
Responsabilità Collaboratori
Prenota un posto per una partita Booking, Game, Seat
Compra un biglietto per una partita Booking, Purchases, Game, Seat, Stadium
Compra una prenotazione effettuata Booking, Purchases, Game, Seat, Stadium
Effettua il Login del Client User
Manager
La classe Manager definisce un oggetto Gestore che è un User. Manager ha un ManagerID generato da un valore statico ID. Eredita i
metodi da User, in più ha il compito di applicare o rimuovere uno sconto a tutte le partite , applicare lo sconto alle partite di uno stadio ,
applicare lo sconto ad una partita , ed effettuare il LogIn del gestore.
Man ager
Responsabilità Collaboratori
Applica lo sconto a tutte le partite Game, Matches
Applica lo sconto a tutte le partite che si
giocano in uno stadio
Game, Matches, Stadium
Applica lo sconto ad una partita Game, Matches
Rimuove lo sconto da tutte le partite Game, Matches
Effettua il login del gestore User
Game
Game definisce un oggetto Partita che ha: Squadra in casa, Squadra in trasferta, Numero di posti, un ArrayList di posti della partita (Seat), un
valore statico genericID che genera il GameID, una data, un booleano per controllare se la partita è scontata, Percentuale di sconto, il prezzo del
biglietto senza sconto e il prezzo del biglietto con lo sconto , uno Stadio in cui si gioca la partita. Oltre ai metodi getter e setter ha il compito di
applicare lo sconto e modificare il prezzo, rimuovere lo sconto e modificare il prezzo del biglietto, modificare il numero di posti della partita,
restituisce le informazioni relative alla partita.
Gam e
Responsabilità Collaboratori
Applica lo sconto e modifica il prezzo Game
Rimuove lo sconto e modifica il prezzo Game
Modifica il numero di posti di una partita
nello stadio
Game, Stadium, Seat
Restituisce le informazioni della partita Game
Matches
Matches definisce un oggetto CalendarioPartite che ha un
ArrayList di Game. Ha il compito di creare e aggiungere una
nuova partita alla lista, restituire i guadagni totali, restituire la
lista delle partite ordinate in base alla data, all’ordine
alfabetico , alla capienza dello stadio e all’ID dello stadio,
restituire una lista delle partite che si giocano in un
determinato stadio e settare il prezzo del biglietto in base allo
stadio.
Matches
Responsabilità Collaboratori
Creaunanuovapartitaelaaggiungeallalista
di partite
Game
Restituiscelasommadi tutti gli incassi degli
stadi
Game, Stadium
Restituisceil calendario in baseall’ordine
lessicografico
Game
Restituisceil calendario in basealladatadella
partita
Game
Restituisceil calendario in baseallacapacità
dello stadio
Game, Stadium
Restituisceil calendario in baseall’ID dello
stadio
Game, Stadium
Restituisceunalistadi partitechesi giocano
nello stesso stadio
Game, Stadium
Impostail prezzo di tuttelepartitechesi
giocano in uno stadio
Game, Stadium
Stadium
Stadiumdefinisce un oggetto Stadio che ha: un valore statico ID per generare StadiumID, un nome, una capacità e la somma dei guadagni
dello stadio. Oltre ai getter e setter ha il compito di sommare gli incassi.
Stadium
Responsabilità Collaboratori
Sommagli incassi in seguito ad ogni acquisto Stadium
Seat
Seat definisce un oggetto Posto che ha due variabili booleane Booked per verificare se sia stato occupato e Buyed per verificare se sia stato
comprato. Ha la responsabilità di settare la prenotazione di un posto, di settare l’acquisto di un posto, di verificare il loro stato e di liberare un
posto prenotato ma non acquistato
Seat
Responsabilità Collaboratori
Prenota il posto Seat
Compra il posto Seat
Libera un posto che era stato prenotato ma
non comprato
Seat
Booking
Booking definisce un oggetto prenotazione che ha un numero posto prenotato, un numero di prenotazione ed una partita a cui fa
riferimento. Oltre ai metodi getter and setter ha la responsabilità di liberare il Seat prenotato corrispondente al numero di posto della
prenotazione, restituire informazioni sulla prenotazione stessa e verificare la validità della prenotazione.
Book in g
Responsabilità Collaboratori
Libera il posto prenotato dalla lista dei posti
della partita
Game, Seat
Restituisce le informazioni riguardanti la
prenotazione
Booking
Controlla la validità della prenotazione Booking
Purchase
Purchase definisce un oggetto acquisto che ha una prenotazione ed un prezzo. Oltre ai propri metodi getter and setter ha la
responsabilità di restituire informazioni sull’acquisto.
Purchase
Responsabilità Collaboratori
Restituisce le informazioni dell’acquisto Booking
DataBox
DataBox definisce un oggetto Contenitore di dati che ha una ArrayList Client, ArrayList Manager,
ArrayList Stadium e Matches.
La sua funzione è quella di contenere tutti i dati che verranno poi salvati su un file. Implementa soltanto i
metodi getter and setter per ogni variabile di istanza.
ReadSave
ReadSaveè una classe statica che ha il compito di leggere i dati da File e scriverli opportunamente
sullo stesso file in base a quale tipo di dato è stato aggiornato e li salva per poi trasferirli in un contenitore DataBox.
ReadSav e
Responsabilità Collaboratori
Legge i dati da un file e li trasferisce in un
DataBox
DataBox
Scrive un DataBox su File DataBox
Scrive i dati riguardanti le partite nel DataBox
e di seguito sul File
DataBox
UML

More Related Content

More from Michele Palumbo

LeaderCheck App
LeaderCheck App LeaderCheck App
LeaderCheck App
Michele Palumbo
 
[Document] SlemApp (Inbound and Outbound)
[Document] SlemApp (Inbound and Outbound)[Document] SlemApp (Inbound and Outbound)
[Document] SlemApp (Inbound and Outbound)
Michele Palumbo
 
[Presentation] La creazione di una Start-Up
[Presentation] La creazione di una Start-Up [Presentation] La creazione di una Start-Up
[Presentation] La creazione di una Start-Up
Michele Palumbo
 
[Document] La creazione di una Start-Up
[Document] La creazione di una Start-Up [Document] La creazione di una Start-Up
[Document] La creazione di una Start-Up
Michele Palumbo
 
Certificazione Samsung Innovation Camp
Certificazione Samsung Innovation CampCertificazione Samsung Innovation Camp
Certificazione Samsung Innovation Camp
Michele Palumbo
 
[Presentation] MultiProject analysis with Critical Path Method
[Presentation] MultiProject analysis with Critical Path Method[Presentation] MultiProject analysis with Critical Path Method
[Presentation] MultiProject analysis with Critical Path Method
Michele Palumbo
 
[Document] MultiProject analysis with Critical Path Method
[Document] MultiProject analysis with Critical Path Method[Document] MultiProject analysis with Critical Path Method
[Document] MultiProject analysis with Critical Path Method
Michele Palumbo
 
Project planning VMT - Virtual Museum Tour
Project planning VMT - Virtual Museum TourProject planning VMT - Virtual Museum Tour
Project planning VMT - Virtual Museum Tour
Michele Palumbo
 
Project planning VMT - Virtual Museum Tour
Project planning VMT - Virtual Museum TourProject planning VMT - Virtual Museum Tour
Project planning VMT - Virtual Museum Tour
Michele Palumbo
 
Sviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activitySviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activity
Michele Palumbo
 
StateOfEmergencyApp + Lo-Fi Prototype [Esame Interazione Uomo-Macchina]
StateOfEmergencyApp + Lo-Fi Prototype [Esame Interazione Uomo-Macchina]StateOfEmergencyApp + Lo-Fi Prototype [Esame Interazione Uomo-Macchina]
StateOfEmergencyApp + Lo-Fi Prototype [Esame Interazione Uomo-Macchina]
Michele Palumbo
 
Negozio_Videogiochi_Online [Esame di Basi di Dati]
Negozio_Videogiochi_Online [Esame di Basi di Dati]Negozio_Videogiochi_Online [Esame di Basi di Dati]
Negozio_Videogiochi_Online [Esame di Basi di Dati]
Michele Palumbo
 
TESI L-31 su Reti di Sensori Wireless, in ambito IoT
TESI L-31 su Reti di Sensori Wireless, in ambito IoTTESI L-31 su Reti di Sensori Wireless, in ambito IoT
TESI L-31 su Reti di Sensori Wireless, in ambito IoT
Michele Palumbo
 
L'evoluzione dell' ISO 14001
L'evoluzione dell' ISO 14001L'evoluzione dell' ISO 14001
L'evoluzione dell' ISO 14001
Michele Palumbo
 

More from Michele Palumbo (14)

LeaderCheck App
LeaderCheck App LeaderCheck App
LeaderCheck App
 
[Document] SlemApp (Inbound and Outbound)
[Document] SlemApp (Inbound and Outbound)[Document] SlemApp (Inbound and Outbound)
[Document] SlemApp (Inbound and Outbound)
 
[Presentation] La creazione di una Start-Up
[Presentation] La creazione di una Start-Up [Presentation] La creazione di una Start-Up
[Presentation] La creazione di una Start-Up
 
[Document] La creazione di una Start-Up
[Document] La creazione di una Start-Up [Document] La creazione di una Start-Up
[Document] La creazione di una Start-Up
 
Certificazione Samsung Innovation Camp
Certificazione Samsung Innovation CampCertificazione Samsung Innovation Camp
Certificazione Samsung Innovation Camp
 
[Presentation] MultiProject analysis with Critical Path Method
[Presentation] MultiProject analysis with Critical Path Method[Presentation] MultiProject analysis with Critical Path Method
[Presentation] MultiProject analysis with Critical Path Method
 
[Document] MultiProject analysis with Critical Path Method
[Document] MultiProject analysis with Critical Path Method[Document] MultiProject analysis with Critical Path Method
[Document] MultiProject analysis with Critical Path Method
 
Project planning VMT - Virtual Museum Tour
Project planning VMT - Virtual Museum TourProject planning VMT - Virtual Museum Tour
Project planning VMT - Virtual Museum Tour
 
Project planning VMT - Virtual Museum Tour
Project planning VMT - Virtual Museum TourProject planning VMT - Virtual Museum Tour
Project planning VMT - Virtual Museum Tour
 
Sviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activitySviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activity
 
StateOfEmergencyApp + Lo-Fi Prototype [Esame Interazione Uomo-Macchina]
StateOfEmergencyApp + Lo-Fi Prototype [Esame Interazione Uomo-Macchina]StateOfEmergencyApp + Lo-Fi Prototype [Esame Interazione Uomo-Macchina]
StateOfEmergencyApp + Lo-Fi Prototype [Esame Interazione Uomo-Macchina]
 
Negozio_Videogiochi_Online [Esame di Basi di Dati]
Negozio_Videogiochi_Online [Esame di Basi di Dati]Negozio_Videogiochi_Online [Esame di Basi di Dati]
Negozio_Videogiochi_Online [Esame di Basi di Dati]
 
TESI L-31 su Reti di Sensori Wireless, in ambito IoT
TESI L-31 su Reti di Sensori Wireless, in ambito IoTTESI L-31 su Reti di Sensori Wireless, in ambito IoT
TESI L-31 su Reti di Sensori Wireless, in ambito IoT
 
L'evoluzione dell' ISO 14001
L'evoluzione dell' ISO 14001L'evoluzione dell' ISO 14001
L'evoluzione dell' ISO 14001
 

MultiStadium Portal [Esame Linguaggio Java]

  • 2. Analisi dei requisiti MultiStadium Portal (MSP) è un prodotto software che permette la gestione di un impianto sportivo di qualunque tipo che abbia uno o più campi da gestire e, offre la possibilità agli spettatori di prenotare o comprare un biglietto in un determinato posto per la partita a cui desiderano assistere. MSP è adatto a qualsiasi tipo di impianto sportivo di piccole – medie dimensioni. È dotato di una buona usabilità, sia per l’interfaccia gestionale sia per quella del cliente.
  • 3. Requisiti Funzionali MSP I requisiti funzionali vengonodivisi in duemacrosistemi. ● Cliente: Visualizzazionedelle partitein base a determinati parametri. Prenotazionee acquistodei biglietti. Gestionee visualizzazionidelle prenotazioni. ● Gestore: Aggiunta di una partitaal calendario. Gestionedei prezzie degli scontiapplicati. Gestionedello stadio. Visualizzazionedelle partitein base a determinati parametri.
  • 4. Il Sottosistema Cliente Il sottosistema Clientepermette all’utente di: ● Visualizzare tuttele partite: - in base allo stadio, - in base alla settimana, ● Visualizzare partite in programma: - in base all’ordine cronologico - in base allo stadio - in base all’ordine alfabetico ● Effettuare una prenotazioneper un biglietto o acquistaredirettamente il biglietto ● Visualizzare gli acquisti e le prenotazioni effettuate e acquistare una prenotazione non ancora scaduta.
  • 5. Il Sottosistema Gestore Il sottosistema Gestorepermette all’utente di: ● Aggiungere una partita al calendario ● Visualizzare le partite in base alla capienza dello stadio e all’ordine cronologico ● Applicare varie politiche di sconto: - in base allo stadio - in base alla partita - applicazione sconto a tutte le partite - possibilità rimozione sconto da tutte le partite. ● Assegnare un nuovo prezzo: - in base alla partita - in base allo stadio. ● Aumentare o ridurre la capacità di uno stadio ● Visualizzare incassi totali e incassi per stadio.
  • 6. Requisiti non funzionali ● Usabilità: Il sistema è user friendly e l’utente non ha bisogno di elevate conoscenze per usarlo al meglio ● Affidabilità: Il sistema salva e legge tutti i dati su/da file. ● Sicurezza: Il sistema necessita di un logIn unico per ogni utente che permette di usufruire del sistema in tutta sicurezza.
  • 7. Schede CRC Tutte le classi descritte di seguito implementano l’interfaccia Serializabledato che la lettura e la scrittura dei dati da/su file avviene attraverso il flusso ObjectInputStreame ObjectOutputStream. Definiamo e analizziamo le classi.
  • 8. User La classe User è una classe ASTRATTA che definisce un oggetto generico Utente che ha un Nome, Cognome, UserName e Password. Oltre ai metodi getter e setter, ha i metodi astratti per effettuare un login generico che verranno poi implementati nelle sottoclassi che estenderanno User. User Responsabilità Collaboratori Effettuail LogIn dell’utente se le credenziali sono valide User
  • 9. Client La classe Client definisce un oggetto Cliente che è un User. Client ha un Arraylist di prenotazioni (Booking) e un ArrayList di acquisti (Purchases). Eredita i metodi da User, in più ha il compito di prenotare un posto per una partita, , comprare una prenotazione effettuata, comprare direttamente un biglietto per una partita ed effettuare il Login del Client. Client Responsabilità Collaboratori Prenota un posto per una partita Booking, Game, Seat Compra un biglietto per una partita Booking, Purchases, Game, Seat, Stadium Compra una prenotazione effettuata Booking, Purchases, Game, Seat, Stadium Effettua il Login del Client User
  • 10. Manager La classe Manager definisce un oggetto Gestore che è un User. Manager ha un ManagerID generato da un valore statico ID. Eredita i metodi da User, in più ha il compito di applicare o rimuovere uno sconto a tutte le partite , applicare lo sconto alle partite di uno stadio , applicare lo sconto ad una partita , ed effettuare il LogIn del gestore. Man ager Responsabilità Collaboratori Applica lo sconto a tutte le partite Game, Matches Applica lo sconto a tutte le partite che si giocano in uno stadio Game, Matches, Stadium Applica lo sconto ad una partita Game, Matches Rimuove lo sconto da tutte le partite Game, Matches Effettua il login del gestore User
  • 11. Game Game definisce un oggetto Partita che ha: Squadra in casa, Squadra in trasferta, Numero di posti, un ArrayList di posti della partita (Seat), un valore statico genericID che genera il GameID, una data, un booleano per controllare se la partita è scontata, Percentuale di sconto, il prezzo del biglietto senza sconto e il prezzo del biglietto con lo sconto , uno Stadio in cui si gioca la partita. Oltre ai metodi getter e setter ha il compito di applicare lo sconto e modificare il prezzo, rimuovere lo sconto e modificare il prezzo del biglietto, modificare il numero di posti della partita, restituisce le informazioni relative alla partita. Gam e Responsabilità Collaboratori Applica lo sconto e modifica il prezzo Game Rimuove lo sconto e modifica il prezzo Game Modifica il numero di posti di una partita nello stadio Game, Stadium, Seat Restituisce le informazioni della partita Game
  • 12. Matches Matches definisce un oggetto CalendarioPartite che ha un ArrayList di Game. Ha il compito di creare e aggiungere una nuova partita alla lista, restituire i guadagni totali, restituire la lista delle partite ordinate in base alla data, all’ordine alfabetico , alla capienza dello stadio e all’ID dello stadio, restituire una lista delle partite che si giocano in un determinato stadio e settare il prezzo del biglietto in base allo stadio. Matches Responsabilità Collaboratori Creaunanuovapartitaelaaggiungeallalista di partite Game Restituiscelasommadi tutti gli incassi degli stadi Game, Stadium Restituisceil calendario in baseall’ordine lessicografico Game Restituisceil calendario in basealladatadella partita Game Restituisceil calendario in baseallacapacità dello stadio Game, Stadium Restituisceil calendario in baseall’ID dello stadio Game, Stadium Restituisceunalistadi partitechesi giocano nello stesso stadio Game, Stadium Impostail prezzo di tuttelepartitechesi giocano in uno stadio Game, Stadium
  • 13. Stadium Stadiumdefinisce un oggetto Stadio che ha: un valore statico ID per generare StadiumID, un nome, una capacità e la somma dei guadagni dello stadio. Oltre ai getter e setter ha il compito di sommare gli incassi. Stadium Responsabilità Collaboratori Sommagli incassi in seguito ad ogni acquisto Stadium
  • 14. Seat Seat definisce un oggetto Posto che ha due variabili booleane Booked per verificare se sia stato occupato e Buyed per verificare se sia stato comprato. Ha la responsabilità di settare la prenotazione di un posto, di settare l’acquisto di un posto, di verificare il loro stato e di liberare un posto prenotato ma non acquistato Seat Responsabilità Collaboratori Prenota il posto Seat Compra il posto Seat Libera un posto che era stato prenotato ma non comprato Seat
  • 15. Booking Booking definisce un oggetto prenotazione che ha un numero posto prenotato, un numero di prenotazione ed una partita a cui fa riferimento. Oltre ai metodi getter and setter ha la responsabilità di liberare il Seat prenotato corrispondente al numero di posto della prenotazione, restituire informazioni sulla prenotazione stessa e verificare la validità della prenotazione. Book in g Responsabilità Collaboratori Libera il posto prenotato dalla lista dei posti della partita Game, Seat Restituisce le informazioni riguardanti la prenotazione Booking Controlla la validità della prenotazione Booking
  • 16. Purchase Purchase definisce un oggetto acquisto che ha una prenotazione ed un prezzo. Oltre ai propri metodi getter and setter ha la responsabilità di restituire informazioni sull’acquisto. Purchase Responsabilità Collaboratori Restituisce le informazioni dell’acquisto Booking
  • 17. DataBox DataBox definisce un oggetto Contenitore di dati che ha una ArrayList Client, ArrayList Manager, ArrayList Stadium e Matches. La sua funzione è quella di contenere tutti i dati che verranno poi salvati su un file. Implementa soltanto i metodi getter and setter per ogni variabile di istanza.
  • 18. ReadSave ReadSaveè una classe statica che ha il compito di leggere i dati da File e scriverli opportunamente sullo stesso file in base a quale tipo di dato è stato aggiornato e li salva per poi trasferirli in un contenitore DataBox. ReadSav e Responsabilità Collaboratori Legge i dati da un file e li trasferisce in un DataBox DataBox Scrive un DataBox su File DataBox Scrive i dati riguardanti le partite nel DataBox e di seguito sul File DataBox
  • 19. UML