1. WORKSHOP EXE @ MODELS, OCTOBER, 2018
MODEL EXECUTION: PAST, PRESENT AND FUTURE
BENOIT COMBEMALE
PROFESSOR, UNIV. TOULOUSE, FRANCE
HTTP://COMBEMALE.FR
BENOIT.COMBEMALE@IRIT.FR
@BCOMBEMALE
BENOIT COMBEMALE
PROFESSOR, UNIV. TOULOUSE & INRIA, FRANCE
HTTP://COMBEMALE.FR
BENOIT.COMBEMALE@INRIA.FR
@BCOMBEMALE
2. Disclaimers
• Landscape given from the view point of a software /
systems engineering researcher
• Focus on event-based paradigm (excl. numerical solvers)
• I will take self contributions as examples for the sake
of correctness
• I will argue for a roadmap based on my own vision
• A following discussion must be engaged for
strengthening the landscape and the relevant
roadmap
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 2
3. Model-Driven Engineering
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
Change one Aspect and
Automatically Re-Weave:
From Software Product Lines…
..to Dynamically Adaptive Systems
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 3
4. Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
Model Execution: Why Should I care?
▸ Various engineering: software engineering, systems
engineering, enterprise architecture, scientific modeling...
▸ Various formalisms: Business Processes, Orchestrations,
Functional chains, Activities, Protocols, Scenarios...
▸ Various objectives: early validation & verification, design-
space exploration, tradeoff analysis, simulation,
models@runtime
breathe life into your
(domain-specific) behavioral models
5. Model Execution: Historical Landscape
• Scientific computing
• Hardware design
• VHDL (with env., e.g., Active-HDL)
• Software and systems design, analysis and development
• Statemate (Harel et al.)
• Ptolemy II (Lee et al.)
• Executable UML models (e.g., state machine, activity diagram):
• xtUML/Scrall (formerly the Shlaer–Mellor method), cf.
https://executableuml.org
• fUML and ALF at OMG
• Various workflow languages (BPEL, etc.)
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 5
6. Main current initiatives
• Matlab Simulink, cf.
https://www.mathworks.com/products/simulink.html
• LabView, cf. www.ni.com/labview
• xtUML
• xtUML days @ MODELS’18: https://xtuml.org/xtuml-days-2018-
copenhagen
• Blog post series by Leon Starr on modeling-languages.org:
https://modeling-languages.com/author/leon-starr
• BridgePoint, by Cortland Starrett @ OneFact Inc., cf.
https://xtuml.org
• UML-RT
• Papyrus-RT: https://www.eclipse.org/papyrus-rts
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 6
7. Model-Driven Engineering
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
Change one Aspect and
Automatically Re-Weave:
From Software Product Lines…
..to Dynamically Adaptive Systems
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.
"Perhaps surprisingly, the majority of MDE examples in our study
followed domain-specific modeling paradigms"
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 7
8. Towards Language-Oriented Modeling
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 8
Engineering Modeling Languages: Turning Domain Knowledge into Tools, by
Benoit Combemale, Robert B. France, Jean-Marc Jézéquel, Bernhard Rumpe, Jim R.H. Steel, and
Didier Vojtisek. Chapman and Hall/CRC, pp.398, 2016.
Companion website: http://mdebook.irisa.fr
9. Towards Language-Oriented Modeling
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 9
Engineering Modeling Languages: Turning Domain Knowledge into Tools, by
Benoit Combemale, Robert B. France, Jean-Marc Jézéquel, Bernhard Rumpe, Jim R.H. Steel, and
Didier Vojtisek. Chapman and Hall/CRC, pp.398, 2016.
Companion website: http://mdebook.irisa.fr
10. Software Language Engineering (SLE)
• Application of systematic, disciplined, and measurable approaches to
the development, deployment, use, and maintenance of software
(domain-specific) languages
• Supported by various kind of "language workbench"
• Eclipse EMF, xText, Sirius, Melange, GEMOC, Papyrus
• Jetbrain’s MPS
• MetaEdit+, 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 and University courses, a dedicated Intl.
conference (ACM SLE, cf. http://www.sleconf.org), an upcoming
SLEBoK (cf. https://github.com/slebok/slebok)…
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 10
11. DSL Design & Implementation
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 11
Abstract
Syntax
(AS)
Concrete
Syntax
(CS)
Semantics
Domain
(SD)
Mac
Mas
Compilation or
interpretation to get a
full-fledge editor
Compilation or interpretation to get a
full-fledge execution environment
(debugger, animator, simulator,
runtime monitor…)
12. ▸ Axiomatic
▸ Denotational/translational
▸ Operational
Definition of the Behavioral Semantics of DSL
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
decr()
x : Int
System
decr
x
Abstract
Concrete
int x;
void decr () {
if ( x>0 )
x = x-1;
}
context System::decr() post :
self .x = if ( self .x@pre>0 )
then self.x@pre - 1
else self.x@pre
endif
operation decr () is do
if x>0 then x = x - 1 end
AXIOMATIC
TRANSLATIONAL
OPERATIONAL
13. Definition of the Behavioral Semantics of DSL
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
15. Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
From Kermeta to Ecore Tools ALE
open class arduino.Block {
def void execute() {
for (i in self.instructions) {
i.execute();
}
}
}
http://gemoc.org/ale-lang
open class arduino.If {
@step
def void execute() {
if (self.condition.evaluate()) {
self.block.execute();
} else {
if (self.elseBlock != null) {
self.elseBlock.execute();
}
}
}
}
▸ An Action Language for EMF
▸ To complement an Ecore model with Runtime Data and Eoperation impl.
▸ To define any Interpreter, compiler, model transformation, analysis tools…
→ Implement an interpreter in the form of a visitor over the Ecore
metamodel
▸ From Kermeta (based on Xtend), to ALE (AQL
extension)
▸ Main characteristics:
▸ Interpreted and compiled
▸ Static typing, type inference
▸ Open class support
▸ Integrated into EcoreTools
▸ Define behavior over an Ecore metamodel
▸ Modular specification (thanks to Sirius layers and open class)
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.
16. Model Execution: Landscape
• Language workbench to build tool-supported executable
languages
• Action Language: Kermeta [Jézéquel et al., SoSyM 14(2), 2015],
xMOF [Mayerhofer et al., SLE'13]
• Model Simulation: Topcased [Combemale et al., ERTS’08]
• Formal framework: Coq4MDE [Combemale et al., FAC 28(3),
2016], Constelle [Tikhonova et al., MoDELS’17], TraceBack
[Combemale et al., ECMFA’11]
• Pattern-based approach: declarative approach (rule-based
paradigm), enhanced by advanced rule application engines
[ATOM3, AGG, TGG community]
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 16
17. Main current initiatives
• Language workbenches such as EMF, MPS and MetaEdit+
provide facilities for defining behaviors
• e.g., EMF provides a built-in mechanism to implement visitors (EMF switch)
over domain models
• Other academic tools: KMF, Spoofax, Rascal, Neverlang,
Monticore, AToM3…
• The Eclipse GEMOC Studio (http://eclipse.org/gemoc)
• Main characteristics: language reuse and customization, model debugging,
co-simulation, deployment to the web / cloud, live modeling
• Integrate Kermeta, ALE, xMOF…
• Modular and formal concurrency model with MoCCML [DeAntoni et al., 2015]
• Advanced management of execution trace [Bousse et al., 2015]
• Ongoing work on JIT Compilers based on Graal / Truffle
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 17
18. Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
The GEMOC Studio
- 18
Design and integrate your
executable DSLs
Language
Workbench
Modeling
Workbench
Edit, simulate and animate your
heterogeneous models
19. Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
ActivityDiagramDebugger
- 19
https://github.com/gemoc/activitydiagram
20. Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
ActivityDiagramDebugger
- 20
Benoit Combemale, Julien Deantoni, Matias Vara Larsen, Frédéric Mallet, Olivier Barais, Benoit Baudry,
Robert France, "Reifying Concurrency for Executable Metamodeling," In Software Language
Engineering (SLE), 2013
21. Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
ArduinoDesigner
https://github.com/gemoc/arduinomodeling
22. Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
PacMan!
23. How Model Execution Is Actually Used?
• No scientific evidence (opportunity?) , but model
execution seems to
• be used in niche application domains
• remain rare in mainstream developments
• Models are mostly intended to document
• even behavioral models are mostly used statically
• execution is often get by code generation on the targeted
execution environment
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 23
24. Looking ahead…
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 24
“Modeling, in the broadest sense, is the cost-effective use of something
in place of something else for some cognitive purpose. It allows
us to use something that is simpler, safer or cheaper than reality instead
of reality for some purpose.”
Jeff Rothenberg
The Nature of Modeling
John Wiley & Sons, Inc., August 1989
25. Looking ahead…
Do the current model execution
approaches support the intended
cognitive purpose of the users?
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 25
26. Overall vision
• A behavioral model is a structural description of an intended
behavior
• Objective: how to support modelers in bridging the gap
between the model structure and the corresponding behavior
over the time
• Challenges wrt. to the expected facilities ?
• debug the execution results (i.e. runtime state) instead of the model
itself
• consider the additional dimension of time natively (if not already
reified in the model, e.g. message sequence charts)
• bridge the gap between the model execution and its interpretation
within a particular domain (e.g., moldable debugger [Chis et al.])
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 26
27. - 27
HIGH PERFORMANCE COMPUTING
Modeling for Sustainability – B. Combemale (Univ. Rennes 1) – December 4th
, 2016
28. - 28
HIGH PERFORMANCE COMPUTING
Modeling for Sustainability – B. Combemale (Univ. Rennes 1) – December 4th
, 2016
31. Execution model: looking ahead…
Heuristics-Laws
Scientists
Open Data
General Public
(e.g., individuals)
Policy Makers
(e.g., mayor)
MEEs
("what-if" scenarios)
Scientific Models / Physical Laws
(economic, environmental, social)
SEER
Sustainability System
(e.g., smart farm)
(
Context
sensors actuators
Production/
Consumption
System
(e.g. farm)
Software
<<controls>><<senses>>Communities
(e.g., farmers)
<<adapt>>
<<supplement
field data>>
<<provide configuration,
preferences, questions>>
<<present possible future
and variable indicators>>
<<feed>>
<<integrate>>
<<explore model
relations (tradeoff,
impact and conflict)>>
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 31
MDE in Practice for Computational Science
Jean-Michel Bruel, Benoit Combemale, Ileana Ober, Hélène Raynal
In International Conference on Computational Science (ICCS), 2015
32. Looking ahead…
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 32
Model Edition and
Consistency
Model Composition
Model
Validation & Verification
Model / System
integration
Design-Space
Exploration
(what-if/for scenarios)
Data Analysis, Model Discovery and
Execution Trace Analysis
Model Execution
and Reconfiguration
Allocation and Deployment
Model
Ops
(Models at Run-time)
Dev
(Models at Design-time)
33. Conclusion
▸While modeling techniques are widely adopted in various
guises (incl. behavioral modeling), model execution is still
under used
▸Rethink our model execution tools to support
▸ immediate feedback (from the runtime state)
▸ direct manipulation (of the runtime state)
▸ reasoning over the time (on the runtime state)
=> live modeling and time travelling should be at the core
of model execution
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 33
34. (some) Open Challenges
▸ Live and collaborative (meta)modeling
▸ minimize the round trip between the DSL specification, the model,
and its execution (interpretation/compilation)
▸ model experiencing environments (MEEs): what-if/how-to
scenarios, trade-off analysis, design-space exploration
▸ Diversity/complexity of DSL relationships
▸ far beyond structural/behavioral alignment, refinement,
decomposition
▸ separation of concerns vs. Zoom-in/Zoom-out
▸ integration of analysis and predictive models into DSL semantics
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 34
35. Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
Model Execution: Past, Present and Future
Abstract.
In this talk I review some of the current initiatives regarding executable modeling,
including their objectives and current actual facilities. After this brief review of the
state of the art and practice, I jump into important challenges the community is
currently facing to scale up the adoption of executable modeling, and to draw up a
future where it meets its initial expectations. For this, I argue that modeling is more
a human endeavor than a technical one, though most of the current approaches
focus on technical facilities. Then I discuss open minding facilities that executable
modeling should support, and why this is currently challenging. I conclude the talk
providing a possible research roadmap for the community to address such
challenges.
35
36. Complex Software-Intensive Systems
Software
intensive
systems
▸ Multi-engineering approach
▸ Domain-specific modeling
▸ High variability and customization
▸ Software as integration layer
▸ Openness and dynamicity
Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018 36
39. Model Execution: Past, Present and Future
Benoit Combemale @ EXE’18, October, 2018
"Software Languages
are Software Too"
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.
39