1. ACTIVE DOMAIN
SPECIFIC LANGUAGES
MAKING EVERY MOBILE USER
A MODELLER
MODELS’2017, Austin
D. Vaquero, J. Palomares, E. Guerra, J. de Lara
Modelling&Software Engineering Research Group
http://miso.es @miso_uam
2. USING DSLs TODAY
Static use
• Desktop-based editors
• Web-based editors
Static DSLs
• Used at design time
• Model execution, but no
interaction with external
elements
2
3. WE NEED SUPPORT FOR MORE
ADVANCED SCENARIOS!
3
DSLs to:
• Design and monitor production plants
on-site
• Home automation systems
• Create and follow trekking routes
• Design open air crossfit circuits
• Urban design for smart cities
• IoT apps
• …
Scenarios:
• Flexible collaboration accross devices
• Crowdsourced modelling
• …
4. WE NEED SUPPORT FOR MORE
ADVANCED SCENARIOS!
4
DSLs to:
• Design and monitor production plants
on-site
• Home automation systems
• Create and follow trekking routes
• Design open air crossfit circuits
• Urban design for smart cities
• IoT apps
• …
Scenarios:
• Flexible collaboration across devices
• Crowdsourced modelling
• …
I’ll wait you
here
(*) mockup inspired by https://www.wikiloc.com/
5. WE NEED SUPPORT FOR MORE
ADVANCED SCENARIOS!
5
DSLs to:
• Design and monitor production plants
on-site
• Home automation systems
• Create and follow trekking routes
• Design open air crossfit circuits
• Urban design for smart cities
• IoT apps
• …
Scenarios:
• Flexible collaboration across devices
• Crowdsourced modelling
• …
I’ll wait you
here
• This is an example of Active DSL
• App builders become Language
Engineers
• App users become modellers
(*) mockup inspired by https://www.wikiloc.com/
6. WE NEED SUPPORT FOR MORE
ADVANCED SCENARIOS!
6
DSLs to:
• Design and monitor production plants
on-site
• Home automation systems
• Create and follow trekking routes
• Design open air crossfit circuits
• Urban design for smart cities
• IoT apps
• …
Scenarios:
• Flexible collaboration across devices
• Crowdsourced modelling
• …
I’ll wait you
here
7. REQUIREMENTS
Used in mobility
• Smartphones
• Tablets
Cross-platform compatibility
• Desktop editors
• Mobiles
Geolocated
• User representation
Context awareness
• Reaction rules
7
Collaborative
• User roles
External interaction
• IoT devices
• APIs
• …
Flexible modelling
• Hand drawings
• Photo sharing
• Notes
8. A FEATURE SPACE
FOR DSLs (1/2)
8
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
Standard DSL= Deployment.(Desktop v Web), ConcSyntax.Graphical.Geolocated,
External interaction, Context sensitive
9. A FEATURE SPACE
FOR DSLs (1/2)
9
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
Geo DSL= ConcreteSyntax.Graphical.Geolocated
10. A FEATURE SPACE
FOR DSLs (1/2)
10
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
Geo DSL= ConcreteSyntax.Graphical.Geolocated
11. A FEATURE SPACE
FOR DSLs (1/2)
11
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
Geo DSL= ConcreteSyntax.Graphical.Geolocated
12. A FEATURE SPACE
FOR DSLs (1/2)
12
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
Geo DSL= ConcreteSyntax.Graphical.Geolocated
name: Juan
age: 18
13. A FEATURE SPACE
FOR DSLs (1/2)
13
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
Open DSL= External interaction
14. A FEATURE SPACE
FOR DSLs (1/2)
14
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
Open DSL= External interaction Take value of temperature
attribute from openWeather
15. A FEATURE SPACE
FOR DSLs (1/2)
15
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
Contextual DSL= Context sensitive
16. A FEATURE SPACE
FOR DSLs (1/2)
16
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
Contextual DSL= Context sensitive
17. A FEATURE SPACE
FOR DSLs (1/2)
17
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
Contextual DSL= Context sensitive
Show if:
not raining
and temp < 28º
18. A FEATURE SPACE
FOR DSLs (1/2)
18
Active DSL= Deployment.App +
Geo DSL +
Open DSL +
Contextual DSL
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
19. A FEATURE SPACE
FOR DSLs (1/2)
19
Active DSL= Deployment.App +
Geo DSL +
Open DSL +
Contextual DSL
DSL features
Geolocated
Deployment External
interaction
Web Desktop App
Concrete
syntax
Textual Graphical
optional mandatoryalternative or
Services Devices
User
reification
Tabular…
Context
sensitive
External Internal
Context
source
«implies»
20. 20
A FEATURE SPACE
FOR DSLs (2/2)
User
roles
Collaboration
Serverless
(local)
Centralized
Extended
modelling
Drawings Annotations
Symbols Text Pictures Geolocation
DSL features
21. 21
A FEATURE SPACE
FOR DSLs (2/2)
User
roles
Collaboration
Serverless
(local)
Centralized
Extended
modelling
Drawings Annotations
Symbols Text Pictures Geolocation
DSL features
Creation role
• Creating the trekking route
Outing role:
• Following the route
• Annotate the route (photos, text)
22. 22
A FEATURE SPACE
FOR DSLs (2/2)
User
roles
Collaboration
Serverless
(local)
Centralized
Extended
modelling
Drawings Annotations
Symbols Text Pictures Geolocation
DSL features
23. 23
A FEATURE SPACE
FOR DSLs (2/2)
User
roles
Collaboration
Serverless
(local)
Centralized
Extended
modelling
Drawings Annotations
Symbols Text Pictures Geolocation
DSL features
I’ll wait you
here
Chat
Model Sharing
Reification of
collaborators
25. SPECIFYING EXTERNAL
INTERACTION
25
Assigning attribute values
taken from external sources via
APIs
Repository of API descriptions
• With and without
authentication
Annotate a given attribute with
• API to be called
• Trigger condition
• Parameter values
26. REALIZATION:
DSL-COMET
First steps towards the realization of Active DSLs
Deployment of DSLs
• Desktop as a Sirius Editor
• In iOS devices
Support for
• Geo-DSLs
• Open DSLs
Extended modelling
• Markers, hand drawings
• Photo attachments
Collaboration support
Can be downloaded from AppStore
• For free!
26
36. CONCLUSION
Need for DSLs for more advanced scenarios
• Open DSLs
• Geo DSLs
• Contextual DSLs
• Active DSLs
Collaboration
• Chat, model sharing
• Cross-platform use and compatibility
Initial realization
• DSL-comet
• DSLs on iOS devices and Sirius editors
36