Upload
lambao
View
217
Download
1
Embed Size (px)
Citation preview
1
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 1
Overview on Web Engineering and Web Application Modelling
Mag. Dr. Wieland Schwinger, MSc
http://www.tk.uni-linz.ac.at/people/schwinger/
+43 (0)70 / 3343-843
+43 (0)70 / 3343-888
WEB APPLICATION MODELLING
Trento, June 19-30 2006
Hypertext
Content
Presentation
Structure
Behavior
Structure
Behavior
LevelsLevels
PhasesPhasesConceptual
Modeling
Logical
Modeling
Physical
Modeling
Imple-
mentation
Aspects
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 2
Department of Telecooperation
Outline of the Module 1/2
Overview on Web Engineering
� Categories of Web Applications
� Characteristics of Web Applications
� Web Engineering vs. Software Engineering
Web Application Modelling
� Motivation
� Requirements Framework
� Modelling of Web Applications
� Overview on Existing Modelling Methods
2
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 3
Department of Telecooperation
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 4
Department of Telecooperation
Development of Today's Web Applications
� Current development of Web applications, still:
� ad-hoc implementation
� tool-driven and technology-driven development
� little pre-planning
� Consequently,
� poor quality of web applications
� un-fulfilled user requirements
The "dog house" approach!
3
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 5
Department of Telecooperation
Development of Today's Web Applications
Even, seldomly works for a dog house!
Even for a dog house you should have a plan!
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 6
Department of Telecooperation
Development of Today's Web Applications
Cerainly, doesn't work for complex constructions
Burj Dubai
Plan (=Models) are vita!
4
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 7
Department of Telecooperation
Modeling Necessary
� Modeling addresses one of the major problems of today's development:
� But, traditional modeling methods can‘t be applied directly
� some specialized modeling methods exists
little planning of Web Applications prior to implementation
� Consequently, modeling necessaryfor building Web applications
� comprehension in its entirety
� communication among project team
� insurance of architectural soundness
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 8
Department of Telecooperation
Existing Web Application Modeling Methods
� What is the problem space to cover?
� Which Web application modeling methods exist?
� How do existing Web application modeling methodscompare?
� How comprehensive are those Web application modeling methods?
� Pre-requisite: understanding of the requirements
Schwinger W., Koch N: "Modeling Web Applications", in Web Engineering - Systematic Development of Web-Anwendungen(Kappel G., Pröll B., Reich S., Retschitzegger W. eds.) Wiley 2006.
5
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 9
Department of Telecooperation
Outline of the Module 1/2
Overview on Web Engineering
� Categories of Web Applications
� Characteristics of Web Applications
� Web Engineering vs. Software Engineering
Web Application Modelling
� Motivation
� Requirements Framework
� Modelling of Web Applications
� Overview on Existing Modelling Methods
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 10
Department of Telecooperation
Requirements of Modeling Traditional Software Applications
Aspects
Structure
Behavior
User Interface
PhasesAnalysis Design Implementation
Application Logic
Levels
� Roots of Modelling:� Data Engineering - focusing on structural aspects
� Software Engineering - focusing on behavioral aspects
� Used Modelling Formalisms:� Entity Relationship Technique (ER)
� UML 1.x, 2.0 (object-oriented, currently the "lingua franca")
6
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 11
Department of Telecooperation
Requirements of Modeling Traditional Software Applications
Aspects
Structure
Behavior
User Interface
PhasesAnalysis Design Implementation
Application Logic
Levels
But does not regard one of the major characteristics of
Web applications, namely hypertext
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 12
Department of Telecooperation
domain-dependent data
logical composition of web pages and the navigation structure
graphical representation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Levels
7
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 13
Department of Telecooperation
Requirements Framework for Modeling Web Applications
Presentation
Hypertext
Content
Levels
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 14
Department of Telecooperation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Levels� Separation of levels
� strict separation of levels
� explicit inter-dependencies between levels
� Flexible Mapping
� mapping as flexible as possible
to allow derivation between levels
� Bottom-Up and Top-Down Design
� bottom-up: starting with the contentlevel (e.g. given database) and derivethe hypertext and presentation level
� top-down: content level is derived from the other levels
8
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 15
Department of Telecooperation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Levels
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 16
Department of Telecooperation
structure: user interface elements and theircomposition
behavior: reactions to input events, interaction and synchronization between user interface elements
structure: page compositions and navigationalrelationships
behavior: run-time behavior of hypertext
structure: domain-dependent data
behavior: domain-dependent application logic
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Structure
Behavior
Aspects
Levels
9
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 17
Department of Telecooperation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Structure
Behavior
Aspects
Levels
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 18
Department of Telecooperation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Structure
Behavior
Levels� Modeling formalism
for structure and behavior
� Standard formalism vs.proprietary formalism
� Uniform formalism vs. divers formalism
� Patterns
� facilitate reuse and abstraction of
structure and behavior supported
by design patterns at all levels
Aspects
10
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 19
Department of Telecooperation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Structure
Behavior
Levels
Aspects
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 20
Department of Telecooperation
analyzing requirements
implementation
independent design
implementation
decisions
towards implementation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Structure
Behavior
Levels
PhasesConceptual
Modeling
Logical
Modeling
Physical
Modeling
Imple-
mentation
AspectsAnalysis Design
11
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 21
Department of Telecooperation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Structure
Behavior
Levels
PhasesConceptual
Modeling
Logical
Modeling
Physical
Modeling
Imple-
mentation
Aspects
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 22
Department of Telecooperation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Structure
Behavior
Levels
PhasesConceptual
Modeling
Logical
Modeling
Physical
Modeling
Imple-
mentation
� Define phases
� Define process
� Characteristics:
� incremental and iterative
� prototyping
� intensive testing
Aspects
12
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 23
Department of Telecooperation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Structure
Behavior
Levels
PhasesConceptual
Modeling
Logical
Modeling
Physical
Modeling
Imple-
mentation
Aspects
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 24
Department of Telecooperation
Requirements Framework for Modeling Web Applications
Hypertext
Content
Presentation
Structure
Behavior
Levels
PhasesConceptual
Modeling
Logical
Modeling
Physical
Modeling
Imple-
mentation
Aspects
13
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 25
Department of Telecooperation
Outline of the Module 1/2
Overview on Web Engineering
� Categories of Web Applications
� Characteristics of Web Applications
� Web Engineering vs. Software Engineering
Web Application Modelling
� Motivation
� Requirements Framework
� Modelling of Web Applications
� Overview on Existing Modelling Methods
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 26
Department of Telecooperation
Requirements Modeling
� Requirements Engineering techniques to identify, analyze, describe, evaluate, and manage Web application requirements
� Use cases preferred modeling technique for functional requirements
� From the actors’ (people and other systems) perspectives
� Can be supplemented by UML activity diagrams to describe the functional requirements in more detail
� Peculiarity of Web application requirements is navigation functionality
� [BaGP01] suggests separating the functional from the navigational use cases, creating two distinct models
� Another approach, ccreate one single use case model, which uses the UML «navigation» stereotype
� All Web applications have at least one human user, most often anonymous
14
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 27
Department of Telecooperation
Requirements Modeling
«navigation»
browse review results
«navigation»
browse submitted
papers
submit paper
enter review
login
register
«extend»
set
preferences
assign
paper to reviewer
Reviewer
Author
close reviewing process
«navigation»
list accepted / rejected papers
PC chair
«extend»
«ínclude»
User
«extend»
using UW
E
Reviewing SystemExample
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 28
Department of Telecooperation
Requirements Modeling
[user not logged-in ]
[ ok ]
[ not complete ]
[user logged-in ]
Submission Process
login
enter title and abstract
select subject group
select paper location
Paper[ new ]
«datastore»Paper[ new ]
«datastore»upload paper
send notification
using standard U
ML
(Activ
ity D
iagramm)
Reviewing SystemExample
15
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 29
Department of Telecooperation
Content Modeling
� Content modeling includes the creation of the problem domain model, consisting of static and dynamic aspects, as known from traditional Software Engineering.
� Static Web applications: modeling the content in the sense of pure data modeling is normally sufficient
� Complex Web applications: require the modeling of behavioral aspects.
� Specifics:
� Document-centric character and multimedia:
− consider differentmedia formats when modeling the content, including the structures the
information is based on
� Integration of existing data and software:
− often build on existing data repositories and software components not initially created for Web
applications
− Two potentially contradicting objectives, i.e., it should cover the content requirements of the
Web application to the best possible extent, and it should include existing data structures and
software components
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 30
Department of Telecooperation
Content Modeling
� Objectives:
� Transferring the information and functional requirements determined by requirements engineering to a content model
� Hypertext character of a Web application and the requirements of its presentation will not be considered
� Result:
� a content model that comprising both structural aspects of the content and behavioral aspects (depending on the type of Web application)
− structural aspects: mainly class diagram,
− behavioral aspects: e.g. state and interaction diagrams.
� Concepts:
� Builds on the concepts and methods of data modeling or object-oriented modeling
� Strives to ensure that existing information is free from redundancies and reusable
16
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 31
Department of Telecooperation
Content Modeling
� Class diagram will later serve as the basis to model the hypertext and the presentation
1
inv:
reviewer.intersection(author) � isEmpty
Subject
name
description
Review
originality
technicalQuality
relevance
overallRating
enterReview)
Conference
name
submissionDate
reviewDate
notificationDate
statusconferenceDate
newConference()closeReviewing()
1..*
User
name
organization
passwd
loggedIn
login()
register()
*
Paper
paperIDtitle
abstract
url
status
/ result
upload()
assign()
updateStatus()
*
*
1..*
*
0..3
+review
*
+author
0..3* +reviewer
+assignedPapers
login
+user1
1
1
inv:
reviewer.intersection(author) � isEmpty
Subject
name
description
Review
originality
technicalQuality
relevance
overallRating
enterReview)
Conference
name
submissionDate
reviewDate
notificationDate
statusconferenceDate
newConference()closeReviewing()
1..*
User
name
organization
passwd
loggedIn
login()
register()
*
Paper
paperIDtitle
abstract
url
status
/ result
upload()
assign()
updateStatus()
*
*
1..*
*
0..3
+review
*
+author
0..3* +reviewer
+assignedPapers
login
+user1
1
using standard U
ML
(Class D
iagram)
Reviewing SystemExample
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 32
Department of Telecooperation
Content Modeling
submittedunder'review
notified
inPrint
camera-ready
submitted
send e-mail
publishedwhen(date=deadline)
assign reviewer [#reviewers<3]
evaluated
[evaluation< threshold]
accepted
send e-mailrejectedrejected
underassignment
evaluated
[evaluation> threshold]
evaluated
[evaluation> threshold]
[#reviewers=3]
using standard U
ML
(State M
achine Diagram)
Reviewing System Example
17
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 33
Department of Telecooperation
<<ContentModel>>
MusicBase
Content Model
C_Label
labelName
owner
address
C_Songtitle
lyrics
lenghts
recorded
1published
C_CD
title
coverPic
genre
coverPicture
*
contains
*
*
C_Artist
name
curriculum
*
Music Store Example
using standard U
ML
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 34
Department of Telecooperation
Hypertext Modeling
� Non-linearity of hypertext is one of the most important
properties to be taken into account when modeling Web applications
� Hypertext structure has to be designed carefully
� Can be achieved by using suitable access structures, i.e., navigation options,
− to avoid the risk of users getting lost
− to avoid putting users under excessive cognitive stress
� Hypertext modeling also known as navigation
modeling
18
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 35
Department of Telecooperation
Hypertext Modeling
� Objectives:
� Specify the navigatability through the content of a Web application
− i.e., the navigation paths available to the users
� Results:
� Hypertext (Structure) Model (navigation structure model):
− defines the structure of the hypertext, i.e., which classes of the content model can be visited by navigation.
� Access Model (access structure model)
− refines hypertext structure model by access elements
� The navigational behavior of a Web application is often not
represented explicitly, since adding little additional information for the
developer - "on activation invoke preceeding node"
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 36
Department of Telecooperation
Hypertext Modeling
� Concepts of the Hypertext (Structure) Modeling:
� based on the concepts of hypertext, i.e., on nodes (also called pages or documents) and links between these nodes
� Specialized notations and concepts are often employed to model the hypertext structure
� Starting point usually is the content model − specified as view on the content model and is therefore sometimes also called navigational
view
− Nodes specified as a view on the content model selecting one or more objects from the
content.
− Links derived from relationships or added explicitely
� Some other methods model hypertext structure model independently− E.g. OOHDM offer a scenarios, where the hypertext structure model can be built directly
from the navigational requirements identified by these scenarios
� In any case, various hypertext structure models that define hypertext "views" on the content.
− E.g.: Personalized hypertext views for different user groups
19
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 37
Department of Telecooperation
Hypertext Structure Modeling
Hypertext Structure Model
«navigation class»
Conference
«navigation class»
User
«navigation class»
Paper
«navigation link»
«navigation link»
«navigation link»
«navigation link»
«navigation link»
«navigation link»
user
review
review
paper
acceptedPapers
rejectedPapers
paper
1
1
*
*
*
*
*
1..*
*
1
*
author
assignedPapers
reviewer
*
1
«navigation link»
«navigation class»
Review
*
«navigation link»
«navigation link»
«navigation link»
Reviewing System Example using U
WE
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 38
Department of Telecooperation
Hypertext Structure Model
<<NodeModel>>
MusicHyperbase
HB_Artist
name
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
HB_CD
name
coverPictureLarge
genre
HB_Song
songTitle
lyrics
1 1
*
*
*1
using WUML
Music Store Example
20
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 39
Department of Telecooperation
Hypertext Structure Modeling
� Various specific types of links to further refine the semantics of the hypertext structure model:
� HDM (Hypertext Design Model) [GaMP95] :
� Structural links connect elements of the same node, e.g., from a review summary to the review details.
� Perspective links put various views of a node in relation to each other, e.g., the PostScript and the PDF
versions of a paper.
� Application links put different nodes in relation to each other, depen-ding on the application, e.g., a link
pointing to “best paper”.
� WebML (Web Modeling Language) [CFB+03] (based on the possible transport of information
during navigation):
� Contextual links carry context information, e.g., the unique number of a reviewer, to navigate from one
reviewer to the reviews he or she created.
� Non-contextual links have no associated context information, e.g., links pointing from a single review to
the list of all reviews.
� WebML (based on the distribution of nodes on the hypertext level over pages on the
presentation level):
� Intra-page links are used when the source and the destination of a link belong to the same page, e.g.,
when a link allows the user to directly navigate to the summary of a paper, which is displayed further
down on the page.
� Inter-page links are used when the source and the destination are on different pages, e.g., when
detailed information about the authors and their papers are on different pages.
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 40
Department of Telecooperation
Hypertext Structure Modeling
� UWE (UML based Web Engineering) [KoKr02] (based on the functional requirements):
� Navigation links are used to navigate between nodes, e.g., links between papers and their
authors.
� Process links point to the start node of a process, e.g., to the beginning of the review
submission form.
� External links point to a node not directly belonging to the application, e.g., to the formatting
guidelines established by the publisher of the conference proceedings, which are not directly
stored in the reviewing system.
� OO-H (Object-Oriented Hypermedia) modeling method [GaCG05] :
� R-links point to a start of a navigational path to meet a functional system requirement, e.g., to
add a new review.
� T-links point to internal nodes, e.g., from an author to his or her papers.
� E-links point to external nodes, e.g., to external formatting guidelines.
� S-links point to services, e.g., to an external search engine.
21
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 41
Department of Telecooperation
Access Structure Modeling
� The hypertext structure model not sufficient to describe how nodes can be reachedby navigation.
� Access structures refining the hypertext structure model
� Recurring access structures ([GeCo00, LyRS99, RoSL98, AkGe05]), also called
“hypermedia design patterns” or “navigation patterns” supported by dedicated modeling elements:
� Index: access structure which allows users to select a single object (i.e. one object of the content) out of a homogeneous list of objects
� Menu: allows users to access heterogeneous nodes, or further menus (i.e. submenus)
� Guided tour: allows users to sequentially walk through a number of nodes
� Query: allows users to search for nodes and directly access them
� Home: points to the home page of a Web application
� Landmark: points to a node that can be reached from within all nodes
� Users need navigation and orientation aids
� Navigation patterns help to increase the quality of the hypertext model tremendously
� Some of these access structures can be added to the hypertext structure model automatically [KoKr02].
� For example, indexes can be added automatically whenever we want to allow access to a set (> 1) of objects of a node
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 42
Department of Telecooperation
using UW
E
(Class D
iagramm)
Access Structure Modeling
Access Model
«navigation class»
Conference
«navigation class»
User
«navigation class»
Review
«navigation class»
Paper
papers
«menu»
ConferenceMenu
«menu»
PaperMenu
«query»
SearchPaperByTitle
«index»
PapersByTitle
«index»
UserIndex
«index»
PapersByID«index»
RejectedPapers
«index»
ReviewingStatus
«index»
AcceptedPapers
rejectedPapers
acceptedPapers
review user
«index»
AssignedPapers
«menu»
PaperMenu«index»
Reviews
«index»
Authors
«index»
ReviewedPapers
search
searchPapers
authorsreviews
*
*
*
*
*
*
*
**
*
Reviewing System Example
22
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 43
Department of Telecooperation
<<NavigationModel>>MusicAccessModel
Access Structure Modelling
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
songTitle
lyrics
HB_CD
name
coverPictureLarge
HB_Song
HB_Artist
name
1
1
*
*
*
1
Music Store Example
using WUML
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 44
Department of Telecooperation
<<NavigationModel>>MusicAccessModel
HB_AutorCDIndex
Access Structure Modelling
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
songTitle
lyrics
HB_CD
name
coverPictureLarge
HB_Song
HB_Artist
name
1
1
*
HB_Artists
1
Music Store Example
using WUML
23
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 45
Department of Telecooperation
<<NavigationModel>>MusicAccessModel
Access Structure Modelling
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
songTitle
lyrics
HB_AutorCDIndex
HB_Artists
HB_CD
name
coverPictureLarge
HB_SongCDIndex
HB_Song
HB_Artist
name11
Music Store Example
using WUML
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 46
Department of Telecooperation
<<NavigationModel>>MusicAccessModel
11
Access Structure Modelling
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
songTitle
lyrics
HB_AutorCDIndex
HB_Artists
HB_CD
name
coverPictureLarge
HB_SongCDIndex
HB_Songsearch
HB_Song
HB_Artist
name
Music Store Example
using WUML
24
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 47
Department of Telecooperation
<<NavigationModel>>MusicAccessModel
Access Structure Modelling
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
songTitle
lyrics
automatic={true}
HB_AutorCDIndex
HB_Artists
HB_CD
name
coverPictureLarge
HB_SongCDIndex
HB_Songsearch
HB_Song
HB_Artist
name
Music Store Example
using WUML
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 48
Department of Telecooperation
<<NavigationModel>>MusicAccessModel
Access Structure Modelling
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
songTitle
lyrics
HB_AutorCDIndex
HB_Artists
HB_CD
name
coverPictureLarge HB_Songsearch
HB_Song
ArtistOfCDTour
orderBy={alphabetical} automatic={true}
HB_Artist
name
HB_SongCDIndex
Music Store Example
using WUML
25
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 49
Department of Telecooperation
Hypertext/Content Mapping
� Interrelationship between content modeling and hypertext modeling � Depending on the underlying modeling method, the hypertext
model is more or less strongly dependent on the content model
� Dependencies:
− Type level, e.g., which classes in the content model form which
node in the hypertext model
− Instance level, i.e., which sets of objects in the content model
populate that node in the hypertext model
� Not all methods describe dependencies between the content
model and the hypertext model exactly
� Some methods specify a direct derivation of the hypertext from
the content by defining nodes on the basis of views (in the sense
of “database views”) [ScGr02, KoKr02].
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 50
Department of Telecooperation
Hypertext/Content Mapping
<<C_HB_MappingModel>>MusicBase_HB_MappingModel
HB_Artist
name
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
HB_CD
name
coverPictureLarg
genre
HB_Song
songTitle
lyrics
1 1
*
*
*1
C_Label
labelName
owner
address
C_Songtitle
lyrics
lenghts
recorded
1
published
C_CD
title
coverPic
recordingType
coverPicture
*
contains
*
*
C_Artist
name
curriculum
*
C_Song::title <=> HB_Song::songTitle
C_Song::lyrics <=> HB_Song::lyrics
<<deriveCH>>
Music Store Example
using WUML
26
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 51
Department of Telecooperation
<<C_HB_MappingModel>>MusicBase_HB_MappingModel
HB_Artist
name
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
HB_CD
name
coverPictureLarge
genre
HB_Song
songTitle
lyrics
1 1
*
*
*1
C_Label
labelName
owner
address
C_Songtitle
lyrics
lenghts
recorded
1
published
C_CD
title
coverPic
recordingType
coverPicture
*
contains
*
*
C_Artist
name
curriculum
*
all instances
<<deriveInstances>>
Hypertext/Content MappingMusic Store
Example
using WUML
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 52
Department of Telecooperation
<<C_HB_MappingModel>>MusicBase_HB_MappingModel
HB_Artist
name
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
HB_CD
name
coverPictureLarge
genre
HB_Song
songTitle
lyrics
1 1
*
*
*1
C_Label
labelName
owner
address
C_Songtitle
lyrics
lenghts
recorded
1
published
C_CD
title
coverPic
recordingType
coverPicture
*
contains
*
*
C_Artist
name
curriculum
*
HB_RockCD{genre="rock"}
all instances
<<deriveInstances>>
Music Store Example
using WUML
Hypertext/Content Mapping
27
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 53
Department of Telecooperation
<<C_HB_MappingModel>>MusicBase_HB_MappingModel
Hypertext/Content Mapping
HB_Artist
name
HB_ArtistHighlight
artistName
currentCD
label
coverPictureSmall
artistDescription
HB_CD
name
coverPictureLarge
HB_Song
songTitle
lyrics
1 1
*
*
*1
C_Label
labelName
owner
address
C_Songtitle
lyrics
lenghts
recorded
1
published
C_CD
title
coverPic
recordingType
coverPicture
releaseDate
*
contains*
*
C_Artist
name
curriculum
*
C_CD::mostRecent().title => HB_ArtistHighlight.currentCD
C_Artist.name => HB_ArtistHighlight.artistName
HB_ArtistHighlight::reducePicture(C_CD.coverPicture) => HB_ArtistHighlight.coverPictureSmall .....
reducePicture()mostRecent() <<deriveCH>>
Music Store Example
using WUML
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 54
Department of Telecooperation
Presentation Modeling
� Similar to traditional Software Engineering,
� Deals with the user interface and thus with the look and feel of a
Web application
� In contrast to traditional applications,
� Central element of the presentation in Web applications is the
page as a visualization unit
28
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 55
Department of Telecooperation
Presentation Modeling
� Objectives:
� Designing the structure and behavior of the user interface to ensure that interaction with the Web application is simple and self-explanatory
� Communication and representation task of the Web application are taken into account
� Results:
� a uniform presentation concept by modeling recurring elements on the pages, e.g., headers and footers. It should ideally show the composition of each page and the design of the fields, texts, images, forms, etc., included in these pages.
� describtiion of the behavior-oriented aspects of the user interface, e.g., which button to click to activate a function of the application logic.
� Give users appropriate orientation help on the presentation level
� due to the wide variety of navigation options and
� the inherent risk of getting lost
� Can be achieved, e.g., by displaying the current navigation path, or pages visited during the active session
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 56
Department of Telecooperation
Presentation Modeling
� Concepts:
� Not all methods support technology-independent presentation modelingconcepts
� Some rather use technology-specific concepts, such as Stylesheetlanguages, e.g., XSL (Extensible Stylesheet Language)
� Important factor for Web applications is the graphical layout design of the user interface
− often produced by a graphic designer based on some basic drawings, or conceptualized by the tool-supported implementation of prototypical pages
− Although this task is part of presentation modeling, it is currently not supported by modeling techniques.
29
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 57
Department of Telecooperation
Presentation Modeling
� Model elements are described on three hierarchical levels:
� Presentation page: a page presented to the user as a
visualization unit. It can be composed of different presentation
units.
� Presentation unit: serves to group related user interface
elements, representing a logical fragment of the page. It
presents a node stemming from the hypertext model.
� Presentation element: basic building block of the presentation
model. Presentation elements represent a node’s set of
infor-mation and can include text, images, audio, etc.
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 58
Department of Telecooperation
Presentation Modeling
«anchor»
Author1
«anchor»
Author2
«presentation unit»AuthorList
«page»PaperPage
«presentation unit»
Paper
«text»
SubmissionDate
«text»
Title
«anchor»
Authors
«text»
Abstract
«anchor»FullVersion(Pdf)
«button»SubmitReview
«page»
AuthorPage
«presentation unit»Author
«button»
SubmitChanges
...
«text»
Name
«text»Affiliation
«text»
«text»
PaperID
Presentation Model
using UW
E
(Class D
iagrams)
Reviewing System Example
30
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 59
Department of Telecooperation
Presentation Modeling
sd Display selected paper
:ListOfAssignedPapers
«navigation class»:Paper
«presentation unit»:Paper
browse
create
:Reviewer
navigate(Paper)
sd Display selected paper
:ListOfAssignedPapers
«navigation class»:Paper
«presentation unit»:Paper
browse
create
:Reviewer
navigate(Paper)
sd Retrieve list of assigned papers
«page»
ConferenceHomepage
«presentation unit»
:NavigationBar
«index»
:AssignedPapers
:Paper:ListOfAssigned
Papers
navigate
show
navigate(assignedPapers)browse
select
create
show
:Reviewer
loop(0,nrAssignedPapers)
sd Retrieve list of assigned papers
«page»
ConferenceHomepage
«presentation unit»
:NavigationBar
«index»
:AssignedPapers
:Paper:ListOfAssigned
Papers
navigate
show
navigate(assignedPapers)browse
select
create
show
:Reviewer
loop(0,nrAssignedPapers)
using UWE
(Sequence Diagrams)
Reviewing System Example
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 60
Department of Telecooperation
Presentation Modeling
<<PresentationModel>>
GenericPresentationModel
PageMaster
PageSequence
InlineElement
BoxMaster
Region Block
Music Store
Example
using WUML
31
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 61
Department of Telecooperation
Presentation Modeling
PageMaster
CD: "The very Best of the King"
. . .
Artist: Elvis Presly release Date: 12.07.2002
to Artist to Songs
PageSequence
region start
region body
Region
Block
InlineElement
BoxMaster
Music Store
Example
using WUML
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 62
Department of Telecooperation
<<PresentationModel>>
BoxMaster
Presentation Modeling
<<P_BoxMaster>>Standardbox1
background = "white"marginLeft = "10"marginRight = "10"marginBottom = "10"marginTop = "10"border = "NULL"padding = "NULL"width = "300"height = "50"
<<P_Block>>MusicBaseLinkArtists
sequence = "8"<<P_Block>>
ArtistName
sequence = "1"
<<P_Link>>MusicBaseLinkArtist
sequence = "3"presentationObject = "to Artist"externalDestinationinternalDestinationshowDestinationtargetStylesheet
<<P_Text>>ArtistNameLabel
sequence = "1"presentationObject = "Artist"
<<P_EditField>>ArtistNameField
sequence = "2"presentationObject
1 1
1
1
1
11
1
1
1
Music Store Example
using WUML
32
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 63
Department of Telecooperation
Presentation Modeling
� Similarly to mapping the content model to the hypertext model
� specify how hypertext elements should be mapped to
presentation elements.
� normally done under the assumption that all instances of a node
will be displayed on the presentation level.
� Interactions triggered by a user are not necessarily limited to the presentation level only
� objects and application logic on the content level, and for
navigation on the hypertext level.
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 64
Department of Telecooperation
Outline of the Module 1/2
Overview on Web Engineering
� Categories of Web Applications
� Characteristics of Web Applications
� Web Engineering vs. Software Engineering
Web Application Modelling
� Motivation
� Requirements Framework
� Modelling of Web Applications
� Overview on Existing Modelling Methods
33
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 65
Department of Telecooperation
Araneus
HDM
HDM lite
Some Important Modeling Methodsand their Genesis
Modeling Methods
(Atzeni et al. 1998)content and hypertext level are refined independently from each,
refinement of models
Hypermedia Design Method (Garzotto et al., 1997)hypertext systems focused, separates between design in the small and
in the large
Autoweb project (Fraternali, 2000)automation of the development process and with automatic generation
of Web applications in mind
(Houben et al. 2004)recent behavioural extension based on RMM
Object-Oriented Hypermedia Method (Gomez et al., 2003)more recent methods, combining the benefits of WebML, OOHDM, and
UWE
HERA
OO-H
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 66
Department of Telecooperation
RMM
OOHDM
Some Important Modeling Methodsand their Genesis
Modeling Methods
Object-oriented Hypermedia Design Method (Rossi et al., 1999) emphasizes the concept of navigation context
Object-Oriented Web Soluations (Pastor et al. 2005)concepts of the UML, but it mainly propose their own notation
Relationship Management Methodology (Isakowitz et al., 1998)defines M-Slices over ER, gradual process for the successive
refinement of models
UML-based Web-Engineering (Baumeister et al., 1999)UML-based notation and meta-model based model consistency
checking
UWE
OOWS
34
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 67
Department of Telecooperation
WAE2
WebML
Some Important Modeling Methodsand their Genesis
Modeling Methods
Web Application Extension (Conallen 2004)a UML approach that focuses on the distribution of the application
logic
Web-Modeling Language (Ceri et al., 2003)easy-to-understand and mature modeling language for data-intensive
Web applications
W2000 (Baresi et al. 2001)UML-like refinement of HDM, hypertext-centric and user-centric
perspectives
Web Site Design Method (De Troyer et al.)methodic approach oriented towards user requirements
WebSA Web Software Architecture (Meliá et al. 2005)an approach for modeling Web architectures
W2000
WSDM
WebSA
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 68
Department of Telecooperation
Some Important Modeling Methodsand their Genesis
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
HDM-Lite
HDM
WSDM
W2000
Underlying
Modeling LanguageER UMLOMT
Hera
WAE
WAE2
RMM
Data-oriented
Hypertext-orientedObject-oriented
Software-oriented
UWE
OO-H
OOHDM
WebML
WebSA
OOWS
35
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 69
Department of Telecooperation
Modeling Method ExamplesOOHDM
Navigation Schema
project
document
protocol
school
person
some syntatic suggar
Rossi et al., 1999
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 70
Department of Telecooperation
Modeling Method ExamplesOOHDM
Context Schema
Main menue
Project results Indexprojects by school
Project
by school
by subject
some syntatic suggar
Rossi et al., 1999
36
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 71
Department of Telecooperation
Modeling Method ExamplesRMM
M-Slice Diagram
article
abstract
title
bib_citation
index
written_by
contriubtor
name
some syntatic suggar
Isakowitz et al., 1998
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 72
Department of Telecooperation
Modeling Method ExamplesUWE
Navigational Structure ModelmainMenue
searchByNameIndex departmentIndex projectIndex
EmployeeContext
by name
by department
search by name
department by name
some syntatic suggar
Baumeister et al., 1999
37
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 73
Department of Telecooperation
Overview on Existing Modeling Methods
Mode
ling M
etho
d
Mod
elin
g Par
adig
m
Not
atio
n
Evolv
ing
Req
uirem
ents
Mod
elin
g
Con
tent M
odel
ing
Hyp
erte
xt M
odel
ing
Prese
ntat
ion M
odelin
g
Cust
omizat
ion
Mod
elin
g
Struc
ture
and
Beh
avio
r
Proce
ss /
Appro
ach
Tool S
uppor
t
Gen
erat
ion
Stren
gths
HDM-lite HTER + own
notation� � � � � � s own generating tools auto
process for model transformation,
automatic generation
Hera DB
ER +
RMM+
own
notation
� � � � � � s + b ownauthoring &
generation toolsemi model-driven development
OO-H OO
UML +
own
notation� � � � � pers s + b own
modeling- &
generation toolauto tool for automatic generation
OOHDM OO
UML +
own
notation� � � � � pers s + b own � �
powerful concepts for contextual
navigation, personalization
OOWS OO
UML +
own
notation� � � � � � s + b own
modeling- &
generation toolauto
advanced (commercial) tool for
automatic generation
RMM DBER + own
notation� � � � � � s own authoring tool semi
hypertext modeling based on ER-
model, predefined process
UWE OO UML � � � � � pers s + b RUPextended UML tool &
generation toolssemi
UML-based method, model-driven
development, aspect-oriented
customization
W2000
(HDM)HT UML � � � � � pers s � extended UML-tool � user-centric hypertext modeling
WAE2
(WAE)SW UML � � � � � � s + b RUP standard UML-tools �
implementation design,
architectural design
WebML DB ER,UML � � � � � pers s + b ownmodeling- &
generation toolauto
well-elaborated notation, database
integration, generation
WSDM HTown
notation� � � � � � s + b own � � user-centric approach for analysis
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 74
Department of Telecooperation
Tool Support
� WebRatio Site Development Studio
� Commercial model-based development tool
� WebML as base language
� Code generator:
− uses XSL to transform content and hypertext models represented in XML into the required database representation and database connections as well as software components and different output formats (HTML, WML, PDF, Microsoft Word
� Tool called EasyStyle to generate the presentation of pages, which will transform annotated pages into XSL stylesheets automatically
� Runtime framework
− based on a set of Java components, which can be configured by use of XML files.
− suited for the Jakarta Struts open-source platform and for JSP tag libraries
� www.webratio.com
38
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 75
Department of Telecooperation
Tool Support
� VisualWADE
� Commercial model-based development tool
� Based OO-H method
� Supports modeling and automatic generation of applications based
on XML, ASP, JSP, and PHP.
� augments a UML model with two additional models:
− “Navigation View” is used to model the hypertext aspects
− “Presentation View” represents interaction elements of the user interface
with regard to its structure and behavior using a number of template structures (device-independent description )
� Generation of the the Web application for different runtime
environments and devices possible
� www.visualwade.com
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 76
Department of Telecooperation
Tool Support
� OpenUWE Tool Suite
� Open architecture approach based on established standards
� Realizes UWE approach
� Based on the open source CASE tool ArgoUML
� Includes:
− model consistency checker,
− layout editor,
− code generators
� Code generators for the Cocoon XML Publishing Framework.
� The common data exchange language within this architecture is based on the extensible UWE meta-model.
� still under development
� www.pst.ifi.lmu.de/projekte/uwe
39
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 77
Department of Telecooperation
Recent and Future Developments in Web Application Modeling
� Behavioral modeling in terms of workflow and transactionsupport
� Adaptivity in terms of personalization and context-awareness
� Web Services integration
� Model-Driven Development (MDD) as required by OMG's
Model-Driven Architecture (MDA) approach
� Mobile Web applications support
� Aspect oriented modeling of Web applications
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 78
Department of Telecooperation
Take Home Message
1. Modeling of Web applications essentatial prior to their realization
2. Consider structure and behavior for content, hypertext and presentation
3. A series of methods exists mainly focusing on hypertext and content/hypertext modeling
4. Easiness of application along with tool support vital for acceptance
1
2
3
4
40
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 79
Department of Telecooperation
Thank you for your attention!
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 80
Department of Telecooperation
Literature
� [AkGe05] Akanda, M. A. K., Germán, D. M., A System of Patterns for Web Navigation, in Proceedings of the 5th
International Conference on Web Engineering (ICWE 2005), Sydney, Australia, 25-29 July, 2005.
� [BaGG04] Baerdick, H., Gogolla, M., Gutsche, F., Detecting OCL Traps in the UML2.0 Superstructure: An
Experience report. in Proceedings of 7th International Conference on the Unified Modeling Language
(UML'2004), Springer, LNCS 3273, Lisbon, Portugal, 2004.
� [BCF+05] Brambilla, M., Ceri, S., Fraternali, P., Acerbis, R., Bongio, A., Model-Driven Design of sservice-enabled
Web Applications in ACM SIGMOD Conference 2005, SIGMOD Industrial, Baltimore, Maryland, USA, 2005.
� [BKKZ05] Baumeister, H., Knapp, A., Koch, N., Zhang, G., Modeling Adaptivity with Aspects, in Proceedings of
the 5th International Conference of Web Engineering (ICWE05), Springer Verlag, LNCS 3579, Sydney, Australia,
July, 2005.
� [BoRJ99] Booch, G., Rumbaugh, J., Jacobson, I., Unified Modeling Language User Guide, Addison-Wesley,
1999.
� [CeDM03] Ceri, S., Daniel, F., Matera, M., Extending WebML for Modeling Multi-Channel Context-Aware Web
Applications in Proceedings of the Workshop on Mobile Multi-Channel Information Systems (MMIS03), IEEE
Press, Roma, December, 2003.
� [Esca04] Escalona, M.J., Models and Techniques for Specification and Analysis of Navigation in Software
Systems, PhD. Thesis, University of Seville, October, 2004.
� [FrVK03] Fritsch, D., Klinec, D., Volz, S., NEXUS - Integrating Data and Services for Mobile Users of Location
Based Applications in Proceedings of the International Symposium on Networks for Mobility: FOVUS; Stuttgart,
Germany, September, 2002.
41
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 81
Department of Telecooperation
Literature
� [GaCG05] Garrigós, I., Casteleyn, S., Gómez, J., A Structured Approach to Personalize Websites using the OO-
H Personalization Framework in Web Technologies Research and Development, Proceedings of 7th Asia-Pacific
Web Conference (APWeb 2005), Springer-Verlag, ISBN 3-540-25207-X, Shangai, China, March-April 2005.
� [GoRS05] Gordillo, S. E., Rossi, G., Schwabe, D., Separation of Structural Concerns in Physical Hypermedia
Models, in Proceedings of the 17th Conference on Advanced Information Systems Engineering (CAiSE 2005),
Porto, Portugal, June 2005.
� [HFBV04] Houben, G.-J., Frasincar, F., Barna, P., Vdovjak, R., Modeling User Input and Hypermedia Dynamics
in Hera in Proceedings of the International Conference on Web Engineering (ICWE04), Munich, 2004.
� [HKKR05] Hitz, M., Kappel, G., Kapsammer, E., Retschitzegger, W., UML@Work - Objektorientierte
Modellierung mit UML, 3rd edition, dpunkt, 2005.
� [KPRR04] Kappel, G., Pröll, B, Reich, S., Retschitzegger, W., Web Engineering - Systematische Entwicklung von
Web-Anwendungen, ISBN 3-89864-234-8, dpunkt-Verlag, October 2003.
� [MeCa04] Meliá, S., Cachero, C., An MDA Approach for the Development of Web Applications in Proceedings of
4th International Conference on Web Engineering (ICWE 2004), LNCS 3140, Springer Verlag, Munich, July
2004.
� [MeGK05] Meliá, S., Gómez, J., Koch, N., Improving Web Design Methods with Architecture Modeling, in
Proceedings of 6th International Conference on Electronic Commerce and Web Technologies (EC-Web 2005),
LNCS 3590, Springer Verlag, August 2005.
� [PlCD05] Plessers, P., Casteleyn, S., De Troyer, O., Semantic Web Development with WSDM in Proceedings of
the 5th International Workshop on Knowledge Markup and Semantic Annotation (SemAnnot 2005), Galway,
Ireland, 2005.
Department of Telecooperation
W. Schwinger - Model-Driven Development of Ubiquitous Web-Applications 82
Department of Telecooperation
Literature
� [PPF+05] Pastor, O., Pelechano, V., Fons, J., Abrahão, S., Conceptual Modelling of Web Applications: the
OOWS Approach in Web Engineering - Theory and Practice of Metrics and Measurement for Web Development,
Emilia Mendes and Nile Mosley (Eds.), Springer Verlag, 2005.
� [OMG05] Object Management Group (OMG): "MDA Guide", omg/03-06-01,
� version 1.0.1, 2005, http://www.omg.org, [letzter Besuch: 2005-11-28].
� [QVT05] QVT-Merge Group: Revised Submission for MOF 2.0; OMG Query/Views/Transformations
RFP(ad/2002-04-10), Version 2.0, ad/2005-03-02, March 2005.
� [RuJB04] Rumbaugh, J., Jacobson, I., Booch, G., The Unified Modeling Language Reference Manual, 2nd
edition, Addison-Wesley, 2004.