Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Model Execution: Past, Present and Future

168 views

Published on

Model Execution: Past, Present and Future

Published in: Software
  • Be the first to comment

Model Execution: Past, Present and Future

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 13. Definition of the Behavioral Semantics of DSL Model Execution: Past, Present and Future Benoit Combemale @ EXE’18, October, 2018
  14. 14. Implement your own interpreter ▸ Visitor-based approach: Model Execution: Past, Present and Future Benoit Combemale @ EXE’18, October, 2018 Concrete Element Concrete Element metamodel .ecore metamodel .ecoremetamode_ visitable .ecore compiler1 .java compiler2 .java compiler1 .kmt compiler2 .kmt MyCompiler main() root 1 1 MyCompiler main() root 1 "Compiling " + e.name Simu1 .java Simu1 .kmt Concrete Visitor visit(e : VisitableElement) "Compiling " + e.name <<require>> <<require>> <<require>> <<require>> <<require>> <<require>> Ecore-to- EcoreVisitable <<Abstract>> Visitor visit(e : VisitableElement) <<Abstract>> Visitable Element accept(v : Visitor) "Visiting " + e.name + "!!" v.visit(self) accept(v : Visitor) compile() Fig.: Interpreter pattern vs. static introduction (aka. open class)
  15. 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. 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. 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. 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. 19. Model Execution: Past, Present and Future Benoit Combemale @ EXE’18, October, 2018 ActivityDiagramDebugger - 19 https://github.com/gemoc/activitydiagram
  20. 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. 21. Model Execution: Past, Present and Future Benoit Combemale @ EXE’18, October, 2018 ArduinoDesigner https://github.com/gemoc/arduinomodeling
  22. 22. Model Execution: Past, Present and Future Benoit Combemale @ EXE’18, October, 2018 PacMan!
  23. 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. 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. 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. 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. - 27 HIGH PERFORMANCE COMPUTING Modeling for Sustainability – B. Combemale (Univ. Rennes 1) – December 4th , 2016
  28. 28. - 28 HIGH PERFORMANCE COMPUTING Modeling for Sustainability – B. Combemale (Univ. Rennes 1) – December 4th , 2016
  29. 29. FARMING SYSTEM MODELING - 29 https://github.com/gemoc/farmingmodeling
  30. 30. - 30 WATER FLOOD PREDICTION in collaboration with
  31. 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. 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. 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. 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. 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. 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
  37. 37. Aerodynamics Authorities Avionics Safety Regulations Airlines Propulsion System Mechanical Structure Environmental Impact Navigation Communications Human- Machine Interaction 37 Multiple concerns, stakeholders, tools and methods
  38. 38. 38 Aerodynamics Authorities Avionics Safety Regulations Airlines Propulsion System Mechanical Structure Environmental Impact Navigation Communications Human- Machine Interaction Heterogeneous Modeling
  39. 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

×