video rental management system
DESCRIPTION
Video rental management system. Ingegneria del Software, A.A. 2010 – 2011 Università degli Studi dell’Aquila – D.I.S.I.M. Docente : Serafino Cicerone. Alessio D’Alessio, Filippo Mortari , Davide Russo. Indice:. FastVid Rentals : Panoramica Sviluppo Software Unified process : - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/1.jpg)
1
VIDEO RENTAL MANAGEMENT SYSTEM
Ingegneria del Software, A.A. 2010 – 2011
Università degli Studi dell’Aquila – D.I.S.I.M.
Docente : Serafino Cicerone
Alessio D’Alessio, Filippo Mortari, Davide Russo
![Page 2: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/2.jpg)
2
Indice:FastVid Rentals:
• Panoramica• Sviluppo Software
Unified process: • Ideazione• Elaborazione – 1a iterazione• Elaborazione – 2a iterazione
• Problematiche di Design, come è evoluto il software• I Design Patterns
Tecnologie usate: • Hibernate & JavaRMI
Conclusioni
![Page 3: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/3.jpg)
3
Richiesta del committenteSviluppo di un sistema software di gestione di una azienda di video-noleggi:
Video Rental Management System
FASTVID RENTALS - PANORAMICA
![Page 4: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/4.jpg)
4
Funzionalità:• Gestire il catalogo dei film;• gestire clienti e tessere servizi;• gestire il noleggio ed il reso di film;• gestire la prenotazione di film in maniera flessibile;• gestire politiche di sconto e promozione in maniera flessibile;• gestire il magazzino della filiale;• gestire la comunicazione con i clienti mediante sms • flessibilità ad eventuali nuovi canali di comunicazione;• flessibilità in ottica di una fruizione futura di servizi su piattaforma
web e Video-On-Demand• gestire il reporting dell’attività della filiale.
FASTVID RENTALS - PANORAMICA
![Page 5: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/5.jpg)
5
Strumenti per lo sviluppo sw• IDE: Eclipse Juno Service Release 1
• RMI Plug-in for Eclipse version 2.0 (applicazione distribuita)• Window Builder Editor (per la gestione grafica delle Swing)• Subversive SVN Team Provider (versionamento)
• Case: Visual Paradigm UML EE 8.0• Librerie: Java JRE 1.7, Hibernate ORM Libraries, • Server di versionamento:
• XP-Dev con supporto a SVN (per il progetto .vpp)• Google Code (per il codice Java)
• DBMS: MySQL tramite XAMPP
![Page 6: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/6.jpg)
6
Il versionamento: Xp-Dev e GoogleCode
![Page 7: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/7.jpg)
7
Il processo di riferimento: UPSVILUPPO SOFTWARE
![Page 8: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/8.jpg)
8
Il processo di riferimento: UP
SVILUPPO SOFTWARE
Ogni iterazione produce un’executable release
![Page 9: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/9.jpg)
9
L’iterazione time-boxedAbbiamo cercato di rispettare le scadenze e assegnare le responsabilità con una sorta di diagramma di Gantt
![Page 10: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/10.jpg)
10
LegendaTITOLO SEZIONE
Iterazione cui si riferisce il contenuto analizzato nella slide
Disciplina di UP, contenuto in esame nella slide corrente, sezione relativa a un particolare concetto..
Inception
Elaborazione – Iterazione 1
Elaborazione – Iterazione 2
Elaborazione – Iterazione 3
![Page 11: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/11.jpg)
11
FASTVID RENTALS: BUSINESS MODELING
![Page 12: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/12.jpg)
12
Business Modeling“One of the major problems with most business engineering efforts, is that the software engineering and the business engineering community do not communicate properly with each other.
This leads to the output from business engineering is not being used properly as input to the software development effort, and vice-versa.
The Unified Process addresses this by providing a common language and process for both communities, as well as showing how to create and maintain direct traceability between business and software models.”
![Page 13: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/13.jpg)
13
La struttura aziendaleLa macrostruttura:
FASTVID RENTALS - PANORAMICA
![Page 14: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/14.jpg)
14
La struttura aziendaleL’organigramma aziendale della singola divisione:
FASTVID RENTALS - PANORAMICA
![Page 15: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/15.jpg)
15
Prospettiva dell’utenteSi mostrano i possibili punti di accesso fisici all’applicativo
FASTVID RENTALS - PANORAMICA
![Page 16: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/16.jpg)
16
Business rules salientiIl costo dei noleggi dipende da:• il tipo di supporto desiderato
• VHS: 0.5€ al giorno• CD / DVD : 1€ al giorno• BlueRay: 1.5€ al giorno
• la durata del noleggio• film novità: +10% sul prezzo originale
FASTVID RENTALS - PANORAMICA
![Page 17: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/17.jpg)
17
Business rules salientiLe politiche di sconto:• 10% ai clienti che hanno già noleggiato almeno un film
entro le 24h precedenti;• ogni 20 noleggi effettuati si ha diritto a 1 noleggio
gratuito;• 5% di sconto per noleggi Lun-Ven dalle h20.00 alle
h8.00 del giorno successivo;• 5% di sconto per clienti con età < 21 anni;
FASTVID RENTALS - PANORAMICA
![Page 18: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/18.jpg)
18
Il modello di dominio (Business Object Model)
UNIFIED PROCESS – ELABORAZIONE 1
![Page 19: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/19.jpg)
19
Il modello di dominio (Business Object Model)
UNIFIED PROCESS – ELABORAZIONE 1
![Page 20: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/20.jpg)
20
REQUIREMENTS – I CASI D’USO
![Page 21: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/21.jpg)
21
Requirements“The goal of the Requirements workflow is to describe what the system should do and allows the developers and the customer to agree on that description.
Actors are identified, representing the users, and any other system that may interact with the system being developed. Use cases are identified, representing the behavior of the system.”
![Page 22: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/22.jpg)
22
Use Case Diagram
UNIFIED PROCESS - IDEAZIONE
Casi d’uso analizzati: • Tutti
Casi d’uso dettagliati: • UCRicercaFilm• UCNoleggia• UCPrenota• UCRestituisci
![Page 23: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/23.jpg)
23
Use Case Diagram
Casi d’uso analizzati: • Tutti
Casi d’uso dettagliati: • UCRicercaFilm• UCNoleggia• UCPrenota• UCRestituisci
![Page 24: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/24.jpg)
24
UCRicercaFilm – DettagliIl Cliente, una volta recatosi presso una delle filiali FastVid Rentals può cercare un film di suo interesse. La ricerca può essere effettuata sia presso lo sportello esterno, sia presso lo sportello interno. Per effettuare una ricerca non è necessario utilizzare la tessera servizi. Il Cliente può inserire o il nome preciso di un film o cercare tramite tag come il genere, l'anno di produzione etc..
Se la ricerca viene effettuata presso lo sportello interno il sistema permette di stampare uno scontrino promemoria da poter presentare all'operatore di cassa per procedere con un noleggio.
UNIFIED PROCESS - IDEAZIONE
![Page 25: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/25.jpg)
25
UCRicercaFilm - Flow of events1. Il Cliente arriva al terminale FastVid
2. Il Cliente seleziona la ricerca film
3. Il Sistema mostra l'interfaccia di ricerca
4. Il Cliente inserisce delle parole chiave per il film da ricercare
5. Il Cliente avvia la ricerca
6. Il Sistema presenta un elenco di film
7. if Il Cliente è soddisfatto della ricerca
7.1. Il Cliente sceglie un film dalla lista
7.2. Il Sistema mostra i dettagli del film
7.3. if Il Cliente è soddisfatto del film selezionato
7.3.1. Il Cliente seleziona il supporto desiderato
7.3.2. Il sistema visualizza la disponibilità del supporto selezionato
7.3.3. if Il Cliente è soddisfatto
7.3.3.1. Il sistema mostra le azioni disponibili
7.3.3.2. Il Cliente sceglie l'opzione desiderata
UNIFIED PROCESS - IDEAZIONE
![Page 26: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/26.jpg)
26
UCNoleggiaFilm – DettagliIl Cliente, una volta recatosi presso una delle filiali FastVid Rentals, può effettuare un noleggio. La prima operazione che deve fare per poter noleggiare un film è la ricerca. Una volta trovato il film, il Cliente deve scegliere le opzioni di noleggio, il tipo di supporto/formato desiderati, e, se il supporto è disponibile, il sistema propone un quadro riassuntivo del noleggio. Se il cliente vuole procedere, deve scorrere la propria tessera servizi dalla quale verrà scalato l'importo pari al prezzo di noleggio. Il cliente può ritirare il prodotto.
UNIFIED PROCESS - IDEAZIONE
![Page 27: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/27.jpg)
27
UCNoleggiaFilm - Flow of events1. Il Cliente effettua una Ricerca film
2. Il Sistema richiede al Cliente l'autenticazione tramite lettura della tessera servizi
3. Il Cliente legge la sua tessera servizi presso il lettore
4. Il Sistema autentica il Cliente attraverso la tessera servizi e applica le politiche di prezzo
5. Il Sistema mostra al Cliente la relativa politica di prezzo
6. Il Cliente imposta la durata desiderata per il noleggio
7. Il Sistema mostra il riepilogo di prezzo e le condizioni di noleggio, richiedendo conferma
8. Il Cliente conferma la sua scelta
9. Il Sistema addebita l'importo del noleggio, registra il noleggio per il prodotto selezionato al Cliente
corrente e aggiorna la disponibilità del prodotto
10. Il Sistema notifica la transazione al Sistema contabilità
11. Il Sistema stampa la ricevuta e la consegna al Cliente unitamente al supporto noleggiato
12. Il Cliente ritira ricevuta e prodotto
UNIFIED PROCESS - IDEAZIONE
![Page 28: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/28.jpg)
28
Il riscontro del committenteL’incontro con il committente a valle dell’ideazione ha confermato il corretto rilevamento dei casi d’uso, nonché della realtà aziendale cui si fa riferimento (documento di visione e regole di business)
Il committente ha tuttavia preferito che l’autenticazione del cliente fosse la prima operazione necessaria ad avviare il caso d’uso di Noleggio.
UNIFIED PROCESS – ELABORAZIONE 1
![Page 29: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/29.jpg)
29
UCPrenota - DettagliIl Cliente può effettuare una prenotazione. Quest'ultima può essere dovuta sia al fatto che non è disponibile al momento nessuna copia fisica del supporto/formato richiesto per il film di interesse, sia al fatto che il cliente vuole bloccare un film per una determinata data. L'SMS service è un servizio esterno che permette di avvisare al Cliente la disponibilità di un supporto/formato e consente al cliente di poter avviare una pratica di prenotazione anche mediante SMS.
Allo stato attuale le politiche di prenotazione non sono completamente definite: diverse filiali potrebbero adottare politiche locali guidate dall'andamento del mercato locale. Le politiche di prenotazione possono cambiare arbitrariamente secondo scelte avanzate dalla Sede centrale. La gestione delle politiche di prenotazione pertanto deve essere molto flessibile.
![Page 30: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/30.jpg)
30
UCPrenota – Flow of Events 1. Il Cliente effettua una Ricerca film
2. Il sistema richiede al Cliente l'autenticazione tramite lettura della tessera servizi
3. Il Cliente legge la sua tessera servizi presso il lettore
4. Il Sistema autentica il Cliente attraverso la tessera servizi
5. Il Sistema aggiorna il prezzo relativamente alle politiche sulla tessera servizi corrente
6. Il Cliente indica la data di prenotazione voluta
7. Il sistema notifica la avvenuta disponibilità per tale giorno
8. Il Cliente indica la durata del noleggio prenotato
9. Il sistema mostra il riepilogo e le condizioni di prenotazione, richiedendo conferma
10. Il Cliente conferma la sua scelta
11. Il Sistema addebita l'importo della prenotazione, registra la prenotazione per il prodotto selezionato e aggiorna la disponibilità del prodotto
12. Il Sistema notifica la transazione al Sistema contabilità
13. Il Sistema stampa la ricevuta e la consegna al Cliente
14. Il Cliente ritira ricevuta
UNIFIED PROCESS – ELABORAZIONE 2
![Page 31: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/31.jpg)
31
UCRestituisci - DettagliUNIFIED PROCESS – ELABORAZIONE 2
Il Cliente può recarsi presso una filiale di FastVid Rentals e restituire un prodotto sia allo sportello esterno, sia all'interno del punto vendita. All'interno del punto vendita può decidere se restituire il prodotto tramite sportello o fisicamente all'operatore di cassa.
![Page 32: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/32.jpg)
32
UCRestituisci – Flow of eventsUNIFIED PROCESS – ELABORAZIONE 2
1. Il Cliente si reca presso una filiale con un prodotto da restituire
2. Il Cliente informa il Sistema di voler restituire un prodotto precedentemente noleggiato
3. Il Sistema richiede al Cliente di depositare il prodotto nell'apposita feritoia
4. Il Cliente deposita il prodotto secondo le indicazioni ricevute
5. Il Sistema legge l'ID del prodotto depositato
6. Il Sistema recupera le informazioni sul Cliente tramite l'assocazione dello stesso ad un noleggio e quindi all'ID del supporto noleggiato e appena restituito
7. Il Sistema mostra al Cliente la conferma con riserva di controllo supporto per l'avvenuta restituzione
8. Il Sistema stampa la ricevuta cartacea attestante la restituzione
9. Il Sistema propone al Cliente di effettuare una nuova Ricerca film
10. Il Cliente rifiuta la proposta di cercare un nuovo film
11. Il Cliente si allontana con la ricevuta
![Page 33: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/33.jpg)
33
ANALYSIS & DESIGN
![Page 34: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/34.jpg)
34
Il diagramma ERUNIFIED PROCESS – ELABORAZIONE 1
![Page 35: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/35.jpg)
35
Il diagramma ERUNIFIED PROCESS – ELABORAZIONE 1
![Page 36: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/36.jpg)
36
Il diagramma ERUNIFIED PROCESS – ELABORAZIONE 1
![Page 37: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/37.jpg)
37
Interfaccia grafica – Paper sketchesUNIFIED PROCESS – ELABORAZIONE 1
![Page 38: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/38.jpg)
38
Interfaccia grafica – MockUpUNIFIED PROCESS – ELABORAZIONE 1
![Page 39: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/39.jpg)
39
Interfaccia grafica – SwingUNIFIED PROCESS – ELABORAZIONE 1
![Page 40: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/40.jpg)
40
Interfaccia grafica – scelte su SwingUNIFIED PROCESS – ELABORAZIONE 1
![Page 41: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/41.jpg)
41
Il riscontro del committenteL’incontro con il committente a valle della prima Iterazione della fase di Elaborazione ha sostanzialmente confermato il corretto avanzamento del lavoro.
Il committente ha tuttavia segnalato:• la poca intuitività dell’interfaccia relativa alla ricerca di un film (o
meglio, si aspettava che l’interfaccia fosse corredata di parametri per la ricerca avanzata).
• sempre per quanto riguarda l’interfaccia, ha suggerito di migliorare la schermata di risultati della ricerca, in parte povera di contenuti (oltre al titolo film, dettagli come genere, regia, etc..)
UNIFIED PROCESS – ELABORAZIONE 2
![Page 42: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/42.jpg)
42
La ristrutturazione di UCRicercaUNIFIED PROCESS – ELABORAZIONE 2
![Page 43: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/43.jpg)
43
La ristrutturazione di UCRicerca
![Page 44: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/44.jpg)
44
La ristrutturazione di UCRicercaUNIFIED PROCESS – ELABORAZIONE 2
![Page 45: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/45.jpg)
45
La ristrutturazione di UCRicercaUNIFIED PROCESS – ELABORAZIONE 2
Paginazione gestitasul client, con limitazioni lato server sul numero max di risultati
![Page 46: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/46.jpg)
46
Il diagramma di deploymentDA aggiungere.
UNIFIED PROCESS – ELABORAZIONE 2
![Page 47: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/47.jpg)
47
Diagramma degli stati: Noleggio UNIFIED PROCESS – ELABORAZIONE 2
![Page 48: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/48.jpg)
48
Diagramma degli stati: ProdottoUNIFIED PROCESS – ELABORAZIONE 2
![Page 49: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/49.jpg)
49
IMPLEMENTAZIONETECNOLOGIE:HIBERNATE & JAVA RMI
![Page 50: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/50.jpg)
50
Hibernate: Object-Relational Mapping
• piattaforma middleware open source per lo sviluppo di applicazioni Java che fornisce un servizio di Object-relational mapping (ORM)
• Come si intuisce dal nome consiste nella tecnica di mappare gli oggetti Java su di un database relazionale
• In questo modo è possibile, tramite dei semplici metodi invocabili dai nostri oggetti, eseguire le query piu diffuse
TECNOLOGIE – HIBERNATE & JAVA RMI
![Page 51: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/51.jpg)
51
Hibernate: Object-Relational Mapping• Per il funzionamento necessita di:
• Un R-DBMS installato con almeno un database creato • Importare nel progetto le librerie di Hibernate • Un file .cfg.xml che contiene le impostazioni e la configurazione
del DBMS • Dei file .hbm.xml per ogni entità del diagramma E-R
• Permettono di associare le tabelle alle classi
• Una ORMpersistable Java class per ogni entity dell’E-R • Dunque per ogni file hbm.xml
• Una classe di utility per la gestione delle sessioni
TECNOLOGIE – HIBERNATE & JAVA RMI
![Page 52: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/52.jpg)
52
Hibernate: Object-Relational MappingTECNOLOGIE – HIBERNATE & JAVA RMI
configurazione del DBMS utility per la gestione
delle sessioni File hbm.xmlORMpersistable java class
![Page 53: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/53.jpg)
53
Hibernate: Object-Relational Mapping• Nel corso della It2 si è fatto uso del Wizard di Visual
Paradigm per generare il codice necessario al funzionamento di Hibernate
• Nello specifico si è ricorso alla Persistent API «Static Method» • Tuttavia la generazione automatica comportava diverse
limitazioni• Sporcava le classi con una serie di metodi statici di classe• Legava le classi alla problematica della distribuzione (queste ultime
dovevano estendere “Remote”)• Ha creato problemi nei Vincoli di Integrità Referenziale in tutti i casi in
cui veniva implementato il costrutto o-o della composizione
TECNOLOGIE – HIBERNATE & JAVA RMI
![Page 54: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/54.jpg)
54
Hibernate: Object-Relational Mapping• Pertanto si è adottata una strategia differente nella It3
• Configurazione manuale dei file xml• Implementazione manuale sulla falsariga della Persistent API
«Data Access Object» di Visual Paradigm• Ogni ORMPersistable entity class è affiancata dal suo «DTO»(Data
Transfer Object) che incapsula in esso la entity stessa• Tutto questo anche per motivi legati alla distribuzione, come vedremo
• A differenza del pattern DAO generato da VP, abbiamo deciso di ospitare i metodi «Save()», «Delete()», etc… in opportune classi controller (grasp High cohesion)
TECNOLOGIE – HIBERNATE & JAVA RMI
![Page 55: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/55.jpg)
55
Hibernate: Object-Relational Mapping• Nel corso della It3 si è fatto utilizzo dei “Criteria”
TECNOLOGIE – HIBERNATE & JAVA RMI
Hibernate offre una API di interrogazione per criteri intuitiva ed estensibile.
![Page 56: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/56.jpg)
56
Java Remote Method Invocation (RMI)• Si può avere un vero e proprio riferimento all’oggetto
remoto, anche se esso si trova su una Java Virtual Machine diversa dalla nostra
• Si può utilizzare la sintassi Java e tutte le potenzialità offerte dalla progettazione o-o anche quando si invocano i metodi appartenenti agli oggetti remoti
• In questo modo è possibile progettare in maniera distribuita un'applicazione decomponendo la logica della nostra applicazione in diversi componenti
TECNOLOGIE – HIBERNATE & JAVA RMI
![Page 57: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/57.jpg)
57
Java Remote Method Invocation (RMI)1. Viene creata sul server un’istanza
dell'oggetto remoto e passata in forma di stub al rmi registry. Tale stub viene inserito all'interno del registry stesso.
2. Il client richiede al registry una copia dell'oggetto remoto da utilizzare.
3. Il registry restituisce una copia serializzata dello stub al client
4. Il client invoca uno dei metodi dell'oggetto remoto utilizzando la classe "clone“ fornita dallo stub
TECNOLOGIE – HIBERNATE & JAVA RMI
![Page 58: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/58.jpg)
58
Java Remote Method Invocation (RMI)5. Lo stub richiama lo skeleton che si
trova sul server chiedendogli di invocare sull'oggetto remoto lo stesso metodo che il client ha invocato sullo stub
6. Lo skeleton invoca il metodo richiesto sull'oggetto remoto
7. L'invocazione del metodo sull'oggetto remoto restituisce il risultato allo skeleton
8. Lo skeleton comunica il risultato allo stub sul client
9. Lo stub fornisce il risultato all'applicazione client iniziale
TECNOLOGIE – HIBERNATE & JAVA RMI
![Page 59: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/59.jpg)
59
Java RMI: il progetto FastVidRentalsTECNOLOGIE – HIBERNATE & JAVA RMI
Il progetto common è puntato sia dal progetto client che dal progetto server
![Page 60: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/60.jpg)
60
Java RMI: il progetto FastVidRentalsTECNOLOGIE – HIBERNATE & JAVA RMI
![Page 61: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/61.jpg)
61
Java RMI: il progetto FastVidRentalsTECNOLOGIE – HIBERNATE & JAVA RMI
![Page 62: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/62.jpg)
62
Java RMI: il progetto FastVidRentalsRiprendendo il discorso dei DTO…
TECNOLOGIE – HIBERNATE & JAVA RMI
![Page 63: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/63.jpg)
63
IMPLEMENTAZIONEIL CODICE
![Page 64: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/64.jpg)
64 TECNOLOGIE – HIBERNATE & JAVA RMI
![Page 65: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/65.jpg)
65
FASTVID RENTALS: CONCLUSIONII PUNTI DI FORZA DEL PROGETTO, GLI SVILUPPI FUTURI
![Page 66: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/66.jpg)
66
I punti di forza• Multi-threading• Flessibilità software:
• Gerarchia Terminali• Client Multi-Piattaforma• Sessione• Politiche prezzo• Politiche Prenotazioni• Tipologia ricerca• Transizioni di stato sul client
CONCLUSIONI
![Page 67: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/67.jpg)
67
I punti ancora da migliorare• Stato nei Noleggi• Ottimizzare gestione temporale dei prodotto e noleggi• ProxyImages sul client• Gestione del ripristino dello stato delle View
![Page 68: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/68.jpg)
68
Statistiche sul codice del progetto:CONCLUSIONI
Progetto N° Classi Linee di codice
Linee di codice (eseguibile)
Peso file (KByte)
Client 50 6312 3876 170
Common 15 409 235 36,5
Server 77 5139 2496 153
TOTALE: 142 11860 6607 360
Report software: http://www.locmetrics.com/index.html
![Page 69: Video rental management system](https://reader030.vdocuments.mx/reader030/viewer/2022032612/56813082550346895d965e17/html5/thumbnails/69.jpg)
Alessio D’Alessio, Filippo Mortari, Davide Russo
VI RINGRAZIAMO PER L’ATTENZIONE