Post on 03-May-2015
SISR-MODWEBMLSISR-MODWEBML - - 11 - -
Modellazione concettuale di Modellazione concettuale di applicazioni Webapplicazioni Web
SISR-MODWEBMLSISR-MODWEBML - - 22 - -
Modellazione concettuale di applicazioni WebModellazione concettuale di applicazioni Web
Metodologia di sviluppo per applicazioni Web data-intensive
WebML (Web Modeling Language) – http://webml.org
Modellazione del contenuto informativo
Modellazione dell’ipertesto
WebRatio: un tool di sviluppo per WebML – http://www.webratio.com
SISR-MODWEBMLSISR-MODWEBML - - 33 - -
Alcuni modelli concettualiAlcuni modelli concettuali
Prime proposte per la modellazione di applicazioni ipermediali (Communication of ACM, August 1995)
Proposte successive, per la modellazione di applicazioni Web
ARANEUS (1998)ADM (Araneus Data Model)
Strudel (1998)UGM (Unified Graph Model) + StruQL (Strudel Query Language)
Web Modeling Language – WebML (1998)Modello ER per il contenuto + Primitive visuali per l’ipertestoSupportato da uno strumento CASE commerciale (http://www.webratio.com)
Estensione di UML per il Web (Jim Conallen, “Buidling Web Applications with UML”, Addison Wesley, 2000)
SISR-MODWEBMLSISR-MODWEBML - - 44 - -
WWebML –ebML – concetti di base concetti di base
Applicazione Web= Dati + Ipertesto + Presentazione
struttura del contenuto
entità,relazioni
composizione + navigazione +
personalizzazione
unità, pagine, link, site view
presentazione
stili
SISR-MODWEBMLSISR-MODWEBML - - 55 - -
Modello dei DatiModello dei Dati
Tipiche domande:Quali sono gli oggetti informativi da pubblicare tramite l’applicazione? Quali sono le proprietà che li caratterizzano?In che modo i vari oggetti sono correlati?
Primitive del modello Entità-Relazioni:Entità: una classe di oggetti nel dominio dell’applicazioneAttributo: una proprietà di una entitàRelazione: una connessione tra entitàGerarchia IS-A: costrutto utilizzato per classificare o raggruppare
Compatibilita’ ER e UML
MODELLO DEI DATI
SISR-MODWEBMLSISR-MODWEBML - - 66 - -
Notazione grafica (ER/UML)Notazione grafica (ER/UML)
MODELLO DEI DATI
Ogni entità identificata da un Object Identifier (OID), non rappresentato esplicitamente nello schema
Entità2Entità1
SottoEntità
attributo1
SISR-MODWEBMLSISR-MODWEBML - - 77 - -
Modello di Ipertesto:Modello di Ipertesto:obiettiviobiettivi
Modellazione ad alto livello del front-end di una applicazione Web dinamica e delle interazioni con la logica e i dati del back-end
Utilizzo di una notazione visuale semplice ma formale
Generazione automatica di template di pagine dinamiche e di interrogazioni per l’accesso e la manipolazione dei dati
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 88 - -
• Domande tipiche• In che modo l’utente deve fruire del contenuto pubblicato tramite il sito?•Quali sono le pagine nell’ipertesto, tramite cui l’utente può accedere ai contenuti?
•Quale informazione deve essere pubblicata in ogni pagina?•In che modo i nodi dell’ipertesto sono collegati tra loro?
• Primitive del modello di Ipertesto•Unità di contenuto (o unit) •Link•Pagine• Site view
Modellazione dell’Ipertesto:Modellazione dell’Ipertesto:Domande TipicheDomande Tipiche
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 99 - -
Unità di contenutoUnità di contenuto
Una unit di contenuto in WebML è l’elemento base per la pubblicazione di informazioni
Corrisponde ad una “vista” definita su un contenitore di oggetti, ad es.:
Tutte le istanze di un’entità sorgente
Le istanze di una entità che soddisfano una condizione di selezione chiamata selettore
unitX
Sorgente[Selettore]
MODELLO DI IPERTESTO
DATAUNIT INDEXUNIT MULTIDATAUNIT
ENTRYUNIT SCROLLERUNIT
entity[Selector]
Unità di Contenuto di Base
entity[Selector]
entity[Selector]
entity[Selector]
MULTICHOICE
entity[Selector]
HIERARCHICAL
entity[Selector]
DATAUNIT INDEXUNIT MULTIDATAUNIT
ENTRYUNIT SCROLLERUNIT
Significato delle Unita’ di Contenuto
Author first name:XXX last name:YYY photo:
Index of Authors
•S. Ceri•P. Fraternali•O.Versand
All Authors
Browse Authors
5/12: go to
1/12
Insert Your Data
•Fname•Lname
MULTICHOICE
Choose Authors
Ceri Fraternali Versand
HIERARCHICAL
Books&Authors
1. Web Applicat. Ceri Fraternali2. Systems Tannenbaum
SISR-MODWEBMLSISR-MODWEBML - - 1212 - -
Input e output delle unitInput e output delle unit
Ogni unit può avere parametri di input e output
I parametri in input sono necessari per calcolare la unitParametri richiesti dal selettore della unit
I parametri in output possono essere utilizzati per la computazione di una o più unit che dipendono dalla unit corrente
unitX
entità[selettore (ParIN)]
ParIN ParOUT
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 1313 - -
DataUnitDataUnit
Pubblica informazione circa UNA SINGOLA ISTANZAUNA SINGOLA ISTANZA Contenitore: una entità, più (opzionalmente) un selettore Parametri in input:
OID dell’oggetto che deve essere pubblicato, OPPURE
Parametri richiesti dalla computazione del selettore
Parametri in output: L’OID dell’oggetto pubblicato, più ogni suo attributo
Entità[Selettore(parametri)]
parametri OID
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 1414 - -
Esempio di Esempio di DataUnitDataUnit
Informazione su un prodotto specifico
CASO DI STUDIO
Product
ProductDetails
SISR-MODWEBMLSISR-MODWEBML - - 1515 - -
MultiDataUnitMultiDataUnit
• Pubblica un insieme di istanze di una entità (insieme di oggetti)(insieme di oggetti)
• Contenitore: una entità, più (opzionalmente) un selettore
• Parametri di input: quelli richiesti per la computazione del selettore
• Parametri di output:
•L’insieme di OID degli oggetti pubblicati (più gli attributi degli oggetti)
Entità[Selettore(parametri)]
parametri {OID}
MODELLO DI IPERTESTO
Entry Unit
Per l’immissione di dati da parte dell’utente: campi per introdurre valori, campi di selezione per selezionare tra piu’ valori
I risultati vengono passati come parametri ad altre unit
params
Entry Unit
Un campo puo’ essere precaricato con valori (es. bruce, springsteen, the boss)
Un campo di selezione deve essere precaricato con una lista di valori tra cui l’utente ne sceglie uno
EntryUnitS1 S2 S3PersonField
AddrFieldArtist
FirstName PF.S1 LastName PF.S2 NickName PF.S3
SISR-MODWEBMLSISR-MODWEBML - - 1818 - -
IndexUnitIndexUnit
Pubblica una lista di elementi (insieme di oggetti)(insieme di oggetti)Contenitore: una entità, più (opzionalmente) un selettore
Parametri di input: quelli richiesti per la computazione del selettore
Parametri in output:
OID dell’oggetto selezionato dall’utente (più tutti i suoi attributi)
Entità[Selettore(parametri)]
parametri OIDSel
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 1919 - -
IndexUnit nella pagina IndexUnit nella pagina ProductsProducts
L’utente può accedere ai singoli prodotti cliccando su uno degli elementi della lista
CASO DI STUDIO
Product
OIDSelAll
Products
SISR-MODWEBMLSISR-MODWEBML - - 2020 - -
MultichoiceUnitMultichoiceUnit
Pubblica indici di elementi (insieme di oggetti)(insieme di oggetti) tra cui l’utente seleziona uno o più elementi (tramite checkbox)Contenitore: una entità, più (opzionalmente) selettore e pre-selettoreParametri in input: quelli richiesti per la computazione dei selettoriParametri in output: OID degli oggetti marcati dall’utente (più tutti i suoi attributi)
Entità[Selettore(parametri)]
[Preselettore(parametri)]
parametri {OIDSel}
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 2121 - -
HierarchicalUnitHierarchicalUnit
Pubblica una lista di oggetti (appartenenti a più entità) organizzati gerarchicamente in base a relazioni definite tra le entitàContenitore: un insieme di entità e le relazioni che le associano, più (opzionalmente) selettori ad ogni livelloParametri in input: quelli richiesti dalla computazione dei selettoriParametri in output: OID dell’oggetto selezionato dall’utente (più tutti i suoi attributi)
{OIDSel}
Entita1[Selettore1(Parametri)
NEST Entita2 [Entita1_Entita2]
[Selettore2(Parametri)]
Parametri
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 2222 - -
HierarchicalUnit: EsempioHierarchicalUnit: Esempio
•Tables•Kitchen
•Korla KJD54•Chairs
•Stools•Roy LKR34•OddVar JSQ87
•Office•Jess RLT45
CategoriaNEST SottoCategoria
[Categoria_SottoCategoria]NEST Prodotto
[SottoCategoria_Prodotto]
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 2323 - -
HierarchicalUnit: EsempioHierarchicalUnit: Esempio
•Tables •Kitchen
•Korla KJD54•Chairs
•Stools•Roy LKR34•OddVar JSQ87
•Office•Jess RLT45
MODELLO DI IPERTESTO
Categoria
SottoCategoria
Prodotto
SISR-MODWEBMLSISR-MODWEBML - - 2424 - -
HierarchicalUnit: link uscentiHierarchicalUnit: link uscenti
Ogni link è visualizzato come un ancora ad un opportuno livello della gerarchia
Il livello a cui il link è posizionato dipende dal tipo dei parametri sul link
•Tables link a•Kitchen link b
•Korla KJD54 link c•Chairs link a
•Stools link b•Roy LKR34 link c•OddVar JSQ87 link c
•Office link b•Jess RLT45 link c
Cat
Sotto_Cat
Prod
link a
link b
link c
CategoriaSottoCategoria
[Categoria_SottoCategoria]Prodotto
[SottoCategoria_Prodotto]
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 2525 - -
ScrollerUnitScrollerUnit
Permette di definire il browsing in un insieme di oggetti:
Visualizza link al primo, al precedente, al prossimo, all’ultimo oggetto nell’insieme
Block factor = numero di oggetti visualizzati in blocco in un passo di navigazione
Contenitore: una entità, più (opzionalmente) un selettoreParametri in input: quelli richiesti per la computazione dei selettori Parametri in output: l’insieme di OID del blocco di oggetti corrente
Entità[Selettore(parametri)]
parametri {OIDSel}
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 2626 - -
Link contestualiLink contestuali
• Connessioni orientate tra due unit (sorgente e destinazione), la cui presentazione corrisponde ad ancore o bottoni “submit”
• Permettono all’utente di navigare tra nodi diversi dell’ipertesto
• Trasportano informazione di contesto
• Attivano una computazione (effetto collaterale)
AutoreAutore
Sorgente Destinazione
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 2727 - -
Parametri sui linkParametri sui link
Libro[Autore_Libro(A)]
• Il contesto è trasportato dai link attraverso l’uso di parametri definiti sui link
• Un parametro sui link ha un Nome.
• Il contenuto del parametro è un attributo della unit sorgente del link
Autore[OID=…]
A:Autore.OID
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 2828 - -
Parametri sui link: defaultParametri sui link: default
Autore[OID= …]
Libro[Autore_Libro]
• Quando è possible, i parametri sui link sono inferiti dal diagramma, senza bisogno di essere specificati esplicitamente
• I diagrammi acquistano maggiore chiarezza
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 2929 - -
Selettori: Default Selettori: Default
• Quando possibile, i selettori e i loro parametri sono inferiti dal diagramma, senza dover essere specificati esplicitamente
Autore Libro[Autore_Libro]
Libro
MODELLO DI IPERTESTO
Esempio
Author first name:James last name:Joyce photo:
Book Title:Ulysses Price:23$ Cover:
Books of YYY
•Ulysses•The Dubliners•Portrait...
SISR-MODWEBMLSISR-MODWEBML - - 3131 - -
Link automaticiLink automatici
• Passano il contesto alla target unit immediatamente dopo la selezione, senza la necessità di un intevento dell’utente
AutoreAutore
sorgente destinazione
MODELLO DI IPERTESTO
A
SISR-MODWEBMLSISR-MODWEBML - - 3232 - -
Link di trasportoLink di trasporto
AutoreLibro
[autore_libro]
• Un link di trasporto passa il contesto alla unit di destinazione immediatamente dopo la visualizzazione della unit sorgente, senza la necessità dell’intevento dell’utente
• L’utente non può cambiare il contesto trasportato dal link
Sorgente Destinazione
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 3333 - -
Non trasportano alcuna informazione di contesto
L’utente naviga da una pagina all’altra per mezzo di un’ ancora (es: >>Indice dei Libri)
Link non contestualiLink non contestuali
HomePage Indice dei libri
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 3434 - -
PaginePagine
Una pagina è un contenitore di una o più unità di contenuto mostrate all’utente contemporaneamente
MODELLO DI IPERTESTO
Home Page Indice dei LibriLogin
SISR-MODWEBMLSISR-MODWEBML - - 3535 - -
Home PageHome Page
É la pagina principale di un sitoLa prima a cui l’utente accede
Ogni site view deve contenere un pagina marcata come “Home”
HomePage H Indice dei libri
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 3636 - -
Pagine LandmarkPagine Landmark
Pagine globalmente visibili. L’utente può saltare ad esse da ogni altra pagina della site viewEquivalenti a link non contextuali definiti da ogni altra pagina della site view verso la pagina landmark
Autori
Indice dei Libri
L
InfoLibro
Negozi
MODELLO DI IPERTESTO
AutoriInfoLibri
NegoziIndice dei Libri
SISR-MODWEBMLSISR-MODWEBML - - 3737 - -
AreeAree
Insiemi di pagine logicamente omogeneeSezioni di un portale: Sport, Musica, Tecnologia, …
Le aree possono contenere sotto-aree annidate
Ogni area può includere una pagina (o una sottoarea) di default
Area
MODELLO DI IPERTESTO
CatalogoLibri
Indice dei Libri
D
InfoLibriHomePage
Pagina1 Pagina2
SISR-MODWEBMLSISR-MODWEBML - - 3838 - -
Site ViewSite View
Un insieme di pagine e/o aree che forniscono una vista coerente del sito
Sullo stesso schema dei dati è possibile definire diverse site view
Necessità di pubblicare ipertesti diversi per diversi tipi di utenti o per diversi tipi di dispositivi di output
Es.:Site view pubblica: accesso concesso ad ogni utente
Site view private: accesso protetto tramite password
MODELLO DI IPERTESTO
SISR-MODWEBMLSISR-MODWEBML - - 3939 - -
Esempio Modellazione delle site viewEsempio Modellazione delle site view
Due site view sullo stesso schema dei datiCustomer: pubblica, per i clienti
Admin: privata, per amministratori e gestori di contenuto
CASO DI STUDIO
SISR-MODWEBMLSISR-MODWEBML - - 4040 - -
Esempio SEsempio Site ite VView iew CustomerCustomer
Scopo: permettere al cliente di accedere ai contenuti pubblicati tramite il sito
Struttura:Due aree principali: Products e Offers
Due pagine Landmark: HomePage, Store
CustomerProducts Area
Stores
Offers Area
HomePage
CASO DI STUDIO
LL
H
LL
SISR-MODWEBMLSISR-MODWEBML - - 4141 - -
Offers AreaProducts Area
Esempio Organizzazione delle AreeEsempio Organizzazione delle Aree
quali sono le pagine principali?
Products Combinations
quali altre pagine sono necessarie?
Images
Search CombinationBy Price
CASO DI STUDIO
ProductSearch
ByCategoryD L
L
L L D
SISR-MODWEBMLSISR-MODWEBML - - 4242 - -
Esempio Composizione della Esempio Composizione della Home PageHome PageCASO DI STUDIO
SISR-MODWEBMLSISR-MODWEBML - - 4343 - -
Esempio Pagina dei Esempio Pagina dei ProdottiProdotti
CASO DI STUDIO