SlideShare a Scribd company logo
1 of 58
Download to read offline
Advanced Software Engineering
Paolo Bottoni
Lecture 7: WebML (IFML)
IFML usage
• High-level description of a Web application
• Multiple views of the same content
• Repository of the meta-information collected during
the design process
• Data manipulation operations for
– updating the site content
– interacting with arbitrary external services
• Separate information content from composition into
pages, navigation, and presentation
• Explicit modelling of users and communities
2
Advanced Software Engineering Lesson7WebML
3
Advanced Software Engineering Lesson7WebML
What it is for:
interaction
3
Advanced Software Engineering Lesson7WebML
4
Advanced Software Engineering Lesson7WebML
What it is for: multiple
interaction
4
Advanced Software Engineering Lesson7WebML
5
Advanced Software Engineering Lesson7WebML
What it is for:
actions
5
Advanced Software Engineering Lesson7WebML
6
Advanced Software Engineering Lesson7WebML
What it is for: forms
6
Advanced Software Engineering Lesson7WebML
7
Advanced Software Engineering Lesson7WebML
The IFML metamodel
Advanced Software Engineering Lesson7WebML
8
Advanced Software Engineering Lesson7WebML
Metamodel for interaction flow
Advanced Software Engineering Lesson7WebML
9
Advanced Software Engineering Lesson7WebML
Metamodel for events
Advanced Software Engineering Lesson7WebML
10
Advanced Software Engineering Lesson7WebML
Metamodel for parameter binding
Advanced Software Engineering Lesson7WebML
11
Advanced Software Engineering Lesson7WebML
Metamodel for view components
Advanced Software Engineering Lesson7WebML
12
Advanced Software Engineering Lesson7WebML
Metamodel for modules
Advanced Software Engineering Lesson7WebML
Models
• Data Model
– conceptual data organization
– compatible with ER and UML class diagrams.
• Derivation model
– extends structure model with calculated data
• Hypertext model
– specification of the front-end of the application
• Content Management Model
– extends hypertext model with operations and transactions
13
Advanced Software Engineering Lesson7WebML
Data Model
• Based on Entity-Relationship
– Entities, attributes, data types, relationships
• Entities
– Description of common features of set of objects
– Population: set of objects described by entity.
• Attributes
– relevant properties of real world objects
– entity instances characterized by same attributes
14
Advanced Software Engineering Lesson7WebML
Relationships
• Generalization
– Single inheritance among entities
– Instances from only one sub-entity
– Entities in at most one generalization hierarchy
• Relations
– Semantic connections between entities
– Entities have roles
– Minimum and maximum cardinality constraints
15
Advanced Software Engineering Lesson7WebML
Notations
16
Advanced Software Engineering Lesson7WebML
Derivation model
• Extends the elements of the structure model with
calculated elements
– Augment entity content by adding attributes calculated
or imported from related objects
– Define populations of entities and relationships based
on some property of the involved objects
• WebML-OQL: set-oriented, navigational query
language
– Now the standard defines only the metamodel
• UML OCL and OQL path expressions
17
Advanced Software Engineering Lesson7WebML
WEBML-OQL attributes
• Imported
– affiliationName = Self.Affiliation.name
• Calculated
– netPrice = Self.grossPrice – Self.tax
• Aggregate
– totalAlbums = count(Self.ArtistToAlbum)
– TotalTracksDuration =
sum(Self.ArtistToAlbum.AlbumToTrack.duration)
18
Advanced Software Engineering Lesson7WebML
WEBML-OQL filters
recentAlbumsCount =
count(Self.ArtistToAlbum as B
WHERE B.date > '1997-01-01')
totRecentTracksDuration =
sum(Self.ArtistToAlbum(as B).
AlbumToTrack.duration
WHERE B.date > '1997-01-01').
19
Advanced Software Engineering Lesson7WebML
WebML-OQL: derived relationships
• Concatenation of relationships
CoParticipation =
Self.ArtistToCompilation.CompilationToArtist
• Evaluation of predicates
CoParticipation = Self.ArtistToCompilation.CompilationToArtist
as A where Self.Affiliation = A.Affiliation
20
Advanced Software Engineering Lesson7WebML
Hypertext model
• Specifies organization of front-end interfaces
• Elements:
– units: atomic pieces of publishable content
– pages: interface elements delivered to users
– links: navigation and parameter passing
• Modularization constructs
– areas: clusters of pages with homogeneous purpose
– site view: coherent hypertext for set of requirements
21
Advanced Software Engineering Lesson7WebML
Units
• Data unit: information about single object.
• Multidata unit: information about set of objects
• Index unit: list of descriptive properties of objects.
• Scroller unit: browsing of ordered set
• Entry unit: entry forms for input gathering.
22
Advanced Software Engineering Lesson7WebML
Icons for units (WebML)
23
Advanced Software Engineering Lesson7WebML
24
Advanced Software Engineering Lesson7WebML
From WebML to IFML I
25
Advanced Software Engineering Lesson7WebML
From WebML to IFML II
26
Advanced Software Engineering Lesson7WebML
From WebML to IFML III
Module
Parameter Binding
27
Advanced Software Engineering Lesson7WebML
Architecture of IFML diagrams
28
Advanced Software Engineering Lesson7WebML
Diagram interchange metamodel
Role of units
Multiplicity Role Operations
Data Single Presentation Publishing
Set Presentation Publishing
Index Set Selection Publishing
Set Selection Publishing
Entry Acquisition
Multidata
Scroller
29
Advanced Software Engineering Lesson7WebML
Getting content for data units
• Source: name of entity, type of object
providing content.
• Selector: predicate to determine the actual
objects of the source entity that contribute
– Conjunction / Disjunction of elementary
conditions, built from entity attributes and relations
and from constant or variable terms.
30
Advanced Software Engineering Lesson7WebML
Getting content for multidata units
• Name: user-defined name
• Source: entity providing content
• Selector: predicate selecting objects.
• Included attributes: set of attributes to be
visualized for each object
• Order clause: set of attributes used to sort
objects and sorting criterion
31
Advanced Software Engineering Lesson7WebML
Getting content for index units
• Name: user-defined name
• Source: entity providing content
• Selector: predicate selecting objects
• Included attributes: set of attributes used to display the index entries.
• Order clause: set of attributes used to sort objects and sorting criterion
• Variants:
– multi-choice index unit, checkbox associated with entries
– hierarchical index, index entries organised in a multi-level tree
32
Advanced Software Engineering Lesson7WebML
Notation
33
Advanced Software Engineering Lesson7WebML
Variants of index units
IndexUnit AlbumIndex hierarchical
(source Album;
attributes Title;
orderby Title
NEST Track
selector AlbumToTrack;
attributes Title;
orderby Title)
IndexUnit AlbumIndex multi-choice
(source Album;
attributes Title;
orderby Title)
34
Advanced Software Engineering Lesson7WebML
Scroller units
• Name: user-defined name
• Source: entity providing content
• Selector: predicate selecting objects
• Block factor: number of objects scrolled together.
• Block window: maximum number of shown blocks
that preceed and follow the current block
• Order clause:set of attributes used to sort the objects
and sorting criterion
35
Advanced Software Engineering Lesson7WebML
Entry units
• Name: user-defined name
• Fields: set of fields for inputting values.
• Property of fields:
– Name: name of the field.
– Type: data type of the value input
– Initial value: default value initially proposed
– Modifiability: flag specifying if the user can modify the initial
field value or not
– Validity predicate: Boolean condition on the input
36
Advanced Software Engineering Lesson7WebML
Notation
37
Advanced Software Engineering Lesson7WebML
Links
Inter-Page
Contextual CA CE
Non contextual NA NE
Intra-Page
parametric selector
link parameter
NE
CE
38
Advanced Software Engineering Lesson7WebML
Links
CA
Multiple outgoing links from a hierarchy
39
Advanced Software Engineering Lesson7WebML
Complex navigations
40
Advanced Software Engineering Lesson7WebML
Global parameters
• Context information not transferred point-to-
point during navigation, but available to all
the pages of a site
– e.g. multi-country Web site, user selects the
country of interest and then browses the site's
content relative to that country
– hypertext the same for all countries, actual content
varies country by country
• Use of set unit
41
Advanced Software Engineering Lesson7WebML
Views and areas
42
Advanced Software Engineering Lesson7WebML
Conjunctive nested pages
43
Advanced Software Engineering Lesson7WebML
Disjunctive nested pages
44
Advanced Software Engineering Lesson7WebML
Content management model
• Operation unit: processing executed as result of link
navigation
– data manipulation
– execution of a generic external service.
• OK and KO-links: operation success and failure
– allow alternative courses after execution of an operation
• Transactions: clusters of operation units
– succeed or fail as a whole. Undone if one fails
45
Advanced Software Engineering Lesson7WebML
Operations
• Predefined
– Creation, deletion and modification of objects, and relationships.
• Generic
– Integration of external procedures of arbitrary complexity
• Operations:
– May have multiple incoming links.
– May be linked to form a sequence.
– One regular incoming link, and transport links. Navigates the
regular link and uses the parameters associated with input links.
– Have one OK link and one KO link
– May have any number of outgoing transport links
46
Advanced Software Engineering Lesson7WebML
Icons for operations
47
Advanced Software Engineering Lesson7WebML
Object creation
User-defined Name
Source entity
Set of assignments
48
Advanced Software Engineering Lesson7WebML
Object deletion
User-defined name
Source entity
Selector
49
Advanced Software Engineering Lesson7WebML
Multiple deletion
50
Advanced Software Engineering Lesson7WebML
Object modification
User-defined name
Source entity
Selector
Set of assignments
51
Advanced Software Engineering Lesson7WebML
Relation creation
User-defined name
Source relationship role
Two selectors, one for
objects of the source entity
and one for objects of the
destination entity.
52
Advanced Software Engineering Lesson7WebML
Relation deletion
User-defined name
Source relationship role
Two selectors, one for
objects of the source
entity and one for object
of the destination entity.
53
Advanced Software Engineering Lesson7WebML
Transactions
• ACID properties
– Atomicity: either all the involved operations are successfully
completed, producing a new database state, or the initial
database state is left unchanged.
– Consistency: carrying out a transaction should not violate the
integrity of data.
– Isolation: each transaction execution is independent of the
simultaneous execution of other transactions.
– Durability: effects of transactions that complete successfully are
recorded persistently.
• Operations chained by a sequence of OK links
• The last OK link leads to the (unique) hypertext page shown
after the successful completion of the transaction.
54
Advanced Software Engineering Lesson7WebML
Icons for sessions
55
Advanced Software Engineering Lesson7WebML
Icons for services
56
Advanced Software Engineering Lesson7WebML
Icons for control flow
57
Advanced Software Engineering Lesson7WebML
Icons for utilities
58
Advanced Software Engineering Lesson7WebML

More Related Content

Similar to Lesson7WebML.pdf

Portfolio
PortfolioPortfolio
Portfoliojeanux
 
Oracle DV V4 new features overview
Oracle DV V4 new features overviewOracle DV V4 new features overview
Oracle DV V4 new features overviewPhilippe Lions
 
Why Upgrade to v8.6?
Why Upgrade to v8.6?Why Upgrade to v8.6?
Why Upgrade to v8.6?BillCavaUs
 
Contentful with Netgen Layouts workshop
Contentful with Netgen Layouts workshopContentful with Netgen Layouts workshop
Contentful with Netgen Layouts workshopIvo Lukac
 
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...MskDotNet Community
 
Effort estimation for web applications
Effort estimation for web applicationsEffort estimation for web applications
Effort estimation for web applicationsNagaraja Gundappa
 
Asp 1-mvc introduction
Asp 1-mvc introductionAsp 1-mvc introduction
Asp 1-mvc introductionFajar Baskoro
 
Using MVC with Kentico 8
Using MVC with Kentico 8Using MVC with Kentico 8
Using MVC with Kentico 8Thomas Robbins
 
Diksha sda presentation
Diksha sda presentationDiksha sda presentation
Diksha sda presentationdikshagupta111
 
GraphQL Advanced
GraphQL AdvancedGraphQL Advanced
GraphQL AdvancedLeanIX GmbH
 
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvpZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvpChalermpon Areepong
 
Introduction to Web Components & Polymer Workshop - U of I WebCon
Introduction to Web Components & Polymer Workshop - U of I WebConIntroduction to Web Components & Polymer Workshop - U of I WebCon
Introduction to Web Components & Polymer Workshop - U of I WebConJohn Riviello
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectJadson Santos
 
AvalancheProject2012
AvalancheProject2012AvalancheProject2012
AvalancheProject2012fishetra
 

Similar to Lesson7WebML.pdf (20)

Portfolio
PortfolioPortfolio
Portfolio
 
Oracle DV V4 new features overview
Oracle DV V4 new features overviewOracle DV V4 new features overview
Oracle DV V4 new features overview
 
Why Upgrade to v8.6?
Why Upgrade to v8.6?Why Upgrade to v8.6?
Why Upgrade to v8.6?
 
Contentful with Netgen Layouts workshop
Contentful with Netgen Layouts workshopContentful with Netgen Layouts workshop
Contentful with Netgen Layouts workshop
 
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
 
sem5.pdf
sem5.pdfsem5.pdf
sem5.pdf
 
Effort estimation for web applications
Effort estimation for web applicationsEffort estimation for web applications
Effort estimation for web applications
 
Asp 1-mvc introduction
Asp 1-mvc introductionAsp 1-mvc introduction
Asp 1-mvc introduction
 
Using MVC with Kentico 8
Using MVC with Kentico 8Using MVC with Kentico 8
Using MVC with Kentico 8
 
70487.pdf
70487.pdf70487.pdf
70487.pdf
 
LINQ in C#
LINQ in C#LINQ in C#
LINQ in C#
 
Diksha sda presentation
Diksha sda presentationDiksha sda presentation
Diksha sda presentation
 
Asp 1a-aspnetmvc
Asp 1a-aspnetmvcAsp 1a-aspnetmvc
Asp 1a-aspnetmvc
 
Aspnetmvc 1
Aspnetmvc 1Aspnetmvc 1
Aspnetmvc 1
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
GraphQL Advanced
GraphQL AdvancedGraphQL Advanced
GraphQL Advanced
 
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvpZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
 
Introduction to Web Components & Polymer Workshop - U of I WebCon
Introduction to Web Components & Polymer Workshop - U of I WebConIntroduction to Web Components & Polymer Workshop - U of I WebCon
Introduction to Web Components & Polymer Workshop - U of I WebCon
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
 
AvalancheProject2012
AvalancheProject2012AvalancheProject2012
AvalancheProject2012
 

More from cifoxo

Lesson6IntroductionToGraphs.pdf
Lesson6IntroductionToGraphs.pdfLesson6IntroductionToGraphs.pdf
Lesson6IntroductionToGraphs.pdfcifoxo
 
Lesson3UMLMetamodel.pdf
Lesson3UMLMetamodel.pdfLesson3UMLMetamodel.pdf
Lesson3UMLMetamodel.pdfcifoxo
 
Lesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdfLesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdfcifoxo
 
CyberX_Slides_Melloni.Daniele.pdf
CyberX_Slides_Melloni.Daniele.pdfCyberX_Slides_Melloni.Daniele.pdf
CyberX_Slides_Melloni.Daniele.pdfcifoxo
 
I lesson.pdf
I lesson.pdfI lesson.pdf
I lesson.pdfcifoxo
 
2023-02-22_Tiberti_CyberX.pdf
2023-02-22_Tiberti_CyberX.pdf2023-02-22_Tiberti_CyberX.pdf
2023-02-22_Tiberti_CyberX.pdfcifoxo
 
CTF CyberX-Mind4Future[4].pptx
CTF CyberX-Mind4Future[4].pptxCTF CyberX-Mind4Future[4].pptx
CTF CyberX-Mind4Future[4].pptxcifoxo
 

More from cifoxo (7)

Lesson6IntroductionToGraphs.pdf
Lesson6IntroductionToGraphs.pdfLesson6IntroductionToGraphs.pdf
Lesson6IntroductionToGraphs.pdf
 
Lesson3UMLMetamodel.pdf
Lesson3UMLMetamodel.pdfLesson3UMLMetamodel.pdf
Lesson3UMLMetamodel.pdf
 
Lesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdfLesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdf
 
CyberX_Slides_Melloni.Daniele.pdf
CyberX_Slides_Melloni.Daniele.pdfCyberX_Slides_Melloni.Daniele.pdf
CyberX_Slides_Melloni.Daniele.pdf
 
I lesson.pdf
I lesson.pdfI lesson.pdf
I lesson.pdf
 
2023-02-22_Tiberti_CyberX.pdf
2023-02-22_Tiberti_CyberX.pdf2023-02-22_Tiberti_CyberX.pdf
2023-02-22_Tiberti_CyberX.pdf
 
CTF CyberX-Mind4Future[4].pptx
CTF CyberX-Mind4Future[4].pptxCTF CyberX-Mind4Future[4].pptx
CTF CyberX-Mind4Future[4].pptx
 

Recently uploaded

Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetCreating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetDenis Gagné
 
7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...Paul Menig
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfPaul Menig
 
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Delhi Call girls
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdfRenandantas16
 
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesMysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesDipal Arora
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Dipal Arora
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear RegressionRavindra Nath Shukla
 
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableCall Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableDipal Arora
 
Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdftbatkhuu1
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxAndy Lambert
 
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999Tina Ji
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.Aaiza Hassan
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageMatteo Carbone
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒anilsa9823
 
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMMonte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMRavindra Nath Shukla
 
Pharma Works Profile of Karan Communications
Pharma Works Profile of Karan CommunicationsPharma Works Profile of Karan Communications
Pharma Works Profile of Karan Communicationskarancommunications
 

Recently uploaded (20)

Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetCreating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
 
7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
 
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesMysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear Regression
 
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableCall Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
 
Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdf
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
 
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
 
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMMonte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSM
 
Forklift Operations: Safety through Cartoons
Forklift Operations: Safety through CartoonsForklift Operations: Safety through Cartoons
Forklift Operations: Safety through Cartoons
 
Pharma Works Profile of Karan Communications
Pharma Works Profile of Karan CommunicationsPharma Works Profile of Karan Communications
Pharma Works Profile of Karan Communications
 

Lesson7WebML.pdf

  • 1. Advanced Software Engineering Paolo Bottoni Lecture 7: WebML (IFML)
  • 2. IFML usage • High-level description of a Web application • Multiple views of the same content • Repository of the meta-information collected during the design process • Data manipulation operations for – updating the site content – interacting with arbitrary external services • Separate information content from composition into pages, navigation, and presentation • Explicit modelling of users and communities 2 Advanced Software Engineering Lesson7WebML
  • 3. 3 Advanced Software Engineering Lesson7WebML What it is for: interaction 3 Advanced Software Engineering Lesson7WebML
  • 4. 4 Advanced Software Engineering Lesson7WebML What it is for: multiple interaction 4 Advanced Software Engineering Lesson7WebML
  • 5. 5 Advanced Software Engineering Lesson7WebML What it is for: actions 5 Advanced Software Engineering Lesson7WebML
  • 6. 6 Advanced Software Engineering Lesson7WebML What it is for: forms 6 Advanced Software Engineering Lesson7WebML
  • 7. 7 Advanced Software Engineering Lesson7WebML The IFML metamodel Advanced Software Engineering Lesson7WebML
  • 8. 8 Advanced Software Engineering Lesson7WebML Metamodel for interaction flow Advanced Software Engineering Lesson7WebML
  • 9. 9 Advanced Software Engineering Lesson7WebML Metamodel for events Advanced Software Engineering Lesson7WebML
  • 10. 10 Advanced Software Engineering Lesson7WebML Metamodel for parameter binding Advanced Software Engineering Lesson7WebML
  • 11. 11 Advanced Software Engineering Lesson7WebML Metamodel for view components Advanced Software Engineering Lesson7WebML
  • 12. 12 Advanced Software Engineering Lesson7WebML Metamodel for modules Advanced Software Engineering Lesson7WebML
  • 13. Models • Data Model – conceptual data organization – compatible with ER and UML class diagrams. • Derivation model – extends structure model with calculated data • Hypertext model – specification of the front-end of the application • Content Management Model – extends hypertext model with operations and transactions 13 Advanced Software Engineering Lesson7WebML
  • 14. Data Model • Based on Entity-Relationship – Entities, attributes, data types, relationships • Entities – Description of common features of set of objects – Population: set of objects described by entity. • Attributes – relevant properties of real world objects – entity instances characterized by same attributes 14 Advanced Software Engineering Lesson7WebML
  • 15. Relationships • Generalization – Single inheritance among entities – Instances from only one sub-entity – Entities in at most one generalization hierarchy • Relations – Semantic connections between entities – Entities have roles – Minimum and maximum cardinality constraints 15 Advanced Software Engineering Lesson7WebML
  • 17. Derivation model • Extends the elements of the structure model with calculated elements – Augment entity content by adding attributes calculated or imported from related objects – Define populations of entities and relationships based on some property of the involved objects • WebML-OQL: set-oriented, navigational query language – Now the standard defines only the metamodel • UML OCL and OQL path expressions 17 Advanced Software Engineering Lesson7WebML
  • 18. WEBML-OQL attributes • Imported – affiliationName = Self.Affiliation.name • Calculated – netPrice = Self.grossPrice – Self.tax • Aggregate – totalAlbums = count(Self.ArtistToAlbum) – TotalTracksDuration = sum(Self.ArtistToAlbum.AlbumToTrack.duration) 18 Advanced Software Engineering Lesson7WebML
  • 19. WEBML-OQL filters recentAlbumsCount = count(Self.ArtistToAlbum as B WHERE B.date > '1997-01-01') totRecentTracksDuration = sum(Self.ArtistToAlbum(as B). AlbumToTrack.duration WHERE B.date > '1997-01-01'). 19 Advanced Software Engineering Lesson7WebML
  • 20. WebML-OQL: derived relationships • Concatenation of relationships CoParticipation = Self.ArtistToCompilation.CompilationToArtist • Evaluation of predicates CoParticipation = Self.ArtistToCompilation.CompilationToArtist as A where Self.Affiliation = A.Affiliation 20 Advanced Software Engineering Lesson7WebML
  • 21. Hypertext model • Specifies organization of front-end interfaces • Elements: – units: atomic pieces of publishable content – pages: interface elements delivered to users – links: navigation and parameter passing • Modularization constructs – areas: clusters of pages with homogeneous purpose – site view: coherent hypertext for set of requirements 21 Advanced Software Engineering Lesson7WebML
  • 22. Units • Data unit: information about single object. • Multidata unit: information about set of objects • Index unit: list of descriptive properties of objects. • Scroller unit: browsing of ordered set • Entry unit: entry forms for input gathering. 22 Advanced Software Engineering Lesson7WebML
  • 23. Icons for units (WebML) 23 Advanced Software Engineering Lesson7WebML
  • 24. 24 Advanced Software Engineering Lesson7WebML From WebML to IFML I
  • 25. 25 Advanced Software Engineering Lesson7WebML From WebML to IFML II
  • 26. 26 Advanced Software Engineering Lesson7WebML From WebML to IFML III Module Parameter Binding
  • 27. 27 Advanced Software Engineering Lesson7WebML Architecture of IFML diagrams
  • 28. 28 Advanced Software Engineering Lesson7WebML Diagram interchange metamodel
  • 29. Role of units Multiplicity Role Operations Data Single Presentation Publishing Set Presentation Publishing Index Set Selection Publishing Set Selection Publishing Entry Acquisition Multidata Scroller 29 Advanced Software Engineering Lesson7WebML
  • 30. Getting content for data units • Source: name of entity, type of object providing content. • Selector: predicate to determine the actual objects of the source entity that contribute – Conjunction / Disjunction of elementary conditions, built from entity attributes and relations and from constant or variable terms. 30 Advanced Software Engineering Lesson7WebML
  • 31. Getting content for multidata units • Name: user-defined name • Source: entity providing content • Selector: predicate selecting objects. • Included attributes: set of attributes to be visualized for each object • Order clause: set of attributes used to sort objects and sorting criterion 31 Advanced Software Engineering Lesson7WebML
  • 32. Getting content for index units • Name: user-defined name • Source: entity providing content • Selector: predicate selecting objects • Included attributes: set of attributes used to display the index entries. • Order clause: set of attributes used to sort objects and sorting criterion • Variants: – multi-choice index unit, checkbox associated with entries – hierarchical index, index entries organised in a multi-level tree 32 Advanced Software Engineering Lesson7WebML
  • 34. Variants of index units IndexUnit AlbumIndex hierarchical (source Album; attributes Title; orderby Title NEST Track selector AlbumToTrack; attributes Title; orderby Title) IndexUnit AlbumIndex multi-choice (source Album; attributes Title; orderby Title) 34 Advanced Software Engineering Lesson7WebML
  • 35. Scroller units • Name: user-defined name • Source: entity providing content • Selector: predicate selecting objects • Block factor: number of objects scrolled together. • Block window: maximum number of shown blocks that preceed and follow the current block • Order clause:set of attributes used to sort the objects and sorting criterion 35 Advanced Software Engineering Lesson7WebML
  • 36. Entry units • Name: user-defined name • Fields: set of fields for inputting values. • Property of fields: – Name: name of the field. – Type: data type of the value input – Initial value: default value initially proposed – Modifiability: flag specifying if the user can modify the initial field value or not – Validity predicate: Boolean condition on the input 36 Advanced Software Engineering Lesson7WebML
  • 38. Links Inter-Page Contextual CA CE Non contextual NA NE Intra-Page parametric selector link parameter NE CE 38 Advanced Software Engineering Lesson7WebML
  • 39. Links CA Multiple outgoing links from a hierarchy 39 Advanced Software Engineering Lesson7WebML
  • 40. Complex navigations 40 Advanced Software Engineering Lesson7WebML
  • 41. Global parameters • Context information not transferred point-to- point during navigation, but available to all the pages of a site – e.g. multi-country Web site, user selects the country of interest and then browses the site's content relative to that country – hypertext the same for all countries, actual content varies country by country • Use of set unit 41 Advanced Software Engineering Lesson7WebML
  • 42. Views and areas 42 Advanced Software Engineering Lesson7WebML
  • 43. Conjunctive nested pages 43 Advanced Software Engineering Lesson7WebML
  • 44. Disjunctive nested pages 44 Advanced Software Engineering Lesson7WebML
  • 45. Content management model • Operation unit: processing executed as result of link navigation – data manipulation – execution of a generic external service. • OK and KO-links: operation success and failure – allow alternative courses after execution of an operation • Transactions: clusters of operation units – succeed or fail as a whole. Undone if one fails 45 Advanced Software Engineering Lesson7WebML
  • 46. Operations • Predefined – Creation, deletion and modification of objects, and relationships. • Generic – Integration of external procedures of arbitrary complexity • Operations: – May have multiple incoming links. – May be linked to form a sequence. – One regular incoming link, and transport links. Navigates the regular link and uses the parameters associated with input links. – Have one OK link and one KO link – May have any number of outgoing transport links 46 Advanced Software Engineering Lesson7WebML
  • 47. Icons for operations 47 Advanced Software Engineering Lesson7WebML
  • 48. Object creation User-defined Name Source entity Set of assignments 48 Advanced Software Engineering Lesson7WebML
  • 49. Object deletion User-defined name Source entity Selector 49 Advanced Software Engineering Lesson7WebML
  • 50. Multiple deletion 50 Advanced Software Engineering Lesson7WebML
  • 51. Object modification User-defined name Source entity Selector Set of assignments 51 Advanced Software Engineering Lesson7WebML
  • 52. Relation creation User-defined name Source relationship role Two selectors, one for objects of the source entity and one for objects of the destination entity. 52 Advanced Software Engineering Lesson7WebML
  • 53. Relation deletion User-defined name Source relationship role Two selectors, one for objects of the source entity and one for object of the destination entity. 53 Advanced Software Engineering Lesson7WebML
  • 54. Transactions • ACID properties – Atomicity: either all the involved operations are successfully completed, producing a new database state, or the initial database state is left unchanged. – Consistency: carrying out a transaction should not violate the integrity of data. – Isolation: each transaction execution is independent of the simultaneous execution of other transactions. – Durability: effects of transactions that complete successfully are recorded persistently. • Operations chained by a sequence of OK links • The last OK link leads to the (unique) hypertext page shown after the successful completion of the transaction. 54 Advanced Software Engineering Lesson7WebML
  • 55. Icons for sessions 55 Advanced Software Engineering Lesson7WebML
  • 56. Icons for services 56 Advanced Software Engineering Lesson7WebML
  • 57. Icons for control flow 57 Advanced Software Engineering Lesson7WebML
  • 58. Icons for utilities 58 Advanced Software Engineering Lesson7WebML