Video rental management system

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Numeri a 100 Electronic flashcard. 1 uno ritorno.
“Niente di Nuovo” Mercatino dell’Usato
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Valutazione d’Istituto A.S. 2008/2009
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
Progetto Qua.ser Indagine di customer satisfaction: Cambio di indirizzo Firenze, 30 giugno 2011.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Indagine Congiunturale 2011 Confcooperative Emilia Romagna CONFERENZA STAMPA CONFCOOPERATIVE EMILIA ROMAGNA Bologna, 30 Luglio 2013.
Java Enterprise Edition (JEE)
Frontespizio Economia Monetaria Anno Accademico
Associazione Nazionale Medici Cardiologi Ospedalieri
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
Varianza campionaria Errore standard della varianza campionaria
ELEZIONI REGIONALI 2010 PRIMI RISULTATI E SCENARI 14 aprile 2010.
Canale A. Prof.Ciapetti AA2003/04
1 Anatomia di una pagina Un insieme di pagine web hanno generalmente una parte invariante (o poco): header, navigazione, footer una parte variabile: contenuti.
Già primario f.f. U.O. di neurochirurgia
CORSO DI RICERCA BIBLIOGRAFICA 3. giornata (26 ottobre 2007) Inspec Web of Science.
MP/RU 1 Dicembre 2011 ALLEGATO TECNICO Evoluzioni organizzative: organico a tendere - ricollocazioni - Orari TSC.
© CEFRIEL Ricettario dei principali pattern GoF Docente: Gabriele Lombardi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% % Accrescimento della PECORA IN TASMANIA % % dal 1820 ad oggi % % ( MODELLO LOGISTICO ) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Cos’è un problema?.
CALCIO SKY 2007 – 2008 PROFILO DI ASCOLTO. 2 INDICE DEGLI ARGOMENTI Profilo di ascolto CALCIO SERIE A 2007 – 2008 Totale campionato (tutte le partite)……………………………………………….
Gli italiani e il marketing di relazione: promozioni, direct marketing, digital marketing UNA RICERCA QUANTITATIVA SVOLTA DA ASTRA RICERCHE PER ASSOCOMUNICAZIONE.
Ropol09anci INDAGINE SU PATTO DI STABILITA 2009 IN PIEMONTE ANCI PIEMONTE Torino, 29 giugno 2009.
Architettura Java/J2EE
Monitoraggio a.s. 2008/2009Analisi dei dati RETE REGIONALE AU.MI.
CHARGE PUMP Principio di Funzionamento
Settimana: 3-7 marzo Orariolunedimartedi Mercoledi 5 Giovedi 6 Venerdi lezione intro alla fis mod DR lezione intro alla fis mod DR.
“QUESTIONARIO SUL GRADIMENTO”
Regolarità nella griglia dei numeri
Q UESTIONI ETICHE E BIOETICHE DELLA DIFESA DELLA VITA NELL AGIRE SANITARIO 1 Casa di Cura Villa San Giuseppe Ascoli Piceno 12 e 13 dicembre 2011.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
Video rental management system
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
S.S. I grado C. Guastella – Misilmeri D.S. Prof.ssa Rita La Tona A.S. 2010/2011 percOrsi di autoanalisi area docenti - pof Report - prima parte.
ISTITUTO COMPRENSIVO “G. BATTAGLINI” MARTINA FRANCA (TA)
Protocollo informatico: interoperabilità e PEC
Il diagramma ER UNIFIED PROCESS – ELABORAZIONE 1 1.
A cosa serve GWAESSE? E’ un software di semplice utilizzo per la configurazione e la preventivazione di quadri AS (per moli e campeggi), ASC (per cantiere)
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
GEOGRAFIA DEI NUMERI Accademia dei Lincei - Roma 18 Ottobre2011
Un trucchetto di Moltiplicazione per il calcolo mentale
1 Ly-LAB Sistema di gestione dei dati analitici di laboratorio.
Prima rilevazione sullo stato di attuazione della riforma degli ordinamenti nelle istituzioni scolastiche in LOMBARDIA Attuazione del D.L. 59/2003 a.s.
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
Video rental management system
Video rental management system
ANALYSIS & DESIGN I DESIGN PATTERNS GoF 1. I Design Patterns GoF …un momento importante durante il corso del design!
IMPLEMENTAZIONE TECNOLOGIE:HIBERNATE & JAVA RMI.
Java Remote Method Invocation (RMI)
ANALYSIS & DESIGN 1. Analysis & Design The goal of the Analysis & Design workflow is to show how the system will be realized in the implementation phase.
IMPLEMENTAZIONE TECNOLOGIE:HIBERNATE & JAVA RMI.
Video rental management system
FASTVID RENTALS: BUSINESS MODELING 1. Business Modeling One of the major problems with most business engineering efforts, is that the software engineering.
Architettura software La scelta architetturale: MVA (Model – View – Adapter/Control) The view is completely decoupled from the model such that view and.
FASTVID RENTALS: CONCLUSIONI I PUNTI DI FORZA DEL PROGETTO, GLI SVILUPPI FUTURI 1.
Esempi risolti mediante immagini (e con excel)
1 Sky 2 Sky 3 Sky L’Universo Aperto La teoria del Big Bang prevede che, se la densità globale dell’universo non raggiunge un valore di Ωo (Omega Zero)
NO WASTE Progetto continuità scuola primaria scuola secondaria Salorno a.s. 2013_
AUTOVALUTAZIONE D’ISTITUTO
© 2014 KDM S.p.A. 1. Dematerializzare per Semplificare Dematerializzare non vuol dire solo semplificare. La semplificazione investe tutta la sfera della.
1 Ministero dell’Istruzione, dell’Università e della Ricerca Dipartimento per la Programmazione e la Gestione delle risorse umane, finanziarie e strumentali.
Indagine Congiunturale 2011 Confcooperative Emilia Romagna CONFERENZA STAMPA CONFCOOPERATIVE EMILIA ROMAGNA Bologna, 30 Luglio 2013.
Analisi dettagliata e design
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Transcript della presentazione:

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: Unified process: Tecnologie usate: 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

Richiesta del committente Fastvid rentals - panoramica Richiesta del committente Sviluppo di un sistema software di gestione di una azienda di video-noleggi: Video Rental Management System

Fastvid rentals - panoramica 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.

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

Il versionamento: Xp-Dev e GoogleCode

Il processo di riferimento: UP Sviluppo software Il processo di riferimento: UP

Il processo di riferimento: UP Sviluppo software Il processo di riferimento: UP Ogni iterazione produce un’executable release

L’iterazione time-boxed Abbiamo cercato di rispettare le scadenze e assegnare le responsabilità con una sorta di diagramma di Gantt

Legenda Inception Elaborazione – Iterazione 1 TITOLO SEZIONE Legenda Disciplina di UP, contenuto in esame nella slide corrente, sezione relativa a un particolare concetto.. Iterazione cui si riferisce il contenuto analizzato nella slide Inception Elaborazione – Iterazione 1 Elaborazione – Iterazione 2 Elaborazione – Iterazione 3

FastVID Rentals: business modeling

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.”

La struttura aziendale Fastvid rentals - panoramica La struttura aziendale La macrostruttura:

La struttura aziendale Fastvid rentals - panoramica La struttura aziendale L’organigramma aziendale della singola divisione:

Prospettiva dell’utente Fastvid rentals - panoramica Prospettiva dell’utente Si mostrano i possibili punti di accesso fisici all’applicativo

Business rules salienti Fastvid rentals - panoramica Business rules salienti Il 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

Business rules salienti Fastvid rentals - panoramica Business rules salienti Le 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;

Il modello di dominio (Business Object Model) Unified process – elaborazione 1 Il modello di dominio (Business Object Model)

Il modello di dominio (Business Object Model) Unified process – elaborazione 1 Il modello di dominio (Business Object Model)

Requirements – i casi d’uso

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.”

Unified process - ideazione Use Case Diagram Casi d’uso analizzati: Tutti Casi d’uso dettagliati: UCRicercaFilm UCNoleggia UCPrenota UCRestituisci

Use Case Diagram Casi d’uso analizzati: Casi d’uso dettagliati: Tutti UCRicercaFilm UCNoleggia UCPrenota UCRestituisci

UCRicercaFilm – Dettagli Unified process - ideazione UCRicercaFilm – Dettagli Il 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.

UCRicercaFilm - Flow of events Unified process - ideazione UCRicercaFilm - Flow of events 1. 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

UCNoleggiaFilm – Dettagli Unified process - ideazione UCNoleggiaFilm – Dettagli Il 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.

UCNoleggiaFilm - Flow of events Unified process - ideazione UCNoleggiaFilm - 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 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

Il riscontro del committente Unified process – elaborazione 1 Il riscontro del committente L’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.

UCPrenota - Dettagli Il 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.

UCPrenota – Flow of Events Unified process – elaborazione 2 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

UCRestituisci - Dettagli Unified process – elaborazione 2 UCRestituisci - Dettagli 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.

UCRestituisci – Flow of events Unified process – elaborazione 2 UCRestituisci – Flow of events 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

ANALYsis & DEsign

Analysis & Design “The goal of the Analysis & Design workflow is to show how the system will be realized in the implementation phase.” “The analysis model is a platform independent model (PIM), which means that it does not contain technology-based decisions.” “The design model consists of design classes structured into design packages and design subsystems with well-defined interfaces, representing what will become components in the implementation. It is a PSM”

Use Case Driven!!! In UP, i casi d'uso sono utilizzati per catturare i requisiti funzionali e di definire i contenuti delle iterazioni. Ogni iterazione prende in considerazione un set di casi d’uso o scenari dai requisiti sino all’implementazione, test e deploy.

Unified process – elaborazione 1 UCRicercaFilm - SSD

Unified process – elaborazione 1 UCRicercaFilm - SSD

Unified process – elaborazione 1 UCRicercaFilm - SSD

UCRicercaFilm - I contratti Unified process – elaborazione 1 UCRicercaFilm - I contratti CercaFilm Operazione: CercaFilm(chiaveRicerca). Riferimenti casi d'uso: RicercaFilm, Prenota, Noleggia. Pre-condizioni: esiste un'istanza della classe terminale connessa al client, esiste un catalogoFilm con almeno un film. Post-condizioni: è stata creata una istanza di Lista di film popolata con i film che corrispondono alla ricerca.  

UCRicercaFilm - I contratti Unified process – elaborazione 1 UCRicercaFilm - I contratti VisualizzaFilm Operazione: visualizzaFilm(IDFilm) Riferimenti casi d'uso: RicercaFilm, Noleggia, Prenota Pre-condizioni: si conosce l'ID del film da visualizzare, l'istanza del film con tale ID è presente sul client, il magazzino è avviato. Post-condizioni: il magazzino ha creato una Map < supporto; booleano disponibile; prezzo>.

UCRicercaFilm - I contratti Unified process – elaborazione 1 UCRicercaFilm - I contratti ScegliSupporto Operazione: scegliSupporto(supporto) Riferimenti casi d’uso: Noleggia Pre-condizioni: Il cliente ha già scelto il film da una ricerca Post-condizioni: Un supporto per il film di interesse è stato selezionato.

Unified process – elaborazione 1 UCNoleggiaFilm - SSD

UCNoleggiaFilm - I contratti Unified process – elaborazione 1 UCNoleggiaFilm - I contratti NotificaIdentità Operazione: notificaIdentita(IdTesseraCliente) Riferimenti casi d’uso: Noleggia, GestisciTessera , Prenota Pre-condizioni: è stata effettuata una ricerca film con successo, si ha a disposizione un Film ed un tipo di supporto selezionato, disponibile in Magazzino Post-condizioni: la tessera cliente è stata riconosciuta, è stata memorizzata nell'istanza del terminale la tessera cliente, è stata creata una istanza di noleggio

UCNoleggiaFilm - I contratti Unified process – elaborazione 1 UCNoleggiaFilm - I contratti SetDurata Operazione: setDurata(giorni) Riferimenti casi d’uso: Noleggia, Prenota         Pre-condizioni: un'istanza di terminale è avviata, il cliente è autenticato, è stata creata un istanza di noleggio Post-condizioni: l'istanza di noleggio contiene informazioni sulla durata del noleggio.  

UCNoleggiaFilm - I contratti Unified process – elaborazione 1 UCNoleggiaFilm - I contratti ConcludiNoleggio Operazione: concludiNoleggio() Riferimenti casi d’uso: Noleggia         Pre-condizioni: un'istanza di terminale è avviata, il cliente è autenticato, è stata creata un istanza di noleggio con tutti gli attributi. Post-condizioni: l'istanza di noleggio è stata finalizzata, gli attributi temporanei dell'istanza terminale sono stati resettati, il prodotto nel magazzino è settato su "noleggiato".

Unified process – elaborazione 2 UCPrenota – SSD

UCPrenota – i contratti Unified process – elaborazione 2 UCPrenota – i contratti SetDataInizio Operazione: setDataInizio(data) Riferimenti: useCase: Prenota               Pre-condizioni: un'istanza di terminale è avviata, il cliente è autenticato, è stata creata un istanza di Prenotazione. Post-condizioni: l'istanza di Prenotazione contiene informazioni sulla data di inizio effettivo del noleggio.

UCPrenota – i contratti Unified process – elaborazione 2 UCPrenota – i contratti CheckPrenotazione Operazione: checkPrenotazione() Riferimenti: useCase: Prenota        Pre-condizioni: un'istanza di terminale è avviata, il cliente è autenticato, è stata memorizzata in sessione la data inizioe la durata prevista della prenotazione. Post-condizioni: un prodotto è stato trovato corrispondente alle richieste di prenotazione dell'utente ed è stato memorizzato in sessione.

UCPrenota – i contratti Unified process – elaborazione 2 UCPrenota – i contratti ConfermaPrenotazione Operazione: confermaPrenotazione() Riferimenti: useCase: Prenota        Pre-condizioni: un'istanza di terminale è avviata, il cliente è autenticato, è stato trovato un prodotto corrispondente alle richieste del cliente, memorizzato in sessione con tutti gli attributi necessari alla prenotazione. Post-condizioni: l'istanza di Prenotazione è stata creata, gli attributi temporanei, il prodotto nel magazzino è stato prenotato.

Unified process – elaborazione 2 UCRestituisci – SSD

UCRestituisci – i contratti Unified process – elaborazione 2 UCRestituisci – i contratti Restituisci Operazione: restituisci(IdProdotto) Riferimenti: useCase: Restituisci Pre-condizioni: un'istanza di terminale è avviata, il cliente dispone di un Prodotto fisico da restituire alla filiale di interesse. Post-condizioni: Lo stato dell’istanza dell’oggetto “Prodotto” il cui ID corrisponde a IdProdotto cambia da “Noleggiato” a “Magazzino”

Architettura software Unified process – elaborazione 1 Architettura software La scelta architetturale: MVA (Model – View – Adapter/Control) “The view is completely decoupled from the model such that view and the model can interact only via the mediating controller or adapter in between the view and the model”. “Only the adapter or mediating controller has knowledge of both the model and the view, because it is the responsibility of solely the adapter or mediating controller to adapt or mediate between the model and the view” [Wikipedia]

Architettura software Unified process – elaborazione 1 Architettura software “The model and view are kept intentionally oblivious of each other”

Il diagramma dei package Unified process – elaborazione 2 Il diagramma dei package

Il diagramma dei package Unified process – elaborazione 1 Il diagramma dei package

Il diagramma dei package Unified process – elaborazione 1 Il diagramma dei package

Il diagramma delle classi - Il Client Unified process – elaborazione 1 Il diagramma delle classi - Il Client

Il diagramma delle classi – Il Client Unified process – elaborazione 1 Il diagramma delle classi – Il Client

Il diagramma delle classi – Il Server Unified process – elaborazione 1 Il diagramma delle classi – Il Server

Il diagramma delle classi – Il Server Unified process – elaborazione 1 Il diagramma delle classi – Il Server

Il diagramma delle classi – Il Server Unified process – elaborazione 1 Il diagramma delle classi – Il Server

Il diagramma delle classi – Il Server Unified process – elaborazione 1 Il diagramma delle classi – Il Server

Unified process – elaborazione 1 Il diagramma ER

Unified process – elaborazione 1 Il diagramma ER

Unified process – elaborazione 1 Il diagramma ER

Interfaccia grafica – Paper sketches Unified process – elaborazione 1 Interfaccia grafica – Paper sketches

Interfaccia grafica – MockUp Unified process – elaborazione 1 Interfaccia grafica – MockUp

Interfaccia grafica – Swing Unified process – elaborazione 1 Interfaccia grafica – Swing

Interfaccia grafica – scelte su Swing Unified process – elaborazione 1 Interfaccia grafica – scelte su Swing

Il riscontro del committente Unified process – elaborazione 2 Il riscontro del committente L’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..)

La ristrutturazione di UCRicerca Unified process – elaborazione 2 La ristrutturazione di UCRicerca

La ristrutturazione di UCRicerca Unified process – elaborazione 2 La ristrutturazione di UCRicerca Paginazione gestita sul client, con limitazioni lato server sul numero max di risultati

SD diagram

Communication Diagram

Il diagramma di deployment Unified process – elaborazione 2 Il diagramma di deployment DA aggiungere.

Diagramma degli stati: Noleggio Unified process – elaborazione 2 Diagramma degli stati: Noleggio

Diagramma degli stati: Prodotto Unified process – elaborazione 2 Diagramma degli stati: Prodotto

ANALYsis & DEsign I DESIGN PATTERNS GoF

Unified process – design patterns I Design Patterns GoF

Design Patterns: Singleton Unified process – design patterns Design Patterns: Singleton Il Singleton è un design pattern creazionale che ha lo scopo di garantire che di una determinata classe venga creata una e una sola istanza, e di fornire un punto di accesso globale a tale istanza. Costruttore privato metodo "getter" statico che restituisce una istanza della classe DA NON CONFONDERE!!!

Design Patterns: Singleton Unified process – design patterns Design Patterns: Singleton TODO --- Come faccio vedere i singleton?

Design Patterns: Mediator Unified process – design patterns Design Patterns: Mediator pattern comportamentale basato su oggetti, ossia operante nel contesto delle interazioni tra oggetti, che ha l'intento di disaccoppiare entità del sistema che devono comunicare fra loro. Il pattern fa in modo che queste entità non si riferiscano reciprocamente, agendo da "mediatore" fra le parti.

Design Patterns: Mediator sul Client Unified process – design patterns Design Patterns: Mediator sul Client

Design Patterns: State Unified process – design patterns Design Patterns: State pattern comportamentale basato su oggetti che viene utilizzato quando il comportamento di un oggetto deve cambiare in base al suo stato. Questo pattern trova applicazione quando abbiamo a che fare con una “Macchina a Stati Finiti” ossia siamo in presenza di un sistema dinamico in cui i valori di ingresso, uscita e stato sono un insieme finito.

Design Patterns: Adapter Unified process – design patterns Design Patterns: Adapter pattern strutturale basato su classi o su oggetti in quanto è possibile ottenere entrambe le rappresentazioni. Viene utilizzato quando si intende utilizzare un componente software ma occorre adattare la sua interfaccia per motivi di integrazione con l’applicazione esistente.

Design Patterns: State+Adapter sul Client Unified process – design patterns Design Patterns: State+Adapter sul Client

Design Patterns: Facade Unified process – design patterns Design Patterns: Facade pattern strutturale basato su oggetti che viene utilizzato per nascondere la complessità del sistema e ridurre la comunicazione e la dipendenza del Client. L’utilizzo di questo pattern prevede di esporre una interfaccia per l’invocazione di un Sistema tale da semplificare l’invocazione ad opera del Client.

Design Patterns: Terminale come ControllerFacade visibile al Client Unified process – design patterns Design Patterns: Terminale come ControllerFacade visibile al Client

Design Patterns: Strategy Unified process – design patterns Design Patterns: Strategy pattern comportamentale basato su oggetti utilizzato per definire una famiglia di algoritmi, incapsularli e renderli intercambiabili. Il client definisce l’algoritmo da utilizzare, incapsulandolo in un contesto, il quale verrà utilizzato nella fase di elaborazione. Il contesto detiene i puntamenti alle informazioni necessarie al fine della elaborazione, cioè dati e funzione: solita equazione y=f(x)!

Design Patterns: Strategy (sulla ricercaFilm) - Server Unified process – design patterns Design Patterns: Strategy (sulla ricercaFilm) - Server

Design Patterns: Strategy sulle prenotazioni - Server Unified process – design patterns Design Patterns: Strategy sulle prenotazioni - Server

Design Patterns: Composite Unified process – design patterns Design Patterns: Composite pattern strutturale basato su oggetti che viene utilizzato quando si ha la necessità di realizzare una gerarchia di oggetti in cui l’oggetto contenitore può detenere oggetti elementari e/o oggetti contenitori. L’obiettivo è di permettere al Client che deve navigare la gerarchia, di comportarsi sempre nello stesso modo sia verso gli oggetti elementari e sia verso gli oggetti contenitori.

Design Patterns: Strategy+Composite per i prezzi- Server Unified process – design patterns Design Patterns: Strategy+Composite per i prezzi- Server

IMPLEMENTAZIONE TECNOLOGIE:HIBERNATE & JAVA RMI

Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi 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 più diffuse

Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi 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

Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi Hibernate: Object-Relational Mapping configurazione del DBMS utility per la gestione delle sessioni ORMpersistable java class File hbm.xml

Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi 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

Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi 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)

Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi Hibernate: Object-Relational Mapping Nel corso della It3 si è fatto utilizzo dei “Criteria” Hibernate offre una API di interrogazione per criteri intuitiva ed estensibile.

Java Remote Method Invocation (RMI) Tecnologie – hibernate & java rmi 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

Java Remote Method Invocation (RMI) Tecnologie – hibernate & java rmi Java Remote Method Invocation (RMI) 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. Il client richiede al registry una copia dell'oggetto remoto da utilizzare. Il registry restituisce una copia serializzata dello stub al client Il client invoca uno dei metodi dell'oggetto remoto utilizzando la classe "clone“ fornita dallo stub

Java Remote Method Invocation (RMI) Tecnologie – hibernate & java rmi Java Remote Method Invocation (RMI) 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 Lo skeleton invoca il metodo richiesto sull'oggetto remoto L'invocazione del metodo sull'oggetto remoto restituisce il risultato allo skeleton Lo skeleton comunica il risultato allo stub sul client Lo stub fornisce il risultato all'applicazione client iniziale

Java RMI: il progetto FastVidRentals Tecnologie – hibernate & java rmi Java RMI: il progetto FastVidRentals Il progetto common è puntato sia dal progetto client che dal progetto server

Java RMI: il progetto FastVidRentals Tecnologie – hibernate & java rmi Java RMI: il progetto FastVidRentals

Java RMI: il progetto FastVidRentals Tecnologie – hibernate & java rmi Java RMI: il progetto FastVidRentals

Java RMI: il progetto FastVidRentals Tecnologie – hibernate & java rmi Java RMI: il progetto FastVidRentals Riprendendo il discorso dei DTO…

IMPLEMENTAZIONE IL CODICE

Tecnologie – hibernate & java rmi

FASTVID rentals: CONCLUSIONI I PUNTI DI FORZA DEL PROGETTO, GLI SVILUPPI FUTURI

I punti di forza Multi-threading Flessibilità software: Conclusioni 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

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

Statistiche sul codice del progetto: conclusioni Statistiche sul codice del progetto: 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

Vi ringraziamo per l’attenzione Alessio D’Alessio, Filippo Mortari, Davide Russo