Progettazione dell'ipertesto La progettazione dell'ipertesto produce la specifica delle site view e le operazioni di manipolazione dei dati. Le sorgenti di input della progettazione dell'ipertesto sono: lo schema concettuale dei dati, ossia la struttura dei dati i requisiti funzionali, che indicano le funzionalità che devono essere fornite dall'applicazione le mappe delle site view, che delineano l'organizzazione degli ipertesti che devono essere offerti agli utenti L'output della progettazione è una specifica WebML, una vista ad alto livello delle interfacce dell'applicazione. Tale specifica è indipendente dai dettagli implementativi ma è una guida per l'implementazione. La progettazione dell'ipertesto procede in modalità top-down, dall'alto verso il basso attraverso raffinamenti successivi dalla progettazione preliminare a quella dettagliata. PROG -2- Progettazione ipertesto Requisiti funzionali Schema dei dati Mappa del sito Progettazione preliminare site view Identificazione delle aree Progettazione dettagliata site view Specifica della visibilità delle aree Identificazione delle pagine Specifica dei contenuti delle aree Specifica della visibilità delle pagine Specifica WebML delle pagine Siteview1 Schema WebML delle site view Area1 Pagina accesso D Indice Accesso Pagina core Core L Core PROG -3- Progettazione preliminare La progettazione preliminare: definisce uno schema della site view ad alto livello, privo di dettagli per le aree nelle mappe delle site view viene definito un livello di visibilità: vengono definite come aree di default, landmark o interne per ogni area viene specificato il contenuto specificando quali elementi dello schema dei dati popoleranno l'area PROG -4- Identificazione delle aree La prima attività è l'identificazione delle aree: Input: requisiti funzionali mappe delle site view Output: la lista delle aree che devono essere sviluppate per le varie site view una prima rappresentazione in WebML di ogni site view PROG -5- Identificazione delle aree (2) SiteView1 AreaX AreaY AreaZ AreaK PROG -6- Specifica visibilità aree La visibilità delle aree viene stabilita secondo le seguenti definizioni: Area di default: indica che vi si accede “per default” quando si entra nella site view che la include. Tipicamente contiene la home page della site view. Area landmark: indica che l'area è accessibile globalmente da ogni altra area della site view. Di solito questa proprietà si traduce in una barra di navigazione che contiene i link a tutte le pagine di default delle aree landmark. Area Interna: corrisponde ad una porzione di ipertesto che può essere raggiunta solo tramite link espliciti posizionati in altre pagine. PROG -7- Specifica visibilità aree (2) SiteView1 AreaX D AreaY L AreaZ AreaK L PROG -8- Specifica del contenuto L'ultimo passo della progettazione è la specifica del contenuto associato ad ogni area. Il contenuto di un'area è espresso in termini di frammenti di ipertesto, che sono classificati come: Ipertesti core: pubblicano il contenuto di entità specifiche o di gruppi di entità che rappresentano gli oggetti principali (core) dell'applicazione. Ipertesti di accesso: supportano varie forme di accesso ai concetti core. Ipertesti di interconnessione: collegano concetti core. PROG -9- Specifica del contenuto (2) Ipertesti di personalizzazione: sono utilizzati per definire meccanismi di personalizzazione (es. autenticazione utente ogestione contenuti personalizzati). Ipertesti per la gestione dei contenuti: specificano le operazioni (es. creazione, cancellazione e modifica di entità o relazioni). PROG - 10 - Specifica del contenuto (3) I frammenti di ipertesto dell'area sono rappresentati con una notazione testuale: Core(EntitàCore, Componente1, …, ComponenteN) viene pubblicata l'EntitàCore e le sue entità componenti. Accesso(EntitàCore,EntitàAccesso1,…,EntitàAccessoN) indica l'accesso ad una o più istanze di EntitàCore, tramite una selezione per passi successivi per mezzo delle entità di categorizzazione (EntitàAccesso1...). Quando le entità di categorizzazione non sono specificate, il frammento di ipertesto deve permettere l'accesso diretto all'entità core per mezzo di meccanismi di ricerca. Interconnessione(Ruolo1,...,RuoloN) indica la navigazione dalle istanze di Entità1 alle istanze di EntitàN, dove Entità1 ed EntitàN sono entità core connesse da una sequenza di ruoli di relazione Ruolo1, …, RuoloN PROG - 11 - Specifica del contenuto (4) Crea&Connetti(Entità1,Ruolo1,…,RuoloN) indica la creazione di una nuova istanza di Entità1 ed eventualmente la sua connessione ad N altre entità attraverso i ruoli di relazione Ruolo1,...,RuoloN. Modifica(Entità1) indica la modifica di istanze di Entità1. Elimina(Entità1) indica la cancellazione di istanze di Entità1. Connetti(Entità1),Disconnetti(Entità1) indicano la creazione e la cancellazione di istanze del ruolo di relazione Ruolo1. Set(InformazioneContesto) indica l'inizializzazione di parametri globali (tipicamente un attributo), che è necessario rendere disponibili a tutte le pagine della site view. PROG - 12 - Specifica contenuto di un'area - esempio Esempio di specifica dei contenuti per un'area dedicata alla creazione, cancellazione e modifica di notizie. Area Notizie_GestioneContenuti Accesso (Notizia, CategoriaNotizie) Cancella (Notizia) Modifica (Notizia) Crea&Connetti (Notizia, Notizia_CategoriaNotizie) Set (CategoriaNotizie) PROG - 13 - Acer-Euro: progettazione ipertesto Analizziamo in dettaglio la progettazione dell'ipertesto per una porzione limitata dell'applicazione Acer-Euro, cioè la site view per utenti esterni. La site view per utenti esterni pubblica contenuti sui prodotti e le notizie di interesse per gli utenti di una certa nazione. PROG - 14 - Acer-Euro: progetto preliminare site view Site view utenti esterni Area home Set (Nazione) Accesso (Notizia, CategoriaNotizia) Accesso (Notizia, NotiziaEvidenziata) Accesso (Prodotto, GruppoProdotto) D Area novità Accesso (Notizia, CategoriaNotizia) Core (Notizia) Interconnessione (Notizia_Prodotto) L L Area prodotti Accesso (Prodotto, GruppoProdotto, MarchioProdotto) Core (Prodotto, Vantaggio, Riconoscimento, ConfigurazioneProdotto, Logo, SpecificaTecnica) L PROG - 15 - Progettazione dettagliata La progettazione dettagliata: è un raffinamento della progettazione preliminare gli schemi grezzi delle site view sono revisionati fino a farli diventare una specifica WebML si seguono i seguenti passi: identificazione delle pagine specifica della visibilità delle pagine specifica del contenuto delle pagine PROG - 16 - Identificazione delle pagine L'identificazione delle pagine riguarda la suddivisione di un'area in pagine. Ad ogni pagina viene associata una porzione dei contenuti e delle funzioni dell'area che la contiene. Nella scelta dei contenuti si cerca di ottimizzare l'usabilità e l'efficacia dell'ipertesto: vengono uniti contenuti e funzioni con un alto grado di coesione vengono separati contenuti e funzioni poco correlati PROG - 17 - Visibilità di pagina La definizione della visibilità di pagina consiste nel marcare ogni pagina come: home page: viene presentata all'utente quando accede ad una site view, è la pagina con i contenuti e i servizi più importanti della site view o che favoriscono l'accesso ai contenuti di altre pagine pagina di default: è la pagina presentata all'utente quando entra in un'area. È la pagina più importante dell'area che fornisce accesso ai contenuti ed alle funzioni per cui l'area è stata definita pagina landmark: è raggiungibile da tutte le altre pagine del modulo in cui è contenuta (siteview o area), quindi ogni altra pagina del modulo ha un link verso la pagina landmark. Fornisce contenuti o servizi frequentemente usati dall'utente pagina interna: è una pagina che non rientra nei tipi precedenti. Presenta contenuti secondari presentati dopo la visione di altri contenuti o rappresenta passi intermedi di navigazione PROG - 19 - Visibilità di pagina - esempio Area Notizie_GestioneContenuti Accesso&CancellazioneNotizie Accesso (Notizia, CategoriaNotizie) Set (CategoriaNotizie) Cancella (Notizia) D L ModificaNotizia Modifica (Notizia) CreazioneNotizia Crea&Connetti (Notizia, CategoriaNotizie) PROG - 20 - Specifica delle pagine La specifica delle pagine consiste nella definizione dettagliata di unit e link necessari per fornire i contenuti e i servizi associati alle pagine. Vengono sfruttati i sotto-schemi di ipertesto definiti durante la progettazione dei dati. Sotto-schema core: viene utilizzato nell'area dedicata a presentare o gestire il contenuto dell'oggetto core su cui lo schema è centrato. Sotto-schema di interconnessione: si traduce in frammenti di ipertesto distribuiti all'interno delle aree destinate alla pubblicazione o gestione degli oggetti core connessi dal sotto-schema. I frammenti rendono possibile la navigazione tra aree. Sotto-schema di accesso: si traduce in frammenti di ipertesto distribuiti tra l'area di default della site view e l'area per la pubblicazione e la gestione dell'oggetto core su cui è definito l'accesso. Tali frammenti permettono l'accesso all'oggetto core attraverso passi successivi di selezione da pagine di alto livello. Sotto-schema di personalizzazione: si traduce in vari frammenti distribuiti in diverse aree, ad es. pagine di login/logout, pagine di modifica dati o contenuti personali. PROG - 21 - Acer-Euro: schema di ipertesto dettagliato Home Dalle pagine TitpiNotizie, DettagliNotizie, Gruppi, Marchi, Prodotto Home H GruppiProdotto CambiaNazione GruppoProdotto (Nazione_GruppoProdotto) Nazione GetNazione NazioneCorr SetNazione ParamNazione ParamNazione NotizieEvidenziate Notizia (Nazione_NotiziaEvidenziata) Nazione CategorieNotizie CategoriaNotizie (Nazione_CategoriaNotizie) PROG L - 22 - Acer-Euro: Home page sito britannico PROG - 23 - Identificazione e visibilità area Novità L'area Novità pubblica contenuti riguardo le notizie raggruppandole in base ad alcune categorie. Area Novità TitoliNotizie Accesso (Notizia, CategoriaNotizie) DettagliNotizia D Accesso (Notizia, CategoriaNotizie) Core (Notizia) Interconnessione (Notizia_Prodotto) L PROG - 24 - Specifica WebML pagina TitoliNotizie TitoliNotizie alla pagina Home D CambiaNazione NazioneCorr Nazione Nazione GetNazione ParamNazione alla pagina DettagliNotizia CategorieNotizie Categoria TitoliNotizie CategoriaNotizie (Nazione_CategoriaNotizie) CategoriaNotizie Notizia (CategoriaNotizie_Notizia) PROG L - 25 - Acer-Euro: pagina TitoliNotizie PROG - 26 - Specifica WebML pagina DettagliNotizia DettagliNotizia alla pagina Home alla pagina TitoliNotizie CambiaNazione NazioneCorr Nazione Nazione GetNazione ParamNazione CategorieNotizie NotiziaSelezionata ProdottiCorrelati Notizia Prodotto (Notizia_Prodotto) All'area Prodotti CategoriaNotizie (Nazione_CategoriaNotizie) dalla pagina TitoliNotizie PROG - 27 - Acer-Euro: pagina DettagliNotizia PROG - 28 - Identificazione e visibilità area Prodotti Area Prodotti Gruppi Marchi Accesso (Prodotto, GruppoProdotto) D Accesso (Prodotto, GruppoProdotto, MarchioProdotto) L Prodotto Accesso (Prodotto, GruppoProdotto, MarchioProdotto) Core (Prodotto, Vantaggio, Riconoscimento, ConfigurazioneProdotto, Logo) SpecificheTecniche Accesso (Prodotto, GruppoProdotto, MarchioProdotto) Core (Prodotto, SpecificaTecnica) PROG - 29 - Schema WebML pagina Gruppi Gruppi D NazioneCorr dalla pagina Marchi GetNazione ParamNazione alla pagina Home Nazione CambiaNazione GruppiProdotto Nazione GruppoProdotto (Nazione_GruppoProdotto) alla pagina Marchi L PROG - 30 - Acer-Euro: pagina Gruppi PROG - 31 - Schema WebML pagina Marchi Marchi CambiaNazione NazioneCorr GetNazione alla pagina Home SetGroup Nazione ParamNazione GruppiProdotto Nazione GruppoProdotto GroupParam dalla pagina Gruppi GruppoProdotto (Nazione_GruppoProdotto) GruppoProdotto ProdottiCompleto alla pagina Prodotto ProdottiBreve Prodotto.OID Prodotto.OID MarchioProdotto MarchioProdotto (GruppoProdotto_MarchioProdotto) (GruppoProdotto_MarchioProdotto) NEST Prodotto NEST Prodotto alla pagina Prodotto (MarchioProdotto_Prodotto) (MarchioProdotto_Prodotto) PROG - 32 - Acer-Euro: pagina Marchi PROG - 33 - Schema WebML pagina Prodotto alla pagina Home Prodotto alla pagina Marchi NazioneCorr Riconoscimenti CambiaNazione GruppoProdotto Nazione GruppoProdotto (Nazione_GruppoProdotto) GetNazione Riconoscimento (Prodotto_Riconoscimento) Nazione Configurazioni Prodotto ParamNazione dall'indce ProdottiCompleto nella pagina Marchi ConfigurazioneProdotto (Prodotto_ConfigurazioneProdotto) Prodotto.OID Prodotto GerarchiaProdotti Loghi Vantaggi Logo (Prodotto_Logo) Vantaggio (Prodotto_Vantaggio) GetGroup dall'indce ProdottiBreve nella pagina Marchi GroupParam MarchioProdotto (GruppoProdotto_MarchioProdotto) NEST Prodotto (MarchioProdotto_Prodotto) alla pagina SpecificheTecniche Prodotto.OID PROG - 34 - Acer-Euro: pagina Prodotto PROG - 35 -