maristella matera, matteo picozzi, cinzia...

81
End-User Development of Mobile Mashups Maristella Matera, Matteo Picozzi, Cinzia Cappiello

Upload: trinhdien

Post on 16-Feb-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

End-User Development of Mobile Mashups Maristella Matera, Matteo Picozzi, Cinzia Cappiello

Introduction and motivations

Mobile

User

Web

Development of “ad hoc”

mobile applications

spread of mobile devices

powerful communication

networks

huge number of services

easy access to data

situational needs

data Integration modularity and reuse

desire of participating to content

and apps creation

application integration

user interface integration

limited expertise

in technologies

web mashup

improved HW and SW

technologies

2

Introduction and motivations

(M)EUD Mobile End-User

Development

MobiMash

2

Mobile

User

Web

Platform for lightweight,

user-driven service

composition

spread of mobile devices

powerful communication

networks

huge number of services

easy access to data

situational needs

data integration modularity and reuse

desire of participating to content

and apps creation

application integration

user interface integration

limited expertise

in technologies

web mashup

improved HW and SW

technologies

Mobile Mashups

Web Mashups: • modular and composable

• flexibile

• vertical

• contingent

Mobile Apps: access to

• OS (agenda, calendar,..)

• HW (GPS, camera, ..)

(M)EUD

Mobile Mashups • native mobile applications

• data integration

• remote/local services

• UI component synchronization

3

MobiMash

• Design Environment (DE)

• Execution Engine (EE)

• Configuration Server

5

Data integration

Process for data integration [1]:

‣ data samples retrieved from sources and

local schema representation

[1] J. Bleiholder and F. Naumann. Data fusion. ACM

Comput. Surv., 41(1), 2008.

7

Visual

Source

Data

Sampling

Rules file

generation

Visual

mapping

Visual template

Selection

Classic

Source schema

reverse

engineering

Mapping

between

sources and

global schema

Global

schema

definition

Data views

generation

task for expert users

task for non expert users

automatic task

Data integration

‣ data samples retrieved from sources and

local schema representation

‣ implicit definition of the global schema

through the selection of a Visual Template

[1] J. Bleiholder and F. Naumann. Data fusion. ACM

Comput. Surv., 41(1), 2008.

Process for data integration [1]:

7

Visual

Source

Data

Sampling

Rules file

generation

Visual

mapping

Visual template

Selection

Classic

Source schema

reverse

engineering

Mapping

between

sources and

global schema

Global

schema

definition

Data views

generation

task for expert users

task for non expert users

automatic task

Data integration

‣data samples retrieved from sources and

local schema representation

‣ implicit definition of the global schema

through the selection of a Visual Template

‣ mapping between the source local

schema and the global schema through

XPath queries on the source result sets

[1] J. Bleiholder and F. Naumann. Data fusion. ACM

Comput. Surv., 41(1), 2008.

Process for data integration [1]:

7

Visual

Source

Data

Sampling

Rules file

generation

Visual

mapping

Visual template

Selection

Classic

Source schema

reverse

engineering

Mapping

between

sources and

global schema

Global

schema

definition

Data views

generation

task for expert users

task for non expert users

automatic task

Data integration

‣ implicit definition of the global schema

through the selection of a Visual Template

‣data samples retrieved from sources and

local schema representation

‣ mapping between the source local

schema and the global schema through

XPath queries on the source result sets

‣ generation of the rules for the automatic

instantiation of the mobile application

[1] J. Bleiholder and F. Naumann. Data fusion. ACM

Comput. Surv., 41(1), 2008.

Process for data integration [1]:

7

Visual

Source

Data

Sampling

Rules

generation

Visual

mapping

Visual template

Selection

Classic

Source schema

reverse

engineering

Mapping

between

sources and

global schema

Global

schema

definition

Data views

generation

task for expert users

task for non expert users

automatic task

Data integration process

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

8

Selection of data sources from the

platform repository

Data sources: RESTful service returning

an XML document (data.xml)

Tree based representation of the source

local schema and a sample of the service

data instances.

Data integration process

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

data value

tag name

attribute name

Tree Legend

data.xml

Tree-based

rapresentation

http://free.worldweatheronline.com/weather.ashx?

q=Chicago&

format=xml&

num_of_days=4&

key=5ada3838de115125111210

9

Data integration process

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

Visual Template (VT): a UI-based representation of the way data can be rendered in the

application under construction.

VT= <vr1,vr2,...,vrn>

vrk : visual renderer, it renders data items extracted

by data sources

a) union sub-template: {vrk} k=1,...,m

b) merge sub-template: {vrk} k=m+1,...,n

b) a)

title

subtitle

image

detail

10

Data integration process

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

• Visual mapping, to fill out:

‣ union sub-template

‣ merge sub-template

• Synchronization with additional

UI components

11

Data integration process

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

Drag&drop actions

map attributes on

the visual renderers

in the union sub-

template Visual mapping, to fill out

‣ union sub-template

‣ merge sub-template

•Synchronization with

additional UI components

11

Data integration process

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

Drag&Drop actions

map attributes on

the visual renderers

in the merge sub-

template

• Visual mapping, to fill out

‣ union sub-template

‣ merge sub-template

•Synchronization with additional

•UI components

11

Data integration process

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

• Visual mapping, to fill out

‣ union sub-template

‣ merge sub-template

• Synchronization with

additional UI components

UI Component: a component equipped

with their own UI, through which the

user interacts with the underlying

service (e.g., Google Maps).

Binding: synchronization of the unified

data view (merge sub-template) with

UI components.

- Remote binding: it involves remote

services

- Local binding: it involves services

local to the mobile device (e.g.,

Android applications)

Definition of

synchronization

binding, by dragging

service icon on merge

visual renderer

11

Data integration process

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

11

S= {s1,s2,s3,..,sj}: set of available data sources

M(si.h) ➝ vrk: mapping function

si.h: attribute of the i-th data source

ls(si): local schema, i.e., reduction of the

source schema according to the selection of

attributes operated through the visual mapping

- ∀ si.h ∈ uls(si) : si.h ➝ uvrk

- ∀ si.h ∈ mls(si) : si.h ➝ mvrk

Data integration process

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

Application Schema ‣ Service Data-Layer

‣ Presentation Layer

‣ Service-Binding-Layer

Mobile Mashup

Model

application-schema.xml

12

Data integration process

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

Application Schema ‣ Service Data-Layer

‣ Presentation Layer

‣ Service-Binding-Layer

Mobile Mashup

Model

application-schema.xml

<sources>

<category name=”Concerts” icon=”..”>

<source name=”Last.fm” url=”..”>

<operation>

<param name=”location”

label=”Luogo”

type=”input”>

Chicago</param>

..

</operation>

</source>

<source name=”Upcoming” .... > ... </source>

</category>

..

</sources>

12

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

Application Schema ‣ Service Data-Layer

‣ Presentation Layer

‣ Service-Binding-Layer

Mobile Mashup

Model

application-schema.xml

<union>

<vr name=”Title” type=”Text”>

<data source=”Last.Fm” query=”/events/title” />

<data source=”Upcoming” query=”/@name” />

</vr>

<vr name=”Subtitle” type=”Text”>

<data source=”Last.Fm” query=”/venue/name” />

<data source=”Upcoming” query=”/@venue_name” />

</vr>

<vr name=”Image” type=”Image”>

<data source=”Last.Fm” query=”/venue/image” />

<data source=”Upcoming” query=”/@photo_url” />

</vr>

..

</union>

Data integration process

12

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

Application Schema ‣ Service Data-Layer

‣ Presentation Layer

‣ Service-Binding Layer

Mobile Mashup

Model

application-schema.xml

<merge>

<vr name=”Stato” priority=”0” type=”Text”

source=”Last.Fm” query=”..”

binding=”twitter | flickr | wiki” />

<vr name=”Città” priority=”1” type=”Text”

source=”Last.Fm” query=”..”

binding=”twitter | flickr | wiki” />

<vr name=”Telefono” priority=”2” type=”Text”

source=”Last.Fm” query=”..”

binding=”dialer | addressbook” />

<vr name=”Città” priority=”0” type=”Text”

source=”Upcoming” query=”..”

binding=”twitter | flickr | wiki” />

<vr name=”Indirizzo” priority=”1” type=”Text”

source=”Upcoming” query=”..”

binding=”map” />

...

</merge>

Data integration process

12

Source Data

Sampling

Visual Template

Selection Visual Mapping

Rules File

Generation

Application Schema ‣ Service Data-Layer

‣ Presentation Layer

‣ Service Binding-Layer

Mobile Mashup

Model

application-schema.xml

<filters>

<list-size> true </list-size>

<search> true </search>

</filters>

Data integration process

12

Data fusion “on-demand”

13

(ON) • Fusion at “runtime” of the data instances deriving from different services and mapped

on the same visual template.

• Global Schema: built “on demand” (at runtime) using the set of attributes in the union

sub-template, uls(si), plus the union of all the attributes associated in the different merge

sub-templates, mls(si)

(OFF) • The union sub-template

includes the union of all the

instances extracted through

the mapping query by the

involved services.

• When a specific instance

is selected from the list, the

user can explore the data in

the corresponding merge

sub-template – no fusion is

applied for similar instances

Upcoming

Last.Fm

b) Merge sub-template

a) Union sub-template

c) Merge sub-template

Data fusion “on-demand”

a) Union sub-template

c) Union sub-template

after duplicate elimination and

conflict resolution

b)Merge sub-template

after data-fusion

Duplicate

identification

14

Data Fusion “on-demand”:

• duplicate detection

• data fusion

• duplicate elimination

Data fusion “on-demand”

Data Fusion “on-demand:

• duplicate detection

• data fusion

• duplicate elimination

a) Union sub-template

c) Union sub-template

after duplicate elimination and

conflict resolution

b)Merge sub-template

after data fusion

Duplicate

identification

- Similarity evaluation: Chapman’s Soundex metrics

Sim(si.x, sj.y) → s:

s >= 0.965

- mls(si.x) e mls(sj.y) “fused”

s < 0.965

- Renderin of the only mls(si.x)

14

si.x

sj.y

Data fusion “on-demand”

a) Union sub-template

c) Union sub-template

after duplicate elimination and

conflict resolution

b)Merge sub-template

after data-fusion

Duplicate

identification

- The merge sub-template of the selected

instance will collect all the details of the

instances found as “similar” at step (1)

(duplicate detection)

14

si.x

sj.y

Data Fusion-on-Demand:

• duplicate detection

• data fusion

• duplicate elimination

Data fusion “on-demand”

a) Union sub-template

c) Union sub-template

after duplicate elimination and

conflict resolution

b)Merge sub-template

after data-fusion

Duplicate

identification

- Elimination of the duplicate instances

after conflict resolution:

➡ image not present

➡ different “sub-titles”

- conflict resolution (and completion):

based on a priority assigned to the

services when the application is

designed (data from high priority

services are privileged)

si.x

sj.y

14

Data Fusion-on-Demand:

• duplicate detection

• data fusion

• duplicate elimination

Architecture: Execution Engine

16

Architecture: Execution Engine

16

Architecture: Execution Engine

16

Architecture: Execution Engine

16

Architecture: Execution Engine

16

Architecture: Execution Engine

16

Architecture: Execution Engine

16

Architecture: Design Environment

15

Architecture: Design Environment

15

Architecture: Design Environment

15

Architecture: Design Environment

15

Execution of the Mobile Mashup

• Mashup selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

17

• Mashup selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

Execution of the Mobile Mashup

• Mashup selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling data fusion “on-demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the Mobile Mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Execution of the mobile mashup

• Mashup Selection

• Data sources selection

• Modification of data source parameters

• Enabling Data Fusion “On-Demand”

• List (union sub-template)

• Details (merge sub-template)

• Binding

- Remote bindings: Wikipedia, Youtube,

GoogleMaps, Flickr, Twitter

- Local bindings: dialer

17

Validation: Performance of the mobile application

Test performed on a Samsung Galaxy SII, dual-core processor (1.2 GHz ARM Cortex-

A9) and 1GB RAM

Data fusion execution time:

T_avg(100,2) = 4,9 sec

T_avg(100,3) = 4,02 sec

T_avg(200,2) = 9,31 sec

T_avg(200,3) = 6,71 sec

Average time for data fusion with varying

numbers of data items

0

1

2

3

4

5

6

7

8

9

10

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

No of returned data items

Ave

rag

e T

ime

(se

c)

data fusion-on-demand, 3 services data fusion-on-demand, 2 services

18

Validation: Performance of the mobile application

Downloaded Items in the List

40 80 120

3G 7,79 11,70 16,15

Wi-Fi 2,77 4,43 6,15

Test performed on a Samsung Galaxy SII, dual-core processor (1.2 GHz ARM Cortex-

A9) and 1GB RAM

Download time

List download

7,79

11,70

16,15

2,77

4,43

6,15

0

2

4

6

8

10

12

14

16

18

1 web service (40

items)

2 web services (80

items)

3 web services (120

items)

Ave

rag

e tim

e

(se

c)

3G Wi-fi

18

Validation: performance of the mobile application

Download Item List

40 80 120

3G 7,79 11,70 16,15

Wi-Fi 2,77 4,43 6,15

n° of Remote Binding Views

1 2 3 4

5,70 6,67 9,16 10,54

2,20 2,88 3,54 5,96

Download for the Remote Binding View

2,202,88

3,54

5,965,70

6,67

9,16

10,54

0

2

4

6

8

10

12

1 views 2 views 3 views 4 views

Ave

rag

e tim

e

(se

c)

3G Wi-fi

18

Test performed on a Samsung Galaxy SII, dual-core processor (1.2 GHz ARM Cortex-

A9) and 1GB RAM

Download time

Validation: formative evaluation with users

User sample: 10 user divided into two groups: expert users (eu) and non-expert users (neu).

Test Methodology: 2 tasks (A e B) with an incremental complexity (time and number of steps measured).

HP: our method enables both expert users and non-expert users to achieve a good performance as

app creators

• Efficiency

Task A:

- Average time [min] ( neu = 3.83; eu = 4.22)

- Wilcoxon-Mann (U = 15.5, p = .55)

Task B:

- Average time [min] (neu = 8.61; eu = 7.99)

- Wilcoxon-Mann (U = 17, p = .42)

19

Time to tackle design sub-activities

0

20

40

60

80

100

120

140

160

180

service

selection

union merge binding saving running

Sub-activityT

ime

[se

c]

Task A: non expert user Task A: expert user

Task B: non expert user Task B: expert user

Validation: formative evaluation with users

Steps for tackling the design sub-activities

0

2

4

6

8

10

12

service

selection

union merge binding saving running

Sub-avtivity

Ste

pTask A: non expert user Task A: expert user

Task B: non expert user Task B: expert user

• Efficiency

Task A:

- Average time [min] ( neu = 3.83; eu = 4.22)

- Wilcoxon-Mann (U = 15.5, p = .55)

Task B:

- Average time [min] (neu = 8.61; eu = 7.99)

- Wilcoxon-Mann (U = 17, p = .42)

Task A:

- Average no of steps [step] (neu = 24; eu = 21.6)

- Wilcoxon-Mann (U = 17,5, p = .31)

Task B:

- Average no of steps [step] (neu = 41.4; eu = 39.2)

- Wilcoxon-Mann (U = 18, p = .31)

Tim

e

No

of S

teps

19

Validation: formative evaluation with users

There is no empirical

evidence against our

hp: the behaviour of

non-expert users is

comparable to the

one of expert users

• Efficiency

Task A:

- Average time [min] (neu = 3.83; eu = 4.22)

- Wilcoxon-Mann (U = 15.5, p = .55)

Task B:

- Average time [min] (neu = 8.61; eu = 7.99)

- Wilcoxon-Mann (U = 17, p = .42)

Task A:

- Average no of steps [step] (neu = 24; eu = 21.6)

- Wilcoxon-Mann (U = 17,5, p = .31)

Task B:

- Average no of steps[step] (neu = 41.4; eu = 39.2)

- Wilcoxon-Mann (U = 18, p = .31)

Tim

e

No o

f S

teps

19

Validation: post-test satisfaction questionnaire

• Ease of use

- Internal reliability: α = 0.81 (0.8<α<0.9 - very good)

- Average = 3.7, minS.E. = 0.39 (values between 0 and 5)

- No significant difference for the two user groups (t(46) = .875, p = .39)

• User satisfaction

- Internal reliability: α = 0.73 (0.7<α<0.8 - good)

- Average = 4.28, minS.E.= 0.46

- Tool evaluation (1-10) : average = 8.3, minS.E.= 0.86

- Self-confidence on the achieved results = 92%, , minS.E = 0.79

- Satisfaction as composers of “Mobile Apps” (1-4) : average = 3.4, minS.E.= 0.52

20

A satisfaction questionnaire was filled out by each user after the experimental tasks

Tasks were accomplished

easily;

Users felt very satisfied