+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
From MDE to SLE (April 17th, 2015)
1. Benoit Combemale (Inria & Univ. Rennes 1)
http://people.irisa.fr/Benoit.Combemale
benoit.combemale@irisa.fr
@bcombemale
From Model (driven) Engineering…
… to Language (driven) Engineering
3. DiverSE Research Group
DiverSE team (env. 40 people)
- 8 faculty members
- 1 Research Engineer
- ~20 PhD students
- ~6 Software Engineers
- ~6 Post doc
- 3From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
11. Model-Driven Engineering (MDE)
- 11
J. Whittle, J. Hutchinson, and M. Rouncefield, “The State of Practice in Model-
Driven Engineering,” IEEE Software, vol. 31, no. 3, 2014, pp. 79–85.
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
"Perhaps surprisingly, the majority of MDE examples in our study
followed domain-specific modeling paradigms"
Distribution
« Service Provider
Manager »
Notification
Alternate Manager
« Recovery Block
Manager »
Complaint
Recovery Block
Manager
« Service
Provider
Manager »
Notification
Manager
« Service Provider
Manager »
Complaint Alternate
Manager
« Service
Provider
Manager »
Complaint
Manager
« Acceptance
Test Manager »
Notification
Acceptance Test
Manager
« Acceptance
Test Manager »
Complaint
Acceptance Test
Manager
« Recovery
Block Manager »
Notification
Recovery Block
Manager
« Client »
User Citizen
Manager
Fault tolerance Roles
Activities
Views
Contexts
Security
Functional behavior
Book
state : StringUser
borrow
return
deliver
setDamaged
res
erv
e
Use case
Platform
Model Design
Model
Code
Model
12. Domain-Specific Languages (DSLs)
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 12
• Targeted to a particular kind of problem, with dedicated
notations (textual or graphical), support (editor, checkers, etc.)
• Promises: more « efficient » languages for resolving a set of
specific problems in a domain
14. « Another lesson we should have learned from the recent past is
that the development of 'richer' or 'more powerful' programming
languages was a mistake in the sense that these baroque
monstrosities, these conglomerations of idiosyncrasies, are really
unmanageable, both mechanically and mentally.
I see a great future for very systematic and
very modest programming languages »
ACM Turing Lecture, « The Humble Programmer »
Edsger W. Dijkstra 14
aka Domain-
Specific
Languages
aka General-Purpose
Languages
1972
16. What is a domain-specific language ?
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 16
• « Language specially designed to perform a task in a certain
domain »
• « A formal processable language targeting at a specific
viewpoint or aspect of a software system. Its semantics and
notation is designed in order to support working with that
viewpoint as good as possible »
• « A computer language that's targeted to a particular kind of
problem, rather than a general purpose language that's aimed
at any kind of software problem. »
17. GPL (General Purpose Language)
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 17
18. DSL vs. GPL
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 18
The boundary isn’t as clear as it could be. Domain-
specificity is not black-and-white, but instead gradual: a
language is more or less domain specific
19. Language-Oriented Programming/Modeling
- 19From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
Jean-Marc Jézéquel, Benoît Combemale et Didier Vojtisek, "Ingénierie Dirigée
par les Modèles : des concepts a la pratique," Ellipses edition, février 2012
20. Language Design and Implementation
- 20From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
Jean-Marc Jézéquel, Benoît Combemale et Didier Vojtisek, "Ingénierie Dirigée
par les Modèles : des concepts a la pratique," Ellipses edition, février 2012
Editors
(textuals, graphicals, …)
Documentation generators
Test generators
Simulators
Analyzers
Refactoring
Checkers
(static & dynamics)
Translators
Compilers
Code generators
Etc.
21. Language Design and Implementation
- 21From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
Abstract
Syntax
(+ static
semantics)
MOF/Ecore
+ OCL
Concrete
syntax
Dynamic
SemanticsxText, GMF,
Sirius, Antlr…
QVT*,
Kermeta AL,
Java EMF…
* *
22. Language Design and Implementation
- 22From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
J-M. Favre, D. Gasevic, R. Lämmel, and E. Pek. "Empirical language analysis
in software linguistics," In Software Language Engineering, volume 6563 of
LNCS, pages 316–326. Springer, 2011.
"Software languages
are softwares too"
23. Software Language Engineering (SLE)
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 23
• Application of systematic, disciplined, and measurable
approaches to the development, deployment, use, and
maintenance of software languages
• Supported by various kind of "language workbench"
• Eclipse EMF, xText, Sirius, GEMOC, Papyrus
• Jetbrain’s MPS
• MS DSL Tools
• Etc.
• Various shapes and ways to implement software languages
• External, internal or embedded DSLs, Profile, etc.
• Grammar, metamodel, ontology, etc.
• More and more literature, a dedicated Intl. conference (ACM SLE,
cf. http://www.sleconf.org)…
24. Metamodeling
- 24
J.-M. Favre, J. Estublier, M. Blay-Fornarino, "L'ingénierie dirigée par les modèles.
Au-delà du MDA," Hermes Science Publications, 2006.
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
25. The Kermeta Workbench (since 2005)
• Modular design of DSMLs
• One meta-language per language concern (merge/weave)
• Ecore, OCL, Xtend
• But also: QVTo, fUML, Alf, Ket, Xsd…
• Static introduction mechanism (aspect)
• Provides a model oriented action language to support common model
manipulation tasks
• to implement (E)Operation’s bodies
• Imperative, statically typed, object-oriented, aspect-oriented (aspect/
context, require), model-oriented, DbC, Unit testing
• Java and Xtend compliant, and based on EMF
• Run as Eclipse plugin or as standard Java application
• Efficient implementation of DSMLs
• Mashup of the meta-languages to efficient bytecode
• Integrated with third-party tools (EMF compliant)
- 25From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
Jean-Marc Jézéquel, Benoit Combemale, Olivier Barais, Martin Monperrus,
François Fouquet, “Mashup of metalanguages and its implementation in the
Kermeta language workbench,” SoSyM, 2014.
26. The Kermeta Workbench (since 2005)
- 26From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
Jean-Marc Jézéquel, Benoit Combemale, Olivier Barais, Martin Monperrus,
François Fouquet, “Mashup of metalanguages and its implementation in the
Kermeta language workbench,” SoSyM, 2014.
@aspect(class=Transition)
operation fire() : String {
source.owningFSM.currentState := target
result := output
}
28. Software Language Engineering (SLE)
- 28
J. Whittle, J. Hutchinson, and M. Rouncefield, “The State of Practice in Model-
Driven Engineering,” IEEE Software, vol. 31, no. 3, 2014, pp. 79–85.
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
"A clear challenge, then, is how to integrate multiple DSLs."
"Rather than attempting to formalize a wide-ranging domain (such
as financial applications), practitioners should write small, easy-to-
maintain DSLs and code generators. In practice, however, multiple
DSLs are usually required, which brings its own challenges in terms
of integration."
29. MELANGE
A language workbench for agile language development and use
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 29
30. The daily life of DSLs
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 30
• Closely evolve with the domain and the experts’ understanding of
the domain
• Reused, extended, shrunk, customized, replaced with alternatives
31. The daily life of DSLs
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 31
32. The daily life of DSLs
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 32
33. The daily life of DSLs
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 33
34. The daily life of DSLs
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 34
35. The daily life of DSLs
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 35
Variants or subsequent
versions cannot
leverage previous
engineering efforts
36. The daily life of DSLs
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 36
v2.4
v2.1
How can we ensure
interoperability between
subsequent versions?
37. The daily life of DSLs
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 37
How can we foster the
reuse of artifacts between
similar languages?
38. Challenges
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 38
• Manage evolution
• Generic tools &
transformations
• Manage syntactical /
semantical variation points
• Design families (variants)
• Agile modeling
• Manipulate models in
different environments
• Reuse transformations &
tools
39. Towards Language Interfaces
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 39
• Tools, transformations, environments are tightly coupled with
the language they were originately defined on
• If the language evolves, associated tools break
• If a variant exists, tools cannot be reused
• An abstraction layer would reduce the coupling
• We realize this abstraction layer with language interfaces
40. Towards Language Interfaces
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 40
Language
Implementation
(abstract syntax, concrete syntaxes, semantics)
Language
Interface
(meaningful information for a specific purpose)
Language and
Model engineering
(transformations, tools, editors, IDEs, …)
à Multiple implementations can match the
same interface
à Tools defined on an interface can be
reused for all matching implemention
41. A structural language interface: the model type
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 41
• Interface over the structural information of a language
• Focus on the reuse of tools and transformations
• Structural typing semantics for model manipulation
• Supported by a model-oriented type system
• Models (i.e. graph of objects) as first-class citizens
• Type group (family) polymorphism
• Structural typing
⇒ Provides language substitutability and model polymorphism
43. Model Type
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 43
Clement Guy, Benoît Combemale, Steven Derrien, Jim Steel, Jean-Marc Jézéquel,
"On Model Subtyping," In ECMFA’12, Springer, 2012.
45. Melange: Overview
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 45
A language-based, model-oriented
programming language
46. Melange: Overview
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 46
• A language for defining DSLs
• Import DSLs implementation
• Handy operators for SLE: inheritance, merge, etc.
• Aspect-oriented modeling (e.g. for executable meta-modeling)
• Generic transformations
• A language for manipulating models
• Models as first-class, typed citizens
• Model-oriented type system providing model polymorphism
• Flexible save and load mechanism
• Fully interoperable with the EMF ecosystem
• As an external or internal DSL
47. Melange: Benefits
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 47
DSL engineering
• High-level operators
• Inheritance, merge, etc.
• Aspect-oriented modeling
• Executable meta-modeling
• Generic tools definition
Agile modeling
• Manipulate models in different
environments
• Viewpoints
• Reuse of tools
48. THE GEMOC INITIATIVE
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1) - 48
On the globalization of modeling languages
52. The GEMOC Initiative
- 52
An open and international initiative to
• coordinate (between members)
• disseminate (on behalf the members)
worldwide R&D efforts
on the globalization of modeling languages
http://gemoc.org
@gemocinitiative
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
53. GEMOC: The Community
- 53
United States
Canada
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)
54. Join us!
The GEMOC Initiative
http://gemoc.org ~ @gemocinitiative
Advisory Board: Benoit Combemale, Robert B. France, Jeff Gray and Jean-Marc Jézéquel
55. From MDE to SLE: Wrap-up
Jean-Marc Jézéquel, David Mendez, Thomas Degueule, Benoit Combemale, Olivier
Barais, "When Systems Engineering Meets Software Language Engineering," In
Complex Systems Design & Management (CSD&M'14), Springer, 2014.
All about “family of languages”!! J
Core
Query
Language
Action
Language
Constraint
LanguageFSM
H FSM System
ODE
FSM
Activity
Language Inheritance
Subtyping, Model Viewpoint,
Generic metaprogramming
Globalization of DSLs
HFSM
UML
Rhapsody
Stateflow
HT FSM
Language Modularization and Composition,
Language Variability Management
From MDE to SLE - B. Combemale (Inria & Univ. Rennes 1)