SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Progettazione di Applicazioni Web
corso del Master in Web Technology
a.a. 2017-2018
https://app.schoology.com/course/1511186315/
Henry Muccini
Università degli Studi dell’Aquila
5. Content Design
MWT– Progettazione di Applicazioni Web Henry Muccini
2
Copyright Notice
Il materiale riportato in queste slide puo’ essere
riutilizzato, parziale o totalmente, a patto che le fonti
e gli autori vengano citati
Henry Muccini
MWT– Progettazione di Applicazioni Web Henry Muccini
3
Progettazione
.web contents modeling [dati e contenuti]
.navigation modeling -> actors
.architecture modeling + tecnologies
.component diagrams
.sequence diagrams
.design decisions
.UX modeling
Content Design
MWT– Progettazione di Applicazioni Web Henry Muccini
5
Motivazioni
• Hypermedia design e’ un nuovo ramo di sviluppo
• Solitamente una applicazione Web e’ costruita ad hoc,
partendo da sistemi piccoli che vengono man mano resi piu’
complessi  difficolta’ di manutenzione
• Lo sviluppo di applicazioni hypermediali presenta
importanti differenze rispetto a normali processi di
sviluppo...
MWT– Progettazione di Applicazioni Web Henry Muccini
7
Differenze nel design
Struttura ipertestuale da modellare e controllare
Necessita’ di informazione sulla navigazione
Aspetti di presentazione e parte di contenuto
Riassumendo: ci sono tre aspetti differenti da tenere in
considerazione
– Contenuti
– Struttura navigazionale
– Presentazione
Questi tre aspetti vanno relazionati tra loro, per garantire
maggior manutenibilita’
MWT– Progettazione di Applicazioni Web Henry Muccini
8
Relazione tra i vari modelli UWE
MWT– Progettazione di Applicazioni Web Henry Muccini
9
Modelli UML utilizzati
1. Use Case model:
– Use Case Diagram
– Class Diagram
2. Conceptual model:
– Class Diagram
3.1 Navigation Space:
– Class Diagram stereotipato
3.2 Navigation Structure:
– Class Diagram stereotipato
4. Presentation:
– static: Class Diagram stereotipato
– dynamic: Sequence e State
MWT– Progettazione di Applicazioni Web Henry Muccini
10
Punto di partenza
 Attori
 Servizi
 Relazioni
____________
 Plan
Conceptual Model
MWT– Progettazione di Applicazioni Web Henry Muccini
16
Conceptual Model
 L’obiettivo di tale modello e’ quello di
modellare il dominio dell’applicazione, senza
considerare aspetti navigazionali o di
presentazione
 Questi aspetti verranno analizzati in diagrammi
successivi
 Si cerca di realizzare una “separation of concerns”
 Per realizzare un Conceptual Model, si utilizzano
tecniche OO al fine di ...
MWT– Progettazione di Applicazioni Web Henry Muccini
17
Come costruire un Conceptual M.
…
– Identificare le classi «di contenuto»
• Specificare attributi, operazioni e varianti rilevanti
– Determinare associazioni fra classi
– Definire relazioni di ereditarieta’
– Identificare dipendenze, interfacce e vincoli
MWT– Progettazione di Applicazioni Web Henry Muccini
18
Esempio 1: Analizzando I requisiti
“Si voglia sviluppare un sito Web che offra
informazioni circa una compagnia, gli impiegati e la
loro relazione ai progetti, clienti e dipartimenti.”
Esempio 1
Customer
Employee
Department
Project
Company
MWT– Progettazione di Applicazioni Web Henry Muccini
19
Identifichiamo, le Relazioni fra le classi
Customer
Employee
Department
Project
Company
1
*
has
orders
performsworksAt
leads
workFor
consistOf
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
20
Identifichiamo, Attributi ed Operazioni delle classi
-name
Customer
-name
-e-mail
-picture
-publications
Employee
+addProject()
-name
Department
+editProject()
-name
-budget
-logo
-...
Project
-name
-address
Company
1
*
has
orders
performsworksAt
leads
workFor
consistOf
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
21
Per finire, multiplicita’
Nota:
questo
passo e’
fondamentale
-name
Customer
-name
-e-mail
-picture
-publications
Employee
+addProject()
-name
Department
+editProject()
-name
-budget
-logo
-...
Project
-name
-address
Company
1
*
has
orders
performsworksAt
leads
workFor
consistOf
0..1 1..*
1..*
1..*
1..*
1..*
1..*
1..*
1..*
1
1..*
1
1
Esempio 1
Navigation Space Model
[mandatory]
MWT– Progettazione di Applicazioni Web Henry Muccini
23
Navigation Space Model
• Obiettivo di questo modello e’ evidenziare
quali oggetti possono essere visitati in una
navigazione
• Non analizza come (in quale ordine) tali oggetti
vanno visitati
• Tale modello viene costruito a partire dai Req e dal
conceptual model
• In pratica, si tratta di un Class Diagram
Stereotipato
MWT– Progettazione di Applicazioni Web Henry Muccini
24
Elementi principali
Tale modello e’ costituito da:
– Navigation Class:
• Rappresenta una classe la cui istanza puo’ essere visitata da
un utente
• Assumono gli stessi nomi delle classi nel Conceptual
• stereotipo usato: <<navigational class>>
– External Node:
• Modella un obiettivo di navigazione dipendente da un'altra
applicazione Web
– Direct Navigability:
• E’ una associazione fra due Navigation class
• identifica un flusso di navigazione
• e’ orientata
• stereotipo usato: <<direct navigability>>
MWT– Progettazione di Applicazioni Web Henry Muccini
25
Esempio 1: Navigation Space Model (step 3.1)
Esempio 1
-name
Customer
-name
-e-mail
-picture
-publications
Employee
+addProject()
-name
Department
+editProject()
-name
-budget
-logo
-...
Project
-name
-address
Company
1
*
has
orders
performsworksAt
leads
workFor
consistOf
0..1 1..*
1..*
1..*
1..*
1..*
1..*
1..*
1..*
1
1..*
1
1
Conceptual Model
MWT– Progettazione di Applicazioni Web Henry Muccini
26Regole di mapping Conceptual  Navigation
Space
 Classi, del Conceptual, non rilevanti per la
navigazione, possono essere omesse
 Informazioni sulle classi omesse possono
comunque essere mantenute nelle altre classi
come attributi
 Nuove associazioni possono essere aggiunte per
una piu’ diretta navigazione, evitando path troppo
lunghi. Scenari realizzabili a livello degli Use Case,
possono aiutare in questo step.
MWT– Progettazione di Applicazioni Web Henry Muccini
27
Analizziamo l’esempio
Classi, del Conceptual, non rilevanti per la
navigazione, possono essere omesse
Conceptual
-name
Customer
-name
-e-mail
-picture
-publications
Employee
+addProject()
-name
Department
+editProject()
-name
-budget
-logo
-...
Project
-name
-address
Company
1
*
has
orders
performsworksAt
leads
workFor
consistOf
0..1 1..*
1..*
1..*
1..*
1..*
1..*
1..*
1..*
1
1..*
1
1
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
28
Informazioni sulle classi omesse possono comunque
essere mantenute nelle altre classi come attributi
Navigation
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
29
Nuove associazioni possono essere aggiunte per una
piu’ diretta navigazione, evitando path troppo lunghi.
Scenari realizzabili a livello degli Use Case, possono
aiutare in questo step.
Esempio 1
Navigational Structure
[opzionale]
MWT– Progettazione di Applicazioni Web Henry Muccini
31
Navigational Structure
Tale modello mette in evidenza come gli oggetti
precedentemente identificati possono essere
navigati
Si tratta sempre di un Class Diagram stereotipato
Vengono introdotti nuovi elementi:
– Indici
– Guided Tour
– Queries
… e solo successivamente
– Menu
MWT– Progettazione di Applicazioni Web Henry Muccini
32
Indici
Un oggetto indice e’ costituito da un insieme di indici,
ognuno dei quali possiede un link ad una
navigational class
MWT– Progettazione di Applicazioni Web Henry Muccini
33
Guided Tour
 Un Guided Tour è un oggetto che fornisce un
accesso sequenziale alle istanze di una classe di
navigazione.
 Puo’ coincidere con una visita dove abbiamo piu’
pagine collegate
– Pensa a pagine Google
MWT– Progettazione di Applicazioni Web Henry Muccini
34
Guided Tour
MWT– Progettazione di Applicazioni Web Henry Muccini
35
Queries
 Indica la possibilita’ di eseguire una query
 E’ la sorgente di due associazioni che possono o
creare un indice o restituire un elemento (vincolo
{xor}).
MWT– Progettazione di Applicazioni Web Henry Muccini
36
Navigation Space  Navigational Structure,v1
Prima di tutto bisogna modificare il Navigation
Space model, eliminando attributi ed operazioni
Navigation
Space senza
attributi ed
operazioni
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
37Considera solo le associazioni nel navigation space con
moltiplicita’, sul target, superiore a 1. Per ogni
associazione del genere, scegli un access element per
realizzare la navigazione
indice
guided
indice
query
indice
indice
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
38
Arricchisci il modello esistente al momento, con gli
access element identificati. Ricordarsi di spostare i
roles names delle associazioni, so that arrivino fino
all’access element
Larger
picture
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
39
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
40
Regole di Mapping
Navigation Space -> Navigation Structure, v1
1. Le associazioni bi-direzionali, che hanno molteplicità
maggiore di uno ad entrambi gli estremi, sono
sostituite con due associazioni unidirezionali.
2. Le associazioni bi-direzionali, che hanno molteplicità
maggiore di uno ad un solo capo, sono sostituite con
un’associazione diretta verso l’estremo con molteplicità
maggiore di uno. La navigazione nell’altra direzione è
garantita dall’uso dell’albero di navigazione, che sarà
introdotto dopo nel progetto.
3. Si considerino solo quelle associazioni unidirezionali del
modello dello spazio di navigazione che hanno
molteplicità maggiore di uno.
MWT– Progettazione di Applicazioni Web Henry Muccini
41
Regole di Mapping
Navigation Space -> Navigation Structure, v1
4. Per ogni associazione di questo tipo, si scelga una o più
primitive di accesso per realizzare la navigazione.
5. Il modello dello spazio di navigazione è quindi
completato con le primitive d’accesso corrispondenti. I
nomi dei ruoli della navigazione nel modello dello
spazio di navigazione adesso sono spostati nelle
primitive d’accesso.
6. Si aggiungano dei vincoli per modellare invarianti e
condizioni. Questi sono dedotti dalla descrizione
dettagliata del modello dei casi d’uso.
MWT– Progettazione di Applicazioni Web Henry Muccini
42
Menu’
 Menu è un indice o un insieme di elementi
omogenei, come un indice, un guided tour, una
query, un’istanza di una classe di navigazione o un
altro menu.
 Sono modellati tramite degli oggetti composti che
contengono un numero finito di menu item.
 Ogni menu item ha un nome costante ed un link
che può puntare o ad un’istanza di una classe di
navigazione o ad una primitiva d’accesso.
MWT– Progettazione di Applicazioni Web Henry Muccini
43
Menu’
MWT– Progettazione di Applicazioni Web Henry Muccini
44Navigational
Structure, v1
Considerate le classi con almeno una navigational
class uscente
Navigational
Structure
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
45
Associa un menu’ item ad ogni classe con almeno una
associazione uscente. Il Menu’ risultera’ essere una
componente composita della classe
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
46
Navigational Structure Model
Esempio 1
Differenza
Rispetto al
Navigation
Space M.
MWT– Progettazione di Applicazioni Web Henry Muccini
47
Navigational Structure Model
Esempio 1
MWT– Progettazione di Applicazioni Web Henry Muccini
48
Regole di Mapping
Navigation Space -> Navigation Structure, v2
1. Si considerino quelle associazioni, che hanno come
sorgente una classe di navigazione.
2. Si associ ad ogni classe di navigazione, che ha
(nell’ultimo diagramma ottenuto) almeno
un’associazione uscente, una classe menu
corrispondente. L’associazione fra la classe di
navigazione e la sua classe menu è una composizione.
3. Si riorganizzi un menu con degli eventuali sottomenu.
MWT– Progettazione di Applicazioni Web Henry Muccini
49
Regole di Mapping
Navigation Space -> Navigation Structure, v2
4. Si introduca per ogni ruolo, ai capi delle associazioni
dirette introdotte nel modello precedente, un
corrispondente menu item. Per default, il nome del
ruolo è usato come nome del menu item.
5. Ogni associazione che nel modello precedente ha come
sorgente una classe di navigazione adesso diventa
un’associazione del menu item corrispondente
introdotto nel passo precedente.
6. Si aggiungano dei vincoli per aggiungere precisione al
modello.

Weitere ähnliche Inhalte

Ähnlich wie Web Engineering L5: Content Model (5/8)

Tra Design e interattività : Come progettare un sito web
Tra Design e interattività : Come progettare un sito webTra Design e interattività : Come progettare un sito web
Tra Design e interattività : Come progettare un sito webEstensa Srl
 
Fe02 ria con breeze e knockout
Fe02   ria con breeze e knockoutFe02   ria con breeze e knockout
Fe02 ria con breeze e knockoutDotNetCampus
 
Aziende Fornitori Web2.0
Aziende Fornitori Web2.0Aziende Fornitori Web2.0
Aziende Fornitori Web2.0Gabriella
 
Un modello per la valutazione dei siti web 2024.pdf
Un modello per la valutazione dei siti web 2024.pdfUn modello per la valutazione dei siti web 2024.pdf
Un modello per la valutazione dei siti web 2024.pdfMarco Accossato
 
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006Emanuele Della Valle
 
Web designer vs Web developer
Web designer vs Web developerWeb designer vs Web developer
Web designer vs Web developerGiuseppe Vizzari
 
Il contributo dell’Information Technology alle Reti di imprese del Tessile - ...
Il contributo dell’Information Technology alle Reti di imprese del Tessile - ...Il contributo dell’Information Technology alle Reti di imprese del Tessile - ...
Il contributo dell’Information Technology alle Reti di imprese del Tessile - ...ENEA DTE-SEN-CROSS
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneRoberto Polillo
 
Microservices power by unikernels
Microservices power by unikernelsMicroservices power by unikernels
Microservices power by unikernelsGabriele Baldoni
 
15 - Web designer vs Web developer
15 - Web designer vs Web developer15 - Web designer vs Web developer
15 - Web designer vs Web developerGiuseppe Vizzari
 
FLSS: documento di design
FLSS: documento di designFLSS: documento di design
FLSS: documento di designSara M
 
Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)K-Tech Formazione
 
Abilitare le organizzazioni e le persone ad adottare con successo il Cloud
Abilitare le organizzazioni e le persone ad adottare con successo il CloudAbilitare le organizzazioni e le persone ad adottare con successo il Cloud
Abilitare le organizzazioni e le persone ad adottare con successo il CloudAmazon Web Services
 
Presentazione tesi
Presentazione tesiPresentazione tesi
Presentazione tesiAndrea Lanza
 
I cms e la legge Stanca
I cms e la legge StancaI cms e la legge Stanca
I cms e la legge StancaGianluigi Cogo
 
14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ... 14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ... Giuseppe Vizzari
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e MicroserviziConsulthinkspa
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
Semplicità: accessibilità business oriented
Semplicità: accessibilità business orientedSemplicità: accessibilità business oriented
Semplicità: accessibilità business orientedFabrizio Caccavello
 

Ähnlich wie Web Engineering L5: Content Model (5/8) (20)

Tra Design e interattività : Come progettare un sito web
Tra Design e interattività : Come progettare un sito webTra Design e interattività : Come progettare un sito web
Tra Design e interattività : Come progettare un sito web
 
Fe02 ria con breeze e knockout
Fe02   ria con breeze e knockoutFe02   ria con breeze e knockout
Fe02 ria con breeze e knockout
 
Aziende Fornitori Web2.0
Aziende Fornitori Web2.0Aziende Fornitori Web2.0
Aziende Fornitori Web2.0
 
Web2.0.2008
Web2.0.2008Web2.0.2008
Web2.0.2008
 
Un modello per la valutazione dei siti web 2024.pdf
Un modello per la valutazione dei siti web 2024.pdfUn modello per la valutazione dei siti web 2024.pdf
Un modello per la valutazione dei siti web 2024.pdf
 
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
 
Web designer vs Web developer
Web designer vs Web developerWeb designer vs Web developer
Web designer vs Web developer
 
Il contributo dell’Information Technology alle Reti di imprese del Tessile - ...
Il contributo dell’Information Technology alle Reti di imprese del Tessile - ...Il contributo dell’Information Technology alle Reti di imprese del Tessile - ...
Il contributo dell’Information Technology alle Reti di imprese del Tessile - ...
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. Introduzione
 
Microservices power by unikernels
Microservices power by unikernelsMicroservices power by unikernels
Microservices power by unikernels
 
15 - Web designer vs Web developer
15 - Web designer vs Web developer15 - Web designer vs Web developer
15 - Web designer vs Web developer
 
FLSS: documento di design
FLSS: documento di designFLSS: documento di design
FLSS: documento di design
 
Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)
 
Abilitare le organizzazioni e le persone ad adottare con successo il Cloud
Abilitare le organizzazioni e le persone ad adottare con successo il CloudAbilitare le organizzazioni e le persone ad adottare con successo il Cloud
Abilitare le organizzazioni e le persone ad adottare con successo il Cloud
 
Presentazione tesi
Presentazione tesiPresentazione tesi
Presentazione tesi
 
I cms e la legge Stanca
I cms e la legge StancaI cms e la legge Stanca
I cms e la legge Stanca
 
14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ... 14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ...
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e Microservizi
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
Semplicità: accessibilità business oriented
Semplicità: accessibilità business orientedSemplicità: accessibilità business oriented
Semplicità: accessibilità business oriented
 

Mehr von Henry Muccini

Human Behaviour Centred Design
Human Behaviour Centred Design Human Behaviour Centred Design
Human Behaviour Centred Design Henry Muccini
 
How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...Henry Muccini
 
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieLa gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieHenry Muccini
 
Turismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileTurismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileHenry Muccini
 
Sustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementSustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementHenry Muccini
 
Software Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsSoftware Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsHenry Muccini
 
The influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsThe influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsHenry Muccini
 
An IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureAn IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureHenry Muccini
 
Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Henry Muccini
 
Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Henry Muccini
 
Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Henry Muccini
 
Collaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityCollaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityHenry Muccini
 
Engineering Cyber Physical Spaces
Engineering Cyber Physical SpacesEngineering Cyber Physical Spaces
Engineering Cyber Physical SpacesHenry Muccini
 
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISI progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISHenry Muccini
 
Exploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureExploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureHenry Muccini
 
EasyLine: call4ideas_2016
EasyLine: call4ideas_2016EasyLine: call4ideas_2016
EasyLine: call4ideas_2016Henry Muccini
 
The role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsThe role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsHenry Muccini
 
Euroweb+ meeting at the University of L'Aquila, Italy
Euroweb+ meeting at the University of L'Aquila, ItalyEuroweb+ meeting at the University of L'Aquila, Italy
Euroweb+ meeting at the University of L'Aquila, ItalyHenry Muccini
 
On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...Henry Muccini
 
1ST DISIM WORKSHOP ON ENGINEERING CYBER-PHYSICAL SYSTEMS
1ST DISIM WORKSHOP ON ENGINEERING CYBER-PHYSICAL SYSTEMS1ST DISIM WORKSHOP ON ENGINEERING CYBER-PHYSICAL SYSTEMS
1ST DISIM WORKSHOP ON ENGINEERING CYBER-PHYSICAL SYSTEMSHenry Muccini
 

Mehr von Henry Muccini (20)

Human Behaviour Centred Design
Human Behaviour Centred Design Human Behaviour Centred Design
Human Behaviour Centred Design
 
How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...
 
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieLa gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
 
Turismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileTurismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibile
 
Sustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementSustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd management
 
Software Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsSoftware Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of Things
 
The influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsThe influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design Decisions
 
An IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureAn IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building Architecture
 
Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)
 
Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)
 
Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)
 
Collaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityCollaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on Sustainability
 
Engineering Cyber Physical Spaces
Engineering Cyber Physical SpacesEngineering Cyber Physical Spaces
Engineering Cyber Physical Spaces
 
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISI progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
 
Exploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureExploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software Architecture
 
EasyLine: call4ideas_2016
EasyLine: call4ideas_2016EasyLine: call4ideas_2016
EasyLine: call4ideas_2016
 
The role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsThe role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture Descriptions
 
Euroweb+ meeting at the University of L'Aquila, Italy
Euroweb+ meeting at the University of L'Aquila, ItalyEuroweb+ meeting at the University of L'Aquila, Italy
Euroweb+ meeting at the University of L'Aquila, Italy
 
On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...
 
1ST DISIM WORKSHOP ON ENGINEERING CYBER-PHYSICAL SYSTEMS
1ST DISIM WORKSHOP ON ENGINEERING CYBER-PHYSICAL SYSTEMS1ST DISIM WORKSHOP ON ENGINEERING CYBER-PHYSICAL SYSTEMS
1ST DISIM WORKSHOP ON ENGINEERING CYBER-PHYSICAL SYSTEMS
 

Web Engineering L5: Content Model (5/8)

  • 1. Progettazione di Applicazioni Web corso del Master in Web Technology a.a. 2017-2018 https://app.schoology.com/course/1511186315/ Henry Muccini Università degli Studi dell’Aquila 5. Content Design
  • 2. MWT– Progettazione di Applicazioni Web Henry Muccini 2 Copyright Notice Il materiale riportato in queste slide puo’ essere riutilizzato, parziale o totalmente, a patto che le fonti e gli autori vengano citati Henry Muccini
  • 3. MWT– Progettazione di Applicazioni Web Henry Muccini 3 Progettazione .web contents modeling [dati e contenuti] .navigation modeling -> actors .architecture modeling + tecnologies .component diagrams .sequence diagrams .design decisions .UX modeling
  • 5. MWT– Progettazione di Applicazioni Web Henry Muccini 5 Motivazioni • Hypermedia design e’ un nuovo ramo di sviluppo • Solitamente una applicazione Web e’ costruita ad hoc, partendo da sistemi piccoli che vengono man mano resi piu’ complessi  difficolta’ di manutenzione • Lo sviluppo di applicazioni hypermediali presenta importanti differenze rispetto a normali processi di sviluppo...
  • 6. MWT– Progettazione di Applicazioni Web Henry Muccini 7 Differenze nel design Struttura ipertestuale da modellare e controllare Necessita’ di informazione sulla navigazione Aspetti di presentazione e parte di contenuto Riassumendo: ci sono tre aspetti differenti da tenere in considerazione – Contenuti – Struttura navigazionale – Presentazione Questi tre aspetti vanno relazionati tra loro, per garantire maggior manutenibilita’
  • 7. MWT– Progettazione di Applicazioni Web Henry Muccini 8 Relazione tra i vari modelli UWE
  • 8. MWT– Progettazione di Applicazioni Web Henry Muccini 9 Modelli UML utilizzati 1. Use Case model: – Use Case Diagram – Class Diagram 2. Conceptual model: – Class Diagram 3.1 Navigation Space: – Class Diagram stereotipato 3.2 Navigation Structure: – Class Diagram stereotipato 4. Presentation: – static: Class Diagram stereotipato – dynamic: Sequence e State
  • 9. MWT– Progettazione di Applicazioni Web Henry Muccini 10 Punto di partenza  Attori  Servizi  Relazioni ____________  Plan
  • 11. MWT– Progettazione di Applicazioni Web Henry Muccini 16 Conceptual Model  L’obiettivo di tale modello e’ quello di modellare il dominio dell’applicazione, senza considerare aspetti navigazionali o di presentazione  Questi aspetti verranno analizzati in diagrammi successivi  Si cerca di realizzare una “separation of concerns”  Per realizzare un Conceptual Model, si utilizzano tecniche OO al fine di ...
  • 12. MWT– Progettazione di Applicazioni Web Henry Muccini 17 Come costruire un Conceptual M. … – Identificare le classi «di contenuto» • Specificare attributi, operazioni e varianti rilevanti – Determinare associazioni fra classi – Definire relazioni di ereditarieta’ – Identificare dipendenze, interfacce e vincoli
  • 13. MWT– Progettazione di Applicazioni Web Henry Muccini 18 Esempio 1: Analizzando I requisiti “Si voglia sviluppare un sito Web che offra informazioni circa una compagnia, gli impiegati e la loro relazione ai progetti, clienti e dipartimenti.” Esempio 1 Customer Employee Department Project Company
  • 14. MWT– Progettazione di Applicazioni Web Henry Muccini 19 Identifichiamo, le Relazioni fra le classi Customer Employee Department Project Company 1 * has orders performsworksAt leads workFor consistOf Esempio 1
  • 15. MWT– Progettazione di Applicazioni Web Henry Muccini 20 Identifichiamo, Attributi ed Operazioni delle classi -name Customer -name -e-mail -picture -publications Employee +addProject() -name Department +editProject() -name -budget -logo -... Project -name -address Company 1 * has orders performsworksAt leads workFor consistOf Esempio 1
  • 16. MWT– Progettazione di Applicazioni Web Henry Muccini 21 Per finire, multiplicita’ Nota: questo passo e’ fondamentale -name Customer -name -e-mail -picture -publications Employee +addProject() -name Department +editProject() -name -budget -logo -... Project -name -address Company 1 * has orders performsworksAt leads workFor consistOf 0..1 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1 1..* 1 1 Esempio 1
  • 18. MWT– Progettazione di Applicazioni Web Henry Muccini 23 Navigation Space Model • Obiettivo di questo modello e’ evidenziare quali oggetti possono essere visitati in una navigazione • Non analizza come (in quale ordine) tali oggetti vanno visitati • Tale modello viene costruito a partire dai Req e dal conceptual model • In pratica, si tratta di un Class Diagram Stereotipato
  • 19. MWT– Progettazione di Applicazioni Web Henry Muccini 24 Elementi principali Tale modello e’ costituito da: – Navigation Class: • Rappresenta una classe la cui istanza puo’ essere visitata da un utente • Assumono gli stessi nomi delle classi nel Conceptual • stereotipo usato: <<navigational class>> – External Node: • Modella un obiettivo di navigazione dipendente da un'altra applicazione Web – Direct Navigability: • E’ una associazione fra due Navigation class • identifica un flusso di navigazione • e’ orientata • stereotipo usato: <<direct navigability>>
  • 20. MWT– Progettazione di Applicazioni Web Henry Muccini 25 Esempio 1: Navigation Space Model (step 3.1) Esempio 1 -name Customer -name -e-mail -picture -publications Employee +addProject() -name Department +editProject() -name -budget -logo -... Project -name -address Company 1 * has orders performsworksAt leads workFor consistOf 0..1 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1 1..* 1 1 Conceptual Model
  • 21. MWT– Progettazione di Applicazioni Web Henry Muccini 26Regole di mapping Conceptual  Navigation Space  Classi, del Conceptual, non rilevanti per la navigazione, possono essere omesse  Informazioni sulle classi omesse possono comunque essere mantenute nelle altre classi come attributi  Nuove associazioni possono essere aggiunte per una piu’ diretta navigazione, evitando path troppo lunghi. Scenari realizzabili a livello degli Use Case, possono aiutare in questo step.
  • 22. MWT– Progettazione di Applicazioni Web Henry Muccini 27 Analizziamo l’esempio Classi, del Conceptual, non rilevanti per la navigazione, possono essere omesse Conceptual -name Customer -name -e-mail -picture -publications Employee +addProject() -name Department +editProject() -name -budget -logo -... Project -name -address Company 1 * has orders performsworksAt leads workFor consistOf 0..1 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1 1..* 1 1 Esempio 1
  • 23. MWT– Progettazione di Applicazioni Web Henry Muccini 28 Informazioni sulle classi omesse possono comunque essere mantenute nelle altre classi come attributi Navigation Esempio 1
  • 24. MWT– Progettazione di Applicazioni Web Henry Muccini 29 Nuove associazioni possono essere aggiunte per una piu’ diretta navigazione, evitando path troppo lunghi. Scenari realizzabili a livello degli Use Case, possono aiutare in questo step. Esempio 1
  • 26. MWT– Progettazione di Applicazioni Web Henry Muccini 31 Navigational Structure Tale modello mette in evidenza come gli oggetti precedentemente identificati possono essere navigati Si tratta sempre di un Class Diagram stereotipato Vengono introdotti nuovi elementi: – Indici – Guided Tour – Queries … e solo successivamente – Menu
  • 27. MWT– Progettazione di Applicazioni Web Henry Muccini 32 Indici Un oggetto indice e’ costituito da un insieme di indici, ognuno dei quali possiede un link ad una navigational class
  • 28. MWT– Progettazione di Applicazioni Web Henry Muccini 33 Guided Tour  Un Guided Tour è un oggetto che fornisce un accesso sequenziale alle istanze di una classe di navigazione.  Puo’ coincidere con una visita dove abbiamo piu’ pagine collegate – Pensa a pagine Google
  • 29. MWT– Progettazione di Applicazioni Web Henry Muccini 34 Guided Tour
  • 30. MWT– Progettazione di Applicazioni Web Henry Muccini 35 Queries  Indica la possibilita’ di eseguire una query  E’ la sorgente di due associazioni che possono o creare un indice o restituire un elemento (vincolo {xor}).
  • 31. MWT– Progettazione di Applicazioni Web Henry Muccini 36 Navigation Space  Navigational Structure,v1 Prima di tutto bisogna modificare il Navigation Space model, eliminando attributi ed operazioni Navigation Space senza attributi ed operazioni Esempio 1
  • 32. MWT– Progettazione di Applicazioni Web Henry Muccini 37Considera solo le associazioni nel navigation space con moltiplicita’, sul target, superiore a 1. Per ogni associazione del genere, scegli un access element per realizzare la navigazione indice guided indice query indice indice Esempio 1
  • 33. MWT– Progettazione di Applicazioni Web Henry Muccini 38 Arricchisci il modello esistente al momento, con gli access element identificati. Ricordarsi di spostare i roles names delle associazioni, so that arrivino fino all’access element Larger picture Esempio 1
  • 34. MWT– Progettazione di Applicazioni Web Henry Muccini 39 Esempio 1
  • 35. MWT– Progettazione di Applicazioni Web Henry Muccini 40 Regole di Mapping Navigation Space -> Navigation Structure, v1 1. Le associazioni bi-direzionali, che hanno molteplicità maggiore di uno ad entrambi gli estremi, sono sostituite con due associazioni unidirezionali. 2. Le associazioni bi-direzionali, che hanno molteplicità maggiore di uno ad un solo capo, sono sostituite con un’associazione diretta verso l’estremo con molteplicità maggiore di uno. La navigazione nell’altra direzione è garantita dall’uso dell’albero di navigazione, che sarà introdotto dopo nel progetto. 3. Si considerino solo quelle associazioni unidirezionali del modello dello spazio di navigazione che hanno molteplicità maggiore di uno.
  • 36. MWT– Progettazione di Applicazioni Web Henry Muccini 41 Regole di Mapping Navigation Space -> Navigation Structure, v1 4. Per ogni associazione di questo tipo, si scelga una o più primitive di accesso per realizzare la navigazione. 5. Il modello dello spazio di navigazione è quindi completato con le primitive d’accesso corrispondenti. I nomi dei ruoli della navigazione nel modello dello spazio di navigazione adesso sono spostati nelle primitive d’accesso. 6. Si aggiungano dei vincoli per modellare invarianti e condizioni. Questi sono dedotti dalla descrizione dettagliata del modello dei casi d’uso.
  • 37. MWT– Progettazione di Applicazioni Web Henry Muccini 42 Menu’  Menu è un indice o un insieme di elementi omogenei, come un indice, un guided tour, una query, un’istanza di una classe di navigazione o un altro menu.  Sono modellati tramite degli oggetti composti che contengono un numero finito di menu item.  Ogni menu item ha un nome costante ed un link che può puntare o ad un’istanza di una classe di navigazione o ad una primitiva d’accesso.
  • 38. MWT– Progettazione di Applicazioni Web Henry Muccini 43 Menu’
  • 39. MWT– Progettazione di Applicazioni Web Henry Muccini 44Navigational Structure, v1 Considerate le classi con almeno una navigational class uscente Navigational Structure Esempio 1
  • 40. MWT– Progettazione di Applicazioni Web Henry Muccini 45 Associa un menu’ item ad ogni classe con almeno una associazione uscente. Il Menu’ risultera’ essere una componente composita della classe Esempio 1
  • 41. MWT– Progettazione di Applicazioni Web Henry Muccini 46 Navigational Structure Model Esempio 1 Differenza Rispetto al Navigation Space M.
  • 42. MWT– Progettazione di Applicazioni Web Henry Muccini 47 Navigational Structure Model Esempio 1
  • 43. MWT– Progettazione di Applicazioni Web Henry Muccini 48 Regole di Mapping Navigation Space -> Navigation Structure, v2 1. Si considerino quelle associazioni, che hanno come sorgente una classe di navigazione. 2. Si associ ad ogni classe di navigazione, che ha (nell’ultimo diagramma ottenuto) almeno un’associazione uscente, una classe menu corrispondente. L’associazione fra la classe di navigazione e la sua classe menu è una composizione. 3. Si riorganizzi un menu con degli eventuali sottomenu.
  • 44. MWT– Progettazione di Applicazioni Web Henry Muccini 49 Regole di Mapping Navigation Space -> Navigation Structure, v2 4. Si introduca per ogni ruolo, ai capi delle associazioni dirette introdotte nel modello precedente, un corrispondente menu item. Per default, il nome del ruolo è usato come nome del menu item. 5. Ogni associazione che nel modello precedente ha come sorgente una classe di navigazione adesso diventa un’associazione del menu item corrispondente introdotto nel passo precedente. 6. Si aggiungano dei vincoli per aggiungere precisione al modello.