16
Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones Janne Merilinna

Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

  • Upload
    doris

  • View
    36

  • Download
    0

Embed Size (px)

DESCRIPTION

Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones. Janne Merilinna. Outline. Motivation for End-User Driven Development Solution for End-User Driven Development DSML for Navigation Applications on S60 Implementation DSML - PowerPoint PPT Presentation

Citation preview

Page 1: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

Janne Merilinna

Page 2: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

2

Outline

• Motivation for End-User Driven Development• Solution for End-User Driven Development• DSML for Navigation Applications on S60

• Implementation• DSML

• Illustration of the use of the language• Summary• Future work

Page 3: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

3

End-User Driven Development- Motivation

• Open source?• Enables a possibility to modify application• Enables developing multiple variants

• Why not?• Modifying requires to study the existing source code

• Don't have time and/or interest • Variants not satisfying enough?

Page 4: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

4

End-User Driven Development- Solution

• Background• Domain-Specific Modelling Languages (DSMLs) provide a

possibility for very rapid, iterative and incremental software development

• 5-10 times production gains compared to traditional software development means witnessed in industrial setups.

• Approach• Domain-Specific Modelling Languages• Code generators• Domain-specific frameworks• … and release these as open source and/or open modelsopen models

• Objectives• Languages that enable rapid development of

applications/prototypes• New business opportunities e.g. in mass customisation• Etc.

Page 5: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

5

Navigation Applications for S60- Starting Point

Page 6: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

6

Navigation Applications for S60- Relation to Other Languages and Frameworks

Symbian S60

PyS60

DSML for NavApp

DSML for S60

Page 7: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

7

Navigation Applications for S60- NavApp Framework

Target

Framework

Generated code

Code generator

Metamodel

Model

Page 8: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

8

Navigation Applications for S60- First Example 1/4

Page 9: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

9

Navigation Applications for S60- First Example 2/4

Page 10: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

10

Navigation Applications for S60- First Example 3/4

Page 11: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

11

Navigation Applications for S60- First Example 4/4

class NavigationApplicationClass6_28897(NavAppInners.NavAppInners):

def start_running(self):

self.classVariables()

state=self.Start6_29026

self.call_stack.append(self.Start6_29026)

while(self.running):

state, add_to_stack=state()

if add_to_stack:

self.call_stack.append(state)

self.update_canvas()

def classVariables(self):

self.destination_location=""

self.start_location=""

pass

def NavAppStaticView6_29029(self):

self.Keys6_29224()

return(self.SelectCondition6_29576, False)

def CoordinateLocation6_29416(self):

self.start_location = self.get_cursor_position()

self.set_last_location()

self.Navigate6_31628()

def Keys6_29241(self):

keys=[]

keys.append([EKeyHash, self.Zoom6_29236])

self.set_keys(keys, False)

self.OptionsNode6_29304()

def Keys6_29224(self):

keys=[]

keys.append([EKeyStar, self.Zoom6_29231])

self.set_keys(keys, False)

self.Keys6_29241()

def Navigate6_29355(self):

self.navigate(None,None)

self.update_canvas()

def Navigate6_31628(self):

startNode = self.start_location

tags={}

tags["addressStreet"]=self.destination_location

stopNode = Node.Node(tags=tags)

callbacks=[]

callbacks.append("show_progress_in_text")

callbacks.append("show_progress_in_route")

self.navigate(startNode, stopNode, callbacks, "BFS")

self.StartLocator6_29400()

def OptionsNode6_29304(self):

mainmenu = [(u"Navigate", ((u"Navigate to destination", self.Query6_29342),(u"Stop navigating", self.Navigate6_29355)))]

self.set_main_menu(mainmenu)

def Query6_29342(self):

self.destination_location = appuifw.query(u"Choose destination", 'text', u"destination_location")

self.CoordinateLocation6_29416()

def StartLocator6_29400(self):

self.start_locator()

self.update_canvas()

def Zoom6_29236(self):

self.zooming(-1)

self.update_canvas()

def Zoom6_29231(self):

self.zooming(1)

self.update_canvas()

def Note6_29084(self):

appuifw.note(u"You are at the destination", 'info')

return(self.Wait6_32474, False)

def SelectCondition6_29576(self):

if (self.destination_location == self.get_current_street(self.get_cursor_position())):

return(self.Note6_29084, False)

return(self.Wait6_29597, False)

def Start6_29026(self):

return(self.NavAppStaticView6_29029, False)

Page 12: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

12

Navigation Applications for S60- Second Example 1/2

Page 13: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

13

Navigation Applications for S60- Second Example 2/2

Page 14: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

14

End-User Driven Development and NavApp

• Currently, not that straightforward to use

• Notation is what it is…☺• Solution-space elements

should be abstracted -> easier to use

• However, it is a lot easiereasier and fasterfaster to develop applications vs. manually writing the source code

• Still, my mom probably wouldn't be interested in it

• (actually, she wouldn't be in any case)

Page 15: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

15

What Next?

• 1.0 version of the framework and language• Support for multi-person positioning

• Multi-player positioning games• Social dimension

• Open source?• Open models??

Page 16: Domain-Specific Modelling Language for Navigation Applications on S60 Mobile Phones

VTT TECHNICAL RESEARCH CENTRE OF FINLAND

16

Questions