Marco Brambilla1, Andrea Mauri1, Eric Umuhoza1,2
1 Dipartimento di Elettronica, Informazione e Bioingegneria. Politecnico di Milano2 AtlanMod team, Ecole des Mines de Nantes
Extending the Interaction Flow Modeling Language (IFML) for Model Driven
Development of Mobile Applications Front End
Speaker:[email protected]
EricUmuhoza
MobiWIS Conference, Barcelona, August 27-29 ,2014
Outline
Model driven development(MDD) approach & mobile apps development
The Interaction Flow Modeling Language(IFML)
Mobile Extension to IFML(mobile IFML)
Concrete syntax by example
Mobile IFML & Code Generation
Conclusions
MDD in mobile apps front end
Manual coding is the predominant development approach
– Reuse of design artifacts is low – High risks of errors– High costs for cross-platform development
Platform-independent user interaction modeling language can bring several benefits
– Model once and generate for any platform of choice– It improves the development process– It enables the communication of interface and
interaction design to non-technical stakeholders– It allows the early validation of requirements
The Interaction Flow Modeling Language
An OMG standard designed for expressing:
– Content visualized in the user interfaces
– User events and interaction, and
– Control behavior of the front-end of SW applications
IFML main concepts
Container
ViewComponent
Event
Action
IFML main concepts - 2
Navigation flow
Data flow
Parameter binding
IFML concrete syntax -example
View Container Parameter Binding
EventView Component
Action
Navigation Flow
IFML metamodel - Extensions
Organized in two main packages: – IFML Core
– IFML Extensions
and then you can extend it as you want, for different fields and platforms (Web, Mobile, …)
Why IFML?
It is an OMG Standard for Interaction Flow Modeling
The composition of mobile apps interface can be expressed with the core IFML concepts of ViewContainers and ViewComponents
It is extensible
Our IFML based modeling experience
Mobile IFML
Two main motivation:
–Complexity of interaction patterns to better exploit the limited space
– Interaction with other hardware and software components(sensors, apps,…)
Mobile IFML - 2
Four main extension definitions :
–ViewContainers and ViewComponents
–MobileContext, capturing all dimensions that characterize the user’s intent, device’s capacity and the environment surrounding the user
–MobileEvents, addressing the capturing of the mobile events
–MobileAction and MobileActionEvent
Mobile IFML – Container & Components
Plus <<MobileSystem>> stereotype
Some concepts may be extended to better reflect the terminology and properties of mobile apps.
Mobile IFML – MobileContext
It assumes particular relevance in mobile apps
The context must gather all the dimensions that characterize:
– The user's intent
– The capacity of access device
– The communication network, and etc.
Mobile IFML – MobileEvents
Three categories of mobile events:
– Events generated by the interaction of the user such as LongPress, swipe, etc.
– Events triggered by the mobile device features such as sensors, battery, etc.
– Events triggered by user actions related to the device components such as taking a photo, recording a video or using the microphone
Mobile IFML – MobileViewElementEvent
Events generated by the interaction of the user
Mobile IFML – MobileSystemEvent
Events produced by the mobile system
Mobile IFML – MobileActionEvent
Screen MobileViewElementEvent
MobileComponent
MobileAction MobileActionEvent
Modeling tool - demo
Open source project
http://ifml.github.io
Eclipse plugin available at
https://ifml.github.io/update/site.xml
Code Generation
Conclusions
A mobile extension of OMG’s standard IFML
A Sirius based IFML modeling tool
Prototype of the code generators
Future works
– Improvement of the modeling tool
– Implementation of more refined code generators
– Study of the design patterns for MD mobile apps design
Acknowledgement: this work was partially funded by the AutoMobile EU 7th FP SME Research project(http://automobile.webratio.com)