53
Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Embed Size (px)

Citation preview

Page 1: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Progettazione di Dati e Applicazioni per il WebAlessandro Antonini 3676383

Lorenzo Berti 3645918

Lorenzo Maffucci 2734419

Page 2: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Videoteca on-line (1)

Si vuole realizzare un'applicazione web che consenta la gestione e la vendita on-line di un catalogo di materiale video

Gli utenti esterni (visitatori del sito) possono registrarsi attraverso uno username e una password. Di ogni utente registrato si vogliono conoscere i dati anagrafici (nome, cognome, data e luogo di nascita) ed i suoi recapiti (indirizzo di residenza, numero di telefono, indirizzo e-mail). Anche gli utenti interni (amministratori e responsabili marketing) sono identificati da uno username ed una password

Ogni film in catalogo è riconosciuto da un codice, ne vengono specificati titolo, prezzo, anno, paese di produzione, genere, regista, attori principali, trama, durata e locandina (foto)

Page 3: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Videoteca on-line (2)

Di ogni regista/attore sono disponibili i dati anagrafici (nome, cognome, data e luogo di nascita), la filmografia e una foto

Le notizie di vario genere (curiosità, gossip, recensioni, avvertimenti, etc.) relative ai film presenti nel catalogo della videoteca sono identificate da un codice e caratterizzate da un titolo, una data di pubblicazione, una categoria ed una fonte

L’utente può acquistare un qualsiasi film presente in catalogo effettuando il pagamento tramite carta di credito. L’articolo sarà quindi spedito al recapito fornito dall’autore dell’acquisto

Page 4: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Schema dei Dati

Page 5: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Sottoschema Applicativo (1)

Include entità e relazioni che denotano gli oggetti più importanti dell'applicazione Tali oggetti vengono individuati in fase di

analisi dei requisiti In una applicazione Web, sono gli oggetti

principali cui accedono gli utenti esterni e quelli gestiti dagli utenti interni autorizzati ad amministrarne i contenuti

Page 6: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Sottoschema Applicativo (2)

Page 7: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Sottoschema di Connessione (1)

Include le relazioni che connettono le entità centrali dell'applicazione Dal punto di vista del modello E-R, sono

relazioni definite tra entità per esprimere associazioni semantiche

Dal punto di vista dell'applicazione Web, sono rappresentati da link e indici per la navigazione tra oggetti

Page 8: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Sottoschema di Connessione (2)

Page 9: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Sottoschema d’Accesso (1)

Include le entità e le relazioni aventi il ruolo di facilitatori di accesso Utilizzati per classificare o specificare gli oggetti:

Costruendo gerarchie di indici che portano l'utente agli oggetti desiderati

Definendo meccanismi di ricerca per parole chiave Raggruppando gli oggetti più significativi in collezioni

speciali (es. le offerte del giorno)

Page 10: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Sottoschema d’Accesso (2)

Page 11: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Sottoschema di Personalizzazione (1)

Include le entità e le relazioni che descrivono proprietà degli utenti rilevanti per la personalizzazione: dati dei profili utente (es. nome, indirizzo,

data dell'ultimo acquisto) dati sui gruppi che rappresentano classi di

utenti omogenei relazioni di personalizzazione che

specificano diritti di accesso, appartenenze a gruppi o preferenze verso specifici oggetti

Page 12: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Sottoschema di Personalizzazione (2)

Page 13: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Modello di Ipertesto

Fra i siti Internet, giocano un ruolo predominante quelli dinamici, ovvero collegati a basi di dati, con la finalità non solo di pubblicare queste ultime, ma anche di rendere possibile la loro gestione in remoto

Lo scopo della modellazione ipertestuale è quello di specificare l’organizzazione di un documento non con una struttura sequenziale, bensì costituito da varie porzioni fra loro logicamente collegate

Page 14: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

WebML

WebML (Web Modelling Language) è un semplice linguaggio di natura grafica in grado di offrire uno schema concettuale di ipertesto, intuitivo e apprezzabile anche da utenti meno esperti

Fornisce le primitive per la modellazione ipertestuale, ereditando dal modello E-R l’idea di utilizzare concetti semplici ed espressivi e di essere supportato da una notazione grafica intuitiva

I costrutti fondamentali di WebML sono le unit, le pagine, i link, le aree e le site view (viste di sito)

Page 15: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Unit

Elementi atomici che specificano i contenuti di una pagina Web

Le pagine vengono costruite assemblando unit di vario tipo

Combinando diversi tipi di unit, possono essere modellate pagine di complessità arbitraria

Le unit hanno una rappresentazione grafica e una testuale

Page 16: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Data Unit

Mostra i dati di un singolo oggetto di una determinata entità

Proprietà: Nome Sorgente Selettore (opzionale) Attributi da visualizzare

Page 17: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Multidata Unit

Mostra i dati di un insieme di oggetti di un'entità, ripetendo la presentazione di molte data unit

Proprietà: Nome Sorgente Selettore (opzionale) Attributi da visualizzare Clausola di ordinamento (opzionale)

Page 18: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Index Unit

Mostra un insieme di oggetti di una entità come una lista

Proprietà: Nome Sorgente Selettore (opzionale) Attributi da visualizzare Clausola di ordinamento (opzionale)

Page 19: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Entry Unit

Supporta l'inserimento di dati tramite form Utilizzata per ricevere input dall'utente (es. per

effettuare ricerche o login) Proprietà:

Nome Campi

Proprietà dei campi: nome, tipo, valore iniziale, modificabilità, predicato di validità (es. not null)

Page 20: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Link (1)

Un link è un collegamento orientato fra due unit o pagine Un link specifica:

i possibili percorsi navigazionali fra le pagine le possibili selezioni offerte all’utente l’effetto dell’interazione dell’utente sul contenuto delle unit

visualizzate nella pagina

I link generalizzano il concetto di ancora, uno strumento attivo per mezzo del quale l’utente interagisce con l’ipertesto

Page 21: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Link (2)

Nella terminologia WebML, i link che attraversano i confini delle pagine vengono chiamati link inter-pagina, mentre i link che hanno sorgente e destinazione appartenenti alla stessa pagina vengono detti link intra-pagina. Inoltre, i link che trasportano informazioni sono definiti contestuali, altrimenti sono detti non contestuali

Page 22: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Link (3)

Un parametro del link è un valore associato a un link tra unit, che viene trasportato dalla unit sorgente alla unit di destinazione, per effetto della navigazione del link (può essere anche multi-valore)

Un selettore parametrico è un selettore di una unit le cui condizioni si riferiscono a uno o più parametri

La sintassi di un parametro di un link richiede una stringa utilizzata all’interno del selettore della unit di destinazione in riferimento al parametro, e un’etichetta che indica il contenuto del parametro, sia esso un attributo oppure un campo della unit sorgente del link

Page 23: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Link (4)

I vari tipi di unit (multidata, index, multi-choice index) differiscono per i parametri associati ai loro link uscenti:

index unit: il link uscente permette la selezione di un singolo oggetto

multi-choice index unit: è possibile selezionare un sotto-insieme di oggetti

multidata unit: è possibile passare soltanto l’interno insieme di oggetti visualizzati

Vengono definiti dei parametri di output di default per ogni unit in modo che si possono dedurre direttamente dal contesto senza perdita di informazione

Analogamente, una tale semplificazione può essere applicata alle condizioni del selettore

Page 24: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Link (5)Link contestuale con parametri

Semplificazione

Il contenuto della unit di destinazione dipende dall’informazione fornita dalla unit sorgente e il trasferimento di questa informazione di contenuto è associata alla navigazione del link

Intuitivamente la index unit fornisce l’OID della notizia selezionata alla data unit

Page 25: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Link (6)

L’esempio mostra un selettore costruito utilizzando un ruolo di relazione Tale selettore ([Notizia_Fonte]) restringe l’insieme degli oggetti (Fonte)

mostrati solamente a quelli collegati tramite il ruolo di relazione ([Notizia_Fonte(NotiziaCorr)]) specificato all’oggetto avente OID uguale al parametro dato (NotiziaCorr)

Quando il parametro associato al link è il parametro di default, questo può essere omesso anche dal selettore

L’OID dell’ oggetto visualizzato dalla Data Unit viene assunto implicitamente come l’argomento del predicato specificato sul ruolo della relazione

Page 26: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Link (7) I parametri dei link possono essere usati anche per la

trasmissione di valori inseriti in un’entry form

La unit “Condizioni Ricerca” include un singolo campo per inserire una parola chiave; il valore di questo campo viene assegnato come parametro, di nome “Parola”, al link in uscita dalla entry unit e usato nella condizione del selettore della index unit: in questo modo verranno mostrati solamente i film che contengono la parola chiave inserita dall’utente

Page 27: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Link (8)

Link di trasporto: link utilizzati solamente per passare informazioni contestuali da una unit all’altra abilitando solamente il passaggio di parametri e non la navigazione dell’utente

Quando si accede alla pagina, sia la data unit (“Dettagli Film”) che la index unit (“Elenco Notizie”) mostrano il loro contenuto, ma per il link non viene visualizzata alcuna ancora

Page 28: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Pagine

Costituiscono l'interfaccia fornita all'utente Tipicamente contengono diverse unit,

raggruppate per comunicare concetti ben definiti

Page 29: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Site View

Costrutto modulare che racchiude pagine e unit collegate tramite link

Rappresenta un ipertesto coerente per soddisfare un insieme ben definito di requisiti Esempio: utenti generici di un sito vs.

amministratori del sito

Page 30: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Aree

Site view complesse possono essere decomposte gerarchicamente in aree

Le aree sono gruppi di pagine con uno scopo omogeneo

Page 31: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Pagina Home

La pagina home è la pagina di default del sito o che viene presentata dopo che l'utente ha effettuato il login

È unica all'interno della site view

Page 32: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Pagina di Default

La pagina di default è la pagina presentata di default quando si accede all'area che la racchiude

È unica all'interno di tale area

Page 33: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Pagina Landmark

Una pagina landmark è raggiungibile da tutte le altre pagine o aree all'interno del modulo che la racchiude (site view o super-area)

Riduce significativamente il numero di link da disegnare

Page 34: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Aree di Default e Aree Landmark

I concetti di default e landmark possono essere estesi anche alle aree

L'area di default è la sotto-area cui si accede di default quando si accede alla super-area che la contiene

Un'area landmark è un'area implicitamente raggiungibile da tutte le altre pagine o aree della site view in cui è racchiusa

Stessa notazione delle pagine

Page 35: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Site View Utente Casuale

Gli utenti casuali appartengono alla categoria degli utenti esterni, ovvero i visitatori del sito

Non si conoscono i dati relativi agli utenti casuali

Gli utenti casuali hanno diritti di sola lettura

Page 36: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419
Page 37: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Site View Utente Registrato

Anche gli utenti registrati appartengono alla categoria degli utenti esterni

Gli utenti registrati hanno la possibilità di accedere al servizio di acquisto on-line tramite carta di credito

Page 38: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419
Page 39: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Site View Responsabile Marketing

I responsabili marketing appartengono alla categoria degli utenti interni, ovvero i dipendenti dell’azienda che fornisce il servizio di videoteca on-line

I responsabili marketing hanno diritto di scrittura sul catalogo della videoteca

Page 40: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419
Page 41: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Site View Amministratore

Anche gli amministratori del sito web appartengono alla categoria degli utenti interni

Gli amministratori hanno diritto di scrittura su le notizie relative ai prodotti in catalogo

Gli amministratori hanno inoltre il compito della gestione (abilitazione e cancellazione) di tutti gli utenti registrati presso il sito web

Page 42: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419
Page 43: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Semplificazione (1)

Nelle site view relative agli amministratori ed ai responsabili marketing abbiamo effettuato delle semplificazioni

Infatti per ogni notizia (per gli amministratori) o film (per i responsabili marketing) che viene creato devono essere definite, qualora già non lo siano, le sue corrispondenti istanze delle entità categoria e fonte (per le notizie) o genere e regista/attori (per i film)

Page 44: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Semplificazione (2)

Tutto questo avviene tramite una catena di operazioni di creazione che noi abbiamo preferito omettere per semplicità e brevità

Page 45: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Operation Unit (1)

Utilizzata in WebML per esprimere dei processi eseguiti in seguito alla navigazione di un link

Può avere più link entranti, che forniscono i parametri in ingresso

Più operation unit possono essere collegate tramite link per formare una sequenza

Page 46: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Operation Unit (2)

Ogni operation unit ha un link OK e un link KO

Una operation unit può avere un qualsiasi numero di link di trasporto uscenti

Una operation unit non visualizza dati, ma esegue solo dei processi come effetto della navigazione di un link

Page 47: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Create Unit

Permette di creare una nuova istanza di un’entità

Solitamente, l’input della create unit proviene da una entry unit

I valori in ingresso vengono usati per costruire un nuovo oggetto a partire dalle assegnazioni specificate

Page 48: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Delete Unit

Permette di cancellare uno o più oggetti di una determinata entità

L’utente sceglie un singolo oggetto (o un insieme di oggetti) da cancellare

Gli OID di tali oggetti vengono associati ai parametri dei link entranti nella delete unit

Page 49: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Create/Delete Unit: esempio

Page 50: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Login Unit

Ha due parametri fissi (nome utente e password), normalmente forniti da una entry unit

Controlla la validità dell’identità dell’utente

Se il controllo ha successo, porta l’utente nella propria home page

Se il controllo fallisce, porta l’utente in una pagina di errore

Page 51: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Login Unit: esempio

Page 52: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Operazioni generiche:addebito su carta di credito

Oltre alle operation unit predefinite, WebML permette al progettista di definire operazioni generiche

Esempio: addebito su carta di creditoL’operazione riceve in ingresso i

dettagli dell’acquistoStabilisce se la transazione è

andata a buon fine o è fallita

Page 53: Progettazione di Dati e Applicazioni per il Web Alessandro Antonini 3676383 Lorenzo Berti 3645918 Lorenzo Maffucci 2734419

Addebito su carta di credito: esempio