SISR-MODWEBML Modellazione concettuale di applicazioni Web
SISR-MODWEBML Modellazione concettuale di applicazioni Web Metodologia di sviluppo per applicazioni Web data- intensive WebML (Web Modeling Language) – Modellazione del contenuto informativo Modellazione dell’ipertesto WebRatio: un tool di sviluppo per WebML –
SISR-MODWEBML Alcuni 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’ipertesto Supportato da uno strumento CASE commerciale ( ) Estensione di UML per il Web (Jim Conallen, “Buidling Web Applications with UML”, Addison Wesley, 2000)
SISR-MODWEBML WebML – concetti di base Applicazione Web= Dati + Ipertesto + Presentazione struttura del contenuto entità, relazioni composizione + navigazione + personalizzazione unità, pagine, link, site view presentazione stili
SISR-MODWEBML Modello 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’applicazione Attributo: 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-MODWEBML 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-MODWEBML Modello di Ipertesto: obiettivi 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-MODWEBML 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: Domande Tipiche MODELLO DI IPERTESTO
SISR-MODWEBML Unità 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 INDEXUNITMULTIDATAUNIT ENTRYUNIT SCROLLERUNIT entity [Selector] Unità di Contenuto di Base entity [Selector] MULTICHOICE entity [Selector] HIERARCHICAL entity [Selector]
DATAUNIT INDEXUNITMULTIDATAUNIT 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 Fraternali 2. Systems Tannenbaum
SISR-MODWEBML Input e output delle unit Ogni unit può avere parametri di input e output I parametri in input sono necessari per calcolare la unit Parametri 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-MODWEBML DataUnit UNA SINGOLA ISTANZA Pubblica informazione circa UNA 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-MODWEBML Esempio di DataUnit Informazione su un prodotto specifico CASO DI STUDIO Product Details
SISR-MODWEBML MultiDataUnit (insieme di oggetti) Pubblica un insieme di istanze di una entità (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 EntryUnit S1S2 S3 PersonField AddrField Artist FirstName PF.S1 LastName PF.S2 NickName PF.S3
SISR-MODWEBML IndexUnit (insieme di oggetti) Pubblica una lista di elementi (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-MODWEBML IndexUnit nella pagina Products L’utente può accedere ai singoli prodotti cliccando su uno degli elementi della lista CASO DI STUDIO Product OIDSel All Products
SISR-MODWEBML MultichoiceUnit (insieme di oggetti) Pubblica indici di elementi (insieme di oggetti) tra cui l’utente seleziona uno o più elementi (tramite checkbox) Contenitore: una entità, più (opzionalmente) selettore e pre- selettore Parametri in input: quelli richiesti per la computazione dei selettori Parametri in output: OID degli oggetti marcati dall’utente (più tutti i suoi attributi) Entità [Selettore(parametri)] [Preselettore(parametri)] parametri {OIDSel} MODELLO DI IPERTESTO
SISR-MODWEBML HierarchicalUnit 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 livello Parametri in input: quelli richiesti dalla computazione dei selettori Parametri 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-MODWEBML HierarchicalUnit: Esempio Tables Kitchen Korla KJD54 Chairs Stools Roy LKR34 OddVar JSQ87 Office Jess RLT45 Categoria NEST SottoCategoria [Categoria_SottoCategoria] NEST Prodotto [SottoCategoria_Prodotto] MODELLO DI IPERTESTO
SISR-MODWEBML HierarchicalUnit: Esempio Tables Kitchen Korla KJD54 Chairs Stools Roy LKR34 OddVar JSQ87 Office Jess RLT45 MODELLO DI IPERTESTO Categoria SottoCategoria Prodotto
SISR-MODWEBML HierarchicalUnit: 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 Categoria SottoCategoria [Categoria_SottoCategoria] Prodotto [SottoCategoria_Prodotto] MODELLO DI IPERTESTO
SISR-MODWEBML ScrollerUnit 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 selettore Parametri 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-MODWEBML Link 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) Autore SorgenteDestinazione MODELLO DI IPERTESTO
SISR-MODWEBML Parametri 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-MODWEBML Parametri 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-MODWEBML 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-MODWEBML Link automatici Passano il contesto alla target unit immediatamente dopo la selezione, senza la necessità di un intevento dell’utente Autore sorgentedestinazione MODELLO DI IPERTESTO A
SISR-MODWEBML Link di trasporto Autore Libro [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 SorgenteDestinazione MODELLO DI IPERTESTO
SISR-MODWEBML 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 contestuali HomePageIndice dei libri MODELLO DI IPERTESTO
SISR-MODWEBML Pagine Una pagina è un contenitore di una o più unità di contenuto mostrate all’utente contemporaneamente MODELLO DI IPERTESTO Home Page Indice dei Libri Login
SISR-MODWEBML Home Page É la pagina principale di un sito La 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-MODWEBML Pagine Landmark Pagine globalmente visibili. L’utente può saltare ad esse da ogni altra pagina della site view Equivalenti 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 Autori InfoLibri Negozi Indice dei Libri
SISR-MODWEBML Aree Insiemi di pagine logicamente omogenee Sezioni 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 InfoLibri HomePage Pagina1Pagina2
SISR-MODWEBML Site 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-MODWEBML Esempio Modellazione delle site view Due site view sullo stesso schema dei dati Customer: pubblica, per i clienti Admin: privata, per amministratori e gestori di contenuto CASO DI STUDIO
SISR-MODWEBML Esempio Site View Customer Scopo: permettere al cliente di accedere ai contenuti pubblicati tramite il sito Struttura: Due aree principali: Products e Offers Due pagine Landmark: HomePage, Store Customer Products Area Stores Offers Area HomePage CASO DI STUDIO L L H L L
SISR-MODWEBML Offers AreaProducts Area Esempio Organizzazione delle Aree quali sono le pagine principali? ProductsCombinations quali altre pagine sono necessarie? Images Search Combination By Price CASO DI STUDIO Product Search ByCategory D L L L L D
SISR-MODWEBML Esempio Composizione della Home Page CASO DI STUDIO
SISR-MODWEBML Esempio Pagina dei Prodotti CASO DI STUDIO