DomainSpecific Modelling Language for Navigation Applications on S60 Mobile Phones - PowerPoint PPT Presentation

About This Presentation
Title:

DomainSpecific Modelling Language for Navigation Applications on S60 Mobile Phones

Description:

self.call_stack.append(self.Start6_29026) while(self.running): state, ... self.call_stack.append(state) self.update_canvas() def classVariables(self) ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 17
Provided by: janneme
Learn more at: http://www.dsmforum.org
Category:

less

Transcript and Presenter's Notes

Title: DomainSpecific Modelling Language for Navigation Applications on S60 Mobile Phones


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

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

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?

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
    models
  • Objectives
  • Languages that enable rapid development of
    applications/prototypes
  • New business opportunities e.g. in mass
    customisation
  • Etc.

5
Navigation Applications for S60- Starting Point
6
Navigation Applications for S60- Relation to
Other Languages and Frameworks
7
Navigation Applications for S60- NavApp Framework
8
Navigation Applications for S60- First Example
1/4
9
Navigation Applications for S60- First Example
2/4
10
Navigation Applications for S60- First Example
3/4
11
Navigation Applications for S60- First Example
4/4
  • class NavigationApplicationClass6_28897(NavAppInne
    rs.NavAppInners)
  • def start_running(self)
  • self.classVariables()
  • stateself.Start6_29026
  • self.call_stack.append(self.Start6_29026)
  • while(self.running)
  • state, add_to_stackstate()
  • 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(EKeyHa
sh, self.Zoom6_29236) self.set_keys(keys,
False) self.OptionsNode6_29304() def
Keys6_29224(self) keys keys.append(EKeySt
ar, 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"addressStree
t"self.destination_location stopNode
Node.Node(tagstags) callbacks callbacks.ap
pend("show_progress_in_text") callbacks.append("
show_progress_in_route") self.navigate(startNode
, stopNode, callbacks, "BFS") self.StartLocator6
_29400() def OptionsNode6_29304(self) mainmen
u (u"Navigate", ((u"Navigate to destination",
self.Query6_29342),(u"Stop navigating",
self.Navigate6_29355))) self.set_main_menu(main
menu) def Query6_29342(self) self.destination
_location appuifw.query(u"Choose destination",
'text', u"destination_location") self.Coordinate
Location6_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.zo
oming(1) self.update_canvas() def
Note6_29084(self) appuifw.note(u"You are at
the destination", 'info') return(self.Wait6_3247
4, False) def SelectCondition6_29576(self) if
(self.destination_location self.get_current_st
reet(self.get_cursor_position())) return(self.
Note6_29084, False) return(self.Wait6_29597,
False) def Start6_29026(self) return(self.Nav
AppStaticView6_29029, False)
12
Navigation Applications for S60- Second Example
1/2
13
Navigation Applications for S60- Second Example
2/2
14
End-User Driven Development and NavApp
  • Currently, not that straightforward to use
  • Notation is what it is?
  • Solution-space elements should be abstracted -gt
    easier to use
  • However, it is a lot easier and faster 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)

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??

16
Questions
Write a Comment
User Comments (0)
About PowerShow.com