UML per il Web: Approccio WEBML
-
Upload
henry-muccini -
Category
Education
-
view
803 -
download
9
description
Transcript of UML per il Web: Approccio WEBML
WebMLWebMLModellazione concettuale Modellazione concettuale di applicazioni Webdi applicazioni Web
http://www.webml.org
Master in Web
TechnologyCorso di: Modellazione UML per il WebDocente: Henry MucciniVIII Edizione 2012/2013Dipartimento di Ingegneria e Scienze dell’Informazione e MatematicaUniversità degli Studi dell’Aquila
Copyright
» Il materiale presentato nel seguito consiste in una rielaborazione delle slide in italiano ed inglese disponibile sul sito www.webml.org
» Si ringraziano gli autori di WebML ed il Politecnico di Milano per aver messo a
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications2 http://www.webml.org
disposizione tale materiale
Henry Muccini
Copyright © Politecnico di Milano
March 2003
Nome Città Nazione Tipo
A2A SPA Milano Italy End User
ACER Europe Lainate (MI) Italy End User
Autostrade S.p.A. Firenze Italy End User
Cim Italia Zingonia (BG) Italy End User
Cross Factor Milano Italy End User
Eldor Corporation Orsenigo (CO) Italy End User
ENEL Roma Italy End User
Forus - Electa Milano Italy End User
Industria Chimica
Reggiana
Reggio Emilia Italy End User
Locat SpA Milano Italy End User
Prague Security Centre Prague Czech
Republic
End User
Provincia di Milano Milano Italy End User
Senato della Rebubblica Roma Italy End User
Atena Informatica Cermenate (CO) Italy Software House
Catharsys Consulting
Group
Bruxelles Belgium Software House
Data Progress Vimodrone Italy Software House
I-Tech Web Porto Torres (SS) Italy Software House
Pantea s.r.l. Navacchio di Pisa Italy Software House
ROSEN Livorno Italy Software House
RTT Solutions Cinisello Balsamo
(MI)
Italy Software House
Softlabs Modena Italy Software House
Substantial Roma Italy Software House
Zel Informatica Milano Italy Software House
DiXtreme Milano Italy System
Integrator
DS Group Milano Italy System
Integrator
Eustema Roma Italy System
Integrator
Gap It Udine Italy System
Integrator
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications3 http://www.webml.org
Data Progress Vimodrone Italy Software House
Edith Software Vanzaghello Italy Software House
E-tek srl Trivolzio (PV) Italy Software House
Eutopia srl Taranto Italy Software House
GD Informatica Milano Italy Software House
Graficad Milano Italy Software House
Homeria Open Solutions Caceres Spain Software House
ItalSoft Sistemi S.r.l. Milano Italy Software House
Integrator
Pride Group Milano Italy System
Integrator
Ra Computer Milano Italy System
Integrator
SESA Roma Italy System
Integrator
SIA - SSB Milano Italy System
Integrator
SNT Technologies Carpi (MO) Italy System
Integrator
STEP Roma Italy System
Integrator
L3S Research Center Hannover Germany System
Integrator
Si veda anche: http://www.webratio.com/portal/contentPage/it/I%20nostri%20clienti
www.webml.org
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications4 http://www.webml.org
Modellazione in WebML
» WebML fornisce un approccio strutturato per il design di applicazioni Web data-intensive
» Fornisce un insieme integrato di modelli per la produzione di applicativi Web ad alta qualita’
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications5 http://www.webml.org
produzione di applicativi Web ad alta qualita’
» 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
Applicazioni Web data-intensive» Sistemi per il Web, il cui scopo principale è gestire e pubblicare
grandi quantità di dati» WebML non e’ l’approccio adatto per:
> Small Web sites (Homepages, …)> Static Web sites
Esempi:» Commercio: cataloghi elettronici, e-mall, aste elettroniche, ...
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications6 http://www.webml.org
» Commercio: cataloghi elettronici, e-mall, aste elettroniche, ... » Contenuto: quotidiani online, biblioteche elettroniche, siti
istituzionali ...» Servizi: e-banking, prenotazioni, monitoraggio degli ordini, ...» Comunità: portali tematici, forum, ...» Contesto: portali di ricerca, directories,...
Tutte gestiscono e pubblicano grandi quantità di dati
Alcuni modelli concettuali»Prime proposte per la modellazione di applicazioni ipermediali (Communication of ACM, August 1995)
> HDM (1993)
> OO-HDM (1995)
> RMM (1995)
»Proposte successive, per la modellazione di applicazioni Web
> ARANEUS (1998)
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications7 http://www.webml.org
> 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 (http://www.webratio.com)
The WebML models
» Models:> Structure Model:
- Data organization
- Derivation: redundant data definition
> Hyptertext Model:
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications8 http://www.webml.org
> Hyptertext Model:- Composition: definition of site pages as set of subpages and
elementary publishing units
- Navigation: definition of links between pages and between units
> Presentation: - positioning of the units in the page and definition of graphical
appearance
WebML – concetti di baseApplicazione Web=
Dati + Ipertesto + Presentazione
entità,relazioni
unità, pagine, link, site view stili
Structure
ModelHypertext
Model
Presentation
Model
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications9 http://www.webml.org
struttura del contenuto
relazioni
composizione + navigazione + personalizzazione
presentazione
Structure Model (1)
» Q: what are the objects published in the site and how they are related?
» A:> Entity: an object type in the application domain
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications10http://www.webml.org
> Attribute: scalar property of an entity
> Relationship: A connection between entities
> IS-A hierarchy: classification and grouping
» Compatible with Entity-Relationship and UML class diagrams
Structure Model (2)
» Simplified Entity-Relationship model> Binary relationships between entities
> IS-A hierarchies
> Simple typed Author Genre
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications11http://www.webml.org
> Simple typedattributes in entities
> Derivation model can be applied forredundant data
Book
Author Genre
BestSeller
Derivation Model
» Redundant data can be easily specified using a WebML-OQL (Object Query Language).
» E.g.:> Author.BooksNumber = count(self.Author2Book)
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications12http://www.webml.org
> Author.BooksNumber = count(self.Author2Book)
> BestSeller := Book where Book.Sales > 50,000
BookAuthor
BestSeller
•Q1: what information is published in the
hypertext nodes?
•Q2: how are the hypertext nodes connected?
•Q3: how is the hypertext divided into pages
served to the user?
Hypertext Model
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications13http://www.webml.org
served to the user?
•A1: content units (Composition)
•A2: links (Navigation)•A3: pages (Composition)
DATAUNIT
A1. Content Units examples
To publish information
about A SINGLE object
(e.g. AuthorDetail)
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications14http://www.webml.org
INDEXUNIT
content
content
To publish a list of objects
(e.g. IndexOfAuthors)
DATAUNIT
A1. Content Units examples rendering
Authorfirst name:XXX
last name:YYY
photo:
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications15http://www.webml.org
INDEXUNITIndex of Authors
•S. Ceri
•P. Fraternali
•O.Versand
Author
Author
A2. Navigation Model: Links
entity: Book
AuthorID is transported
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications16http://www.webml.org
entity:author
Book[ author2book ]
• Semantics of a link:
1. Moving from one place to another
2. Transporting information from one place to
another (navigation context)
3. Activating a computation (side effect)
A2. Types of links
» Contextual links> Between units
> Context transported
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications17http://www.webml.org
» Non-contextual links> Between pages
> No context transported
Voyages Books
A3. Composition: Pages
A Page is a structured container of units and links
> Possibly structured in and/or sub-pages
> Abstraction of screen, frame, card, deck...
> Permits one to cluster related information for more efficient communication
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications18http://www.webml.org
E.g.:
AuthorAuthor
The index of
authors and
the selected
author are
shown
together in the
same page
Presentation Model
» Presentation dealt with along two lines:
> Gallery of default presentation styles applicableto site views or single pages (with elementary unitpositioning on a grid)
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications21http://www.webml.org
positioning on a grid)- each presentation style is an XSL stylesheet
> Compatibility with best selling tools forpresentation editing, for advanced page design
- E.g., WebML extensions for Dreamweaver 3 & 4
WebRatioSite Development Studio
Functionalities:» Structure model design» Data derivation (Derivation Wizard)» Hypertext model design (siteviews)
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications22http://www.webml.org
» Hypertext model design (siteviews)» Consistency checks (warnings)» Structure Mapping onto a datasource» Elementary units positioning in the pages» Automatic web site generation with default
presentation styles
Structure modelling
Entity
Attribute
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications23http://www.webml.org
ISA hierarchy
Relationship
Hypertext modelling
Allowed
operations:
Siteviews
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications24http://www.webml.org
» New siteview creation
» Add/remove pages, units, links
» Edit elements properties (panel)
» Cut&paste
Operation units
Links
Page/alternative
WebML units
Modello dei Dati in WebML (Structure Model)
http://www.webml.org
Master in Web
TechnologyCorso di: Modellazione UML per il WebDocente: Henry MucciniVIII Edizione 2012/2013Dipartimento di Ingegneria e Scienze dell’Informazione e MatematicaUniversità degli Studi dell’Aquila
Copyright
Copyright © Politecnico di Milano
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications26http://www.webml.org
Copyright © Politecnico di Milano
March 2003
Obiettivi
» 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?
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications27http://www.webml.org
» 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
» Compatible con Entity-Relationship e UML class diagrams
Look and FeelMODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications28http://www.webml.org
Notazione grafica
Entità2Entità1
attributo1
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications29http://www.webml.org
SottoEntità
Le Entita’ sono dei box, con il nome dell’entita’ in alto
Gli attributi si trovano nel secondo compartimento
Le relazioni sono rappresentate tramite linee continue tra due box
Gerarchie ISA sono denotate tramite un simbolo di generalizzazione
Ruoli e cardinalità delle relazioni
» Il ruolo di una relazione è una delle due “direzioni” in cui una relazione può essere interpretata
MODELLO DEI DATI
Per ogni ruolo, possono essere specificati vincoli di cardinalità
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications30http://www.webml.org
pubblica
pubblicato_da
LibroAutore
Pubblicazione
0..N 1..N
Attenzione: WebRatio usa notazioni differenti
Attributi composti
» Attributi con una struttura interna (per es., un indirizzo può includere diversi campi)
» Rappresentati per mezzo di una entità e una relazione
» Es.: una persona ha uno o più indirizzi,ognuno formato da numero, via, città, provincia, stato
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications31http://www.webml.org
Indirizzo
ViaNumeroCittàProvinciaStato
Persona 0..N
1..N
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications32http://www.webml.org
Relazioni con attributi
» Rappresentate da una entità centrale e due relazioni
» Es.: il voto preso da uno studente nell’esame di un certo corso
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications33http://www.webml.org
un certo corso
VotoValore:integer
Studente 0..N
1..1
Corso1..1
0..N
Relazioni N-arie
» Relazioni che coinvolgono N entità (N>2)> Es.: la fornitura di componenti ad un dipartimento
da parte di una ditta
» Rappresentabili da una combinazione di entità e N relazioni binarie
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications34http://www.webml.org
N relazioni binarie
Ditta 0..N
1..1
Dipartimento1..1
0..N
Componente
1..10..N
Fornitura
Gerarchie IS-A
» Le sotto-entità ereditano gli attributi e le relazioni di una super entità
» Le sotto-entità possono anche avere proprietà localmente definite
» Le sotto-entità modellano collezioni
Cantante
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications35http://www.webml.org
Cantante
nomecognomebiografia
CantantePop CantanteJazz
strumento
Alcune ipotesi restrittive in WebML:
• Non è permessa l’ereditarietà multipla [vedi su WebRatio]
• E’ possibile definire solo gerarchie esclusive
• Ogni entità può apparire al massimo in una gerarchia
Esempio Catalogo Elettronico della ditta ACME
»ACME: una medio-piccola impresa di mobili, che vende i suoi prodotti attraverso punti vendita sparsi in tutto il mondo
»Necessità di sviluppare un sito Web per pubblicare il catalogo dei suoi prodotti.
CASO DI STUDIO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications36http://www.webml.org
»Il sito deve pubblicare informazioni su:> prodotti
> offerte speciali: combinazioni di prodotti venduti ad un prezzo scontato
> punti vendita
> Ogni prodotto ha una sua scheda tecnica e diverseimmagini
> I prodotti sono raggruppati in categorie
ACME – Schema dei datiCASO DI STUDIO
Product
Code: integer Name: stringPrice: float
Combination
Code: integer Name: stringPrice: floatDescription: textPhoto: image
0:N
1:N
Category
Category: string
1:10:N
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications37http://www.webml.org
Store
Location: stringMap: imageEmail: URLFoto: image
Price: floatDescription: textThumbnail: imageHighlighted: boolean
Photo: imageStartDate: dateEndDate: dateHighlighted: boolean
Tech record
Colors: imageSizes: text
Big image
Description: textPhoto: image
1:10:1
0:N
1:1
1:N
Oggetti derivati
» La derivazione permette di:
> Arricchire il contenuto di un’entità, aggiungendo siaattributi calcolati, sia attributi importati da oggetti
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications38http://www.webml.org
attributi calcolati, sia attributi importati da oggetticorrelati.
> Definire la popolazione di entità o di relazioni, sulla base di alcune proprietà degli oggetti coinvolti.
WebML OQL» La derivazione si specifica scrivendo espressioni
chiamate “query di derivazione”
» WebML OQL (Object Query Language): un linguagigo per esprimere query di derivazione
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications39http://www.webml.org
» Concetti derivabili:> Entità, relazioni, attributi
» Le query di derivazione sono automaticamente trasformate in viste SQL installate nella base di dati
Entità derivate
»La popolazione di Sotto-Entità nelle gerarchie IS-A può essere specificata per mezzo di query OQL
AutoreItaliano
AutoreISA
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications40http://www.webml.org
»Es.: “Un’autore italiano è un autore nato in Italia”»WebML OQL: value = “Autore as A where A.LuogoNascita contains ‘Italia’”
AutoreItaliano
Attributi derivati
» Quattro tipi di attributi derivati:> Attributi costanti
> Attributi Importati
> Attributi Calcolati
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications41http://www.webml.org
> Attributi Aggregati
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications42http://www.webml.org
Lancia WebRatio
Attributi Costanti
DipendentePoli
Affiliazione
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications43http://www.webml.org
Value=“Politecnico di Milano”
Attributi importati
DonnaUomomarito
cognome cognomeAcquisito
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications44http://www.webml.org
cognome cognomeAcquisito
Value=“Self.marito.cognome”
» La variabile Self denota l’entità corrente in cui si vuole definire l’attributo
Attributi calcolati e aggregati
» Prezzo totale dell’ordine come somma dei prezzi delle singole linee d’ordine:
Ordine prezzoTotale
numLineeOrd
DettaglioOrdine_DettaglioprezzoqtaprezzoTotale
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications45http://www.webml.org
singole linee d’ordine:1.prezzoTotale in “Dettaglio” come attributo calcolato:
Self.prezzo * Self.qta
2.prezzoTotale in “Ordine” come attributo aggregato: Sum (Self.Ordine_Dettaglio.prezzoTotale)
» Il numero di linee d’ordine per un certo ordine
Count (Self.Ordine_Dettaglio)
Relazioni Derivate
Le relazioni possono essere derivate in due modi:
» Definendo restrizioni e/o composizioni di relazioni pre-
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications46http://www.webml.org
» Definendo restrizioni e/o composizioni di relazioni pre-esistenti
» Definendo nuove relazioni tra coppie di oggetti in base acondizioni (concatenazione)
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications47http://www.webml.org
Relazioni derivate: restrizione
Restrizione di relazioni pre-esistenti:
LibroAutoreAutore_LibroRecente
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications48http://www.webml.org
Value=“Self.Autore_Libro as L where L.date >
‘01/01/08’”
Autore_Libro
Relazioni derivate: concatenazione
Concatenazione di relazioni:
AutoreLibro Libro_Autore
MODELLO DEI DATI
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications49http://www.webml.org
value=“Self.Capitolo_Libro.Libro_Autore”
Capitolo_Libro
CapitoloCapitolo_Autore
Modello di ipertesto in WebML
http://www.webml.org
Master in Web
TechnologyCorso di: Modellazione UML per il WebDocente: Henry MucciniVIII Edizione 2012/2013Dipartimento di Ingegneria e Scienze dell’Informazione e MatematicaUniversità degli Studi dell’Aquila
Copyright
Copyright © Politecnico di Milano
March 2003
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications51http://www.webml.org
March 2003
Look and Feel
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications52http://www.webml.org
1. Motivazioni e Concetti di Base
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications53http://www.webml.org
1. Motivazioni e Concetti di Base
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
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications54http://www.webml.org
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
• 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?
Modellazione dell’Ipertesto:Domande Tipiche
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications55http://www.webml.org
•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
Unità di contenuto
» Una unita’ di contenuto in WebML è l’elemento atomico per la pubblicazione dell’informazione
» Corrisponde ad una “vista” definita su di un contenitore di oggetti:
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications56http://www.webml.org
> Tutte le istanze di un’entità sorgente
> Le istanze di una entità che soddisfano una condizione di selezione chiamata selettore
unitX
Sorgente
[Selettore]
DATAUNIT INDEXUNIT MULTIDATAUNIT
Sorgente
Unità di Contenuto di Base
Sorgente Sorgente
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications57http://www.webml.org
SCROLLERUNIT
Sorgente
[Selettore]Sorgente
[Selettore]
Sorgente
[Selettore]
Sorgente
[Selettore]
MULTICHOICE
Sorgente
[Selettore]
HIERARCHICAL
Sorgente
[Selettore]
Significato delle unità di contenuto
DATAUNIT
Autorefirst name:XXX
last name:YYY
photo:
MULTIDATAUNIT
Tutti gli Autori
MODELLO DI IPERTESTO
INDEXUNIT
Indice di tutti gli Autori
•S. Ceri
•P. Fraternali
•A.S. Tanenbaum
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications58http://www.webml.org
SCROLLERUNIT
Esplora gli Autori
5/12: vai a
���� �������� ����
1/12
•A.S. Tanenbaum
•O.Versand
MULTICHOICE
Scegli gli Autori
Ceri
Fraternali
Versand
Tanenbaum
HIERARCHICAL
Autori&Libri
1. S. Ceri
Web Technologies
Advanced Databases
2. P. Fraternali
Web Technologies
Input e output delle unita’
unitX
entità[selettore (ParIN)]
ParIN ParOUT
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications59http://www.webml.org
» 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 unitcorrente
2. Unit di Contenuto
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications60http://www.webml.org
2. Unit di Contenuto
DataUnit
» Pubblica informazione circa UNA SINGOLA ISTANZAUNA SINGOLA ISTANZA
Entità
[Selettore(parametri)]
parametri OID
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications61http://www.webml.org
» 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
ACMEEsempio di DataUnit
CASO DI STUDIO
ProductDetails
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications62http://www.webml.org
Informazione su di un prodotto specifico
Product
MultiDataUnit
• Presenta istanze multiple di una entità ((insieme di oggettiinsieme di oggetti))
Entità
[Selettore(parametri)]
parametri {OID}
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications63http://www.webml.org
• 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)
IndexUnit
» Pubblica una lista di elementi (insieme di oggetti)(insieme di oggetti)
Entità
[Selettore(parametri)]
parametri OIDSel
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications64http://www.webml.org
» 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)
ACME: IndexUnit nella pagina Products
CASO DI STUDIO
Product
OIDSelAll
Products
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications65http://www.webml.org
L’utente può accedere ai singoli prodotti cliccando su uno degli elementi della lista
MultichoiceUnit
Entità
[Selettore(parametri)]
[Preselettore(parametri)]
parametri {OIDSel}
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications66http://www.webml.org
» 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-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)
HierarchicalUnit{OIDSel}
Entita1
[Selettore1(Parametri)
NEST Entita2
[Entita1_Entita2]
[Selettore2(Parametri)]
Parametri
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications67http://www.webml.org
» 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)
HierarchicalUnit: Esempio
•Tables
•Kitchen•Korla KJD54
•Chairs
•Stools•Roy LKR34
•OddVar JSQ87
Categoria
NEST SottoCategoria
[Categoria_SottoCategoria]
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications68http://www.webml.org
•OddVar JSQ87
•Office•Jess RLT45
[Categoria_SottoCategoria]
NEST Prodotto
[SottoCategoria_Prodotto]
HierarchicalUnit: Esempio
•Tables
•Kitchen•Korla KJD54
•Chairs
•Stools•Roy LKR34
•OddVar JSQ87
•Office
MODELLO DI IPERTESTO
Categoria
SottoCategoria
Prodotto
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications69http://www.webml.org
•Office•Jess RLT45
Prodotto
HierarchicalUnit: link uscenti
•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
Sotto_Cat
link a
link b
link c
Categoria
SottoCategoria
[Categoria_SottoCategoria]
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications70http://www.webml.org
» 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
•Office link b•Jess RLT45 link c
[Categoria_SottoCategoria]
Prodotto
[SottoCategoria_Prodotto]
ScrollerUnit
» Permette di definire il browsing in un insieme di oggetti:
> Visualizza link al primo, al precedente, al prossimo, all’ultimo oggetto nell’insieme
Entità
[Selettore(parametri)]
parametri {OIDSel}
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications71http://www.webml.org
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
3. Link e parametri
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications72http://www.webml.org
3. Link e parametri
Link contestuali
•
AutoreAutore
Sorgente Destinazione
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications73http://www.webml.org
• 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)
Parametri sui link: default
• Quando è possible, i parametri sui link sono inferiti dal diagramma, senza bisogno di essere specificati esplicitamente
• I diagrammi acquistano maggiore chiarezza
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications75http://www.webml.org
Autore[OID= …]
Libro[Autore_Libro]
Selettori: Default
• Quando possibile, i selettori e i loro parametri sono inferiti dal diagramma, senza dover essere specificati esplicitamente
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications76http://www.webml.org
Autore Libro[Autore_Libro]
Libro
4. Pagine, Aree, Site view
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications79http://www.webml.org
4. Pagine, Aree, Site view
Pagine
» Una pagina è un contenitore di una o più unità di contenuto mostrate all’utente contemporaneamente
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications80http://www.webml.org
Home Page Indice dei LibriLogin
Link non contestuali
» Link definiti tra pagine
» Non trasportano alcuna informazione di contesto
HomePage Indice dei libri
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications81http://www.webml.org
» L’utente naviga da una pagina all’altra per mezzo di un’ ancora (es: >>Indice dei Libri)
HomePage Indice dei libri
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”
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications82http://www.webml.org
come “Home”
HomePage H Indice dei libri
Pagine Landmark
Autori
Indice dei Libri
L
InfoLibro
Negozi
MODELLO DI IPERTESTO
AutoriInfoLibri
NegoziIndice dei Libri
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications83http://www.webml.org
» Pagine globalmente visibili. L’utente può saltare ad esse da ogni altra pagina della site view
» Equivalenti a link non contestuali definiti da ogni altra pagina della site view verso la pagina landmark
Lancia WebRatio
ACMEComposizione della Home Page
CASO DI STUDIO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications84http://www.webml.org
ACME Pagina dei Prodotti
CASO DI STUDIO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications85http://www.webml.org
Aree
» Insiemi di pagine logicamente omogenee> Sezioni di un portale: Sport, Musica, Tecnologia, …
» Le aree possono contenere sotto-aree annidate
Area
MODELLO DI IPERTESTO
Pagina1 Pagina2
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications86http://www.webml.org
» Le aree possono contenere sotto-aree annidate
» Ogni area può includere una pagina (o una sottoarea) di “D”efault
CatalogoLibri
Indice dei Libri
D
InfoLibriHomePage
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications87http://www.webml.org Lancia WebRatio
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
MODELLO DI IPERTESTO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications88http://www.webml.org
» 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
ACME 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
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications89http://www.webml.org
ACMESite View Customer
» Scopo: permettere al cliente di accedere ai contenuti pubblicati tramite il sito
» Struttura:> Due aree principali: Products e Offers
> Due pagine Landamark: HomePage, Store
CASO DI STUDIO
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications90http://www.webml.org
> Due pagine Landamark: HomePage, Store
Customer
Products Area
Stores
Offers Area
HomePage
LL
H
LL
Operazioni di Login/ Logout
» Una siteview può contenere una form per consentire login
» Ogni siteview privata dovrebbe consentire logout
Entry Unit
MODEL
Login
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications10
0
http://www.webml.org
» Ogni siteview privata dovrebbe consentire logout
» E’ consentito per un utente il cambio di ruolo durante la navigazione
Logout
ChangeGroupEntry Unit
CurrentUser e CurrentGroup
» WebML fornisce due global parameters predefiniti:> CurrentUser: OID dell’utente corrente
> CurrentGroup: OID del gruppo di appartenenza
MODEL
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications10
1
http://www.webml.org
> CurrentGroup: OID del gruppo di appartenenza dell’utente corrente
» L’utente deve avere fatto login (altrimenti è everyone)
» Le operazioni di Login, Logout e ChangeGroup impostano automaticamente questi due parametri
Pagine annidate» E’ possibile definire pagine annidate (sottopagine)
» Pagine annidate possono essere tra loro:
MODEL
» In AND (presenza contemporanea nella pagina di tutte le sottopagine)
» In OR: Si inserisce un elemento ALTERNATIVEALTERNATIVE, le cui pagine figlie compaionoin mutua esclusione. Una di
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications10
4
http://www.webml.org
ProductPage
Images
Designers
Historical InfoProductPage
InAlternativa
Details
D
sottopagine) in mutua esclusione. Una di esse è marcata come Default
Designers
Esempio di pagine annidate in OR
» Pagina di prodotto che mostra l’elenco dei dettagli oppure, a scelta dell’utente, l’elenco dei designer
MODEL
ProductPage
InAlternativa
Details Designers
1
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications10
5
http://www.webml.org
» NB.Ogni ipertesto può essere riportato a non avere
Details
D
Designers
Detail
[P_D]Designer
Product
2
Modello delleOperazioni in WebML
http://www.webml.org
Master in Web
TechnologyCorso di: Modellazione UML per il WebDocente: Henry MucciniVIII Edizione 2012/2013Dipartimento di Ingegneria e Scienze dell’Informazione e MatematicaUniversità degli Studi dell’Aquila
Copyright
Copyright © Politecnico di Milano
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications11
1
http://www.webml.org
Copyright © Politecnico di Milano
March 2003
1. Operazioni
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications11
2
http://www.webml.org
1. Operazioni
Integrazione di ipertesti e logica applicativa
» Esempi di siti che fanno uso di servizi backback--endend o remoti:> Reservation Web site: richiesta di prenotazione, annullamento o
modifica di prenotazione> Altri esempi: gestione contenuti,carrello della spesa di siti e-
commerce, gestione del profilo personale, ...
» PROBLEMA:
MODEL
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications11
3
http://www.webml.org
» PROBLEMA: > Come modellare la chiamata di operazioni?
» SOLUZIONE:> Inserendo le chiamate di operazioni come nuove primitive di
ipertesto
Operation Unit
» Descrive una generica operazione esterna o predefinita
» Riceve input da uno o più link entranti (di cui uno deve essere un normal link, mentre gli altri saranno transport links)
MODEL
Operation Unit
KO
OK
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications11
4
http://www.webml.org
» Due tipi di link di uscita:> OK link: seguito nel caso in cui l’operazione si conclude con successo
> KO link: seguito nel caso in cui l’operazione fallisce
» Le operazioni non hanno scopo di pubblicare informazione � sono sono posizionate all’esterno delle pagineposizionate all’esterno delle pagine
Entità
[Selettore]
Operazioni predefinite (Built-in)
» WebML fornisce un insieme di operazioni predefinite per la gestione dei contenuti (istanze dei dati pubblicati sul sito)
» Operazioni tradizionali di gestione di basi di dati: create, delete, modify, create relationship, delete relationship
MODEL
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications11
5
http://www.webml.org
delete, modify, create relationship, delete relationship» Il loro comportamento è predefinito, e consente di consente di
gestire le istanze di entità e relazioni dichiarate nel gestire le istanze di entità e relazioni dichiarate nel modello dei datimodello dei dati
» E’ possibile arricchire tale insieme con altre operazioni definite dall’utente
Operazioni predefinite per la gestione dei contenuti
Delete Unit
Entità
Create Unit
Entità
Modify Unit
Entità
CREATE DELETE MODIFY
MODEL
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications11
6
http://www.webml.org
Entità
[Selettore]
Entità Entità
[Selettore]
Disconnect Unit
Relazione
[Selettore]
Connect Unit
Relazione
[Selettore]
CONNECT DISCONNECT
Create Unit
Create Unit
valore1→ attributo1
valore2 → attributo2
OID del nuovo
oggetto
MODEL
KO
OK
Niente
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications11
7
http://www.webml.org
» Riceve i valori da assegnare agli attributi del nuovo oggetto creato
» Restituisce l’identificativo dell’oggetto creato (se la creazione ha successo)
Entità
valore2 → attributo2
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications11
8
http://www.webml.org
Esempio di creazione
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications11
9
http://www.webml.orgLancia WebRatio
Modify unit
valore2 → attributo1 valore1 → attributo2
OIDs degli oggetti modificati
Modify Unit
Entità
[Selettore]
MODEL
KO
OK
OIDs degli oggettinon modificati
OIDs degli oggetti da
modificare
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications12
0
http://www.webml.org
» Riceve i valori da assegnare agli attributi da modificare
» Nota: le istanze da modificare possono essere selezionate per mezzo di OID o per mezzo di selettore
» OK: Restituisce l’identificativo degli oggetti modificati (tutti quelli che erano stati richiesti)
» KO: Restituisce l’identificativo degli oggetti che non si è riusciti a modificare
[Selettore]
Esempio di modifica
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications12
1
http://www.webml.orgLancia WebRatio
Delete unit
NullaOIDs degli oggetti da cancellare
Delete Unit
Entità
MODEL
KO
OK
OIDs degli oggetti non cancellati
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications12
2
http://www.webml.org
» Riceve l’elenco degli oggetti da cancellare
» Nota: le istanze da cancellare possono essere selezionate per mezzo di OID o per mezzo di selettore
» OK: non restituisce nulla perchè gli oggetti non esistono più!!
» KO: Restituisce l’identificativo degli oggetti non cancellati
Entità
[Selettore]
Esempio di cancellazioneMODEL
Master in Web Technology VIII Edizione 2012/2013 | Henry Muccini: UML for Web Applications12
3
http://www.webml.org