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 email). 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)
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
Schema dei Dati
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
Sottoschema Applicativo (2)
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
Sottoschema di Connessione (2)
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)

Sottoschema d’Accesso (2)
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
Sottoschema di Personalizzazione (2)
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
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)
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

Data Unit
Mostra i dati di un singolo oggetto di una
determinata entità
 Proprietà:


Nome
 Sorgente
 Selettore (opzionale)
 Attributi da visualizzare
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)
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)
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)
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
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
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
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
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
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
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

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
Pagine
Costituiscono l'interfaccia fornita all'utente
 Tipicamente contengono diverse unit,
raggruppate per comunicare concetti ben
definiti

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
Aree
Site view complesse possono essere
decomposte gerarchicamente in aree
 Le aree sono gruppi di pagine con uno
scopo omogeneo

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
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

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

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

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

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
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

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
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)
Semplificazione (2)

Tutto questo avviene tramite una catena di
operazioni di creazione che noi abbiamo
preferito omettere per semplicità e brevità
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

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

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

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

Create/Delete Unit: esempio
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
Login Unit: esempio
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
credito

 L’operazione
riceve in ingresso i
dettagli dell’acquisto
 Stabilisce se la transazione è
andata a buon fine o è fallita
Addebito su carta di credito: esempio
Scarica

Progettazione di Dati e Applicazioni per il Web