Ongoing Activities
My research activities are making a pragmatic use of formal models to bring semantics into engineering models and their coordination. This is implemented by the join use of CCSL [1] to define the concurrent and timed semantics of domain specific languages [2,3,4]. Such specification can be used to simulate and run analysis of models conforming such languages [5, 6].
Recently, we studied how different (domain specific) languages can be used conjointly in a comprehensive way. As a result, we proposed to develop a language dedicated to the specification of coordination patterns. BCOoL (Behavioral Coordination Operator Language [7]) makes use of language interfaces defined in terms of event types and specify a coordination pattern so that the coordination between any languages conforming such patterns can be automatically generated. The result is integrated in the gemoc studio to provide heterogeneous execution and debugging facilities.
I also investigated how the explicit specification of the coordination (first at the language level and then at the model level) can be used to automatically generate the master in a co-simulation environment but can also be used for debugging such co-simulation. Named co-modeling for co-simulation, this action was done in the context of the Glose project and few prototype based on FMI and on more general 0MQ distributed queues have been implemented [8,9]
Currently I'm investigating two things: first how the notion of model fidelity can be make explicit in a framework to better rationalize the use of the most appropriate level of fidelity depending on the simulation goal [10]; and second how an explicit operational semantics can be used to generate a model checker integrated in the classical development environment [11]. Note that I have first ideas on generating a compiler from the operational semantics and if you're interested to work on it, please contact me !
[1] Charles André. Syntax and Semantics of the Clock Constraint Specification Language (CCSL). [Research Report] RR-6925, INRIA. 2009, pp.37. inria-00384077v2
[2] Benoit Combemale, Julien Deantoni, Matias Ezequiel Vara Larsen, Frédéric Mallet, Olivier Barais, et al.. Reifying Concurrency for Executable Metamodeling. Erwig, Martin and Paige, Richard F. and Van Wyk, Eric. SLE - 6th International Conference on Software Language Engineering, Oct 2013, Indianapolis, IN, United States. Springer, 8225, pp.365-384, 2013, Lecture Notes in Computer Science; Software Language Engineering - 6th International Conference, SLE 2013, Indianapolis, IN, USA, October 26-28, 2013. Proceedings. 10.1007/978-3-319-02654-1_20. hal-00850770v2
[3] Julien Deantoni, Frédéric Mallet. ECL: the Event Constraint Language, an Extension of OCL with Events. [Research Report] RR-8031, INRIA. 2012, pp.24. hal-00721169v2
[4] Florent Latombe, Xavier Crégut, Benoît Combemale, Julien Deantoni, Marc Pantel. Weaving Concurrency in eXecutable Domain-Specific Modeling Languages. 8th ACM SIGPLAN International Conference on Software Language Engineering (SLE), 2015, Pittsburg, United States. ACM, 2015, hal-01185911
[5] Julien Deantoni, Frédéric Mallet. TimeSquare: Treat your Models with Logical Time. Carlo A. Furia, Sebastian Nanz. TOOLS - 50th International Conference on Objects, Models, Components, Patterns - 2012, May 2012, Prague, Czech Republic. Springer, 7304, pp.34-41, 2012, Lecture Notes in Computer Science - LNCS; Objects, Models, Components, Patterns. doi://10.1007/978-3-642-30561-0_4. hal-00688590
[6] Benoit Combemale, Julien Deantoni, Olivier Barais, Arnaud Blouin, Erwan Bousse, et al.. A Solution to the TTC'15 Model Execution Case Using the GEMOC Studio. 2015. hal-01152342
[7] Matias Ezequiel Vara Larsen, Julien Deantoni, Benoit Combemale, Frédéric Mallet. A Behavioral Coordination Operator Language (BCOoL). Timothy Lethbridge; Jordi Cabot; Alexander Egyed. International Conference on Model Driven Engineering Languages and Systems (MODELS), Sep 2015, Ottawa, Canada. ACM; IEEE, 18th International Conference on Model Driven Engineering Languages and Systems (MODELS) pp.462, 2015, hal-01182773
[8] Giovanni Liboni, Julien Deantoni. CoSim20: An Integrated Development Environment for Accurate and Efficient Distributed Co-Simulations. ICISE 2020 - 5th International Conference on Information Systems Engineering, Nov 2020, Manchester / Virtual, United Kingdom. hal-03038547
[9] Giovanni Liboni, Julien Deantoni. A Semantic-Aware, Accurate and Efficient API for (Co-)Simulation of CPS. CoSim-CPS 2020 - Software Engineering and Formal Methods. SEFM 2020 Collocated Workshops, Sep 2020, Amsterdam / Online, Netherlands. hal-03038527
[10] João Cambeiro, Julien Deantoni, Vasco Amaral. Supporting the Engineering of Multi-Fidelity Simulation Units With Simulation Goals. International Workshop on Multi-Paradigm Modeling for Cyber-Physical Systems (MPM4CPS'21), Oct 2021, Fukuoka, Japan hal-03374990
[11] Julien Deantoni, João Cambeiro, Soroush Bateni, Shaokai Lin, Marten Lohstroh. Debugging and Verification Tools for LINGUA FRANCA in GEMOC Studio. FDL 2021 - Forum on specification and Design Languages, Sep 2021, Antibes, France. hal-03374955
Ongoing Projects
-
GLOSE, bilateral INRIA/Safran project
-
IRT Saint Exupery Archeocs project
-
PSPC Adavec project
Software
-
TimeSquare
TimeSquare is developed for almost 10 years for now. It is dedicated to the specification, simulation, compiling and analysis of logical time constraints in CCSL (Clock Constraint Specification Language, a formal declarative language). It is constantly evolving and can be used either as a plain IDE or as an embedded solver. It has been used to represent the behavioral semantics together with the timing performance in many of our publications.
-
MoCCML mapping (ECL)
MoCCML mapping, formerly named ECL (Event Constraint Language) is a lightweight extension of OCL (Object Constraint Language) with the notion of Event and logical constraints. It is used to specify the concurrent semantics of languages so that, for a specific model, the corresponding CCSL formal model can be automatically synthesize.
-
MoCCML
MoCCML (Model of Concurrency and Communication Modeling Language) is a formal meta-language dedicated to the specification of logical constraints between events, based on constraint automata. These constraints can be used conjointly with a CCSL specification for simulation and analysis. It can also be used in ECL to specify the concurrency of a language or in BCOoL to specify how a coordination pattern between different languages behaves.
-
BCOoL
BCOoL (Behavioral Coordination Operator Language) is a meta-language dedicated to the specification of behavioral coordination patterns. Based on event type from some language interfaces, it specifies how the models that conform such languages have to be coordinated. The specification, make at the language level is used to automatically creates an executable coordination for any model conforming the languages used in BCOoL. The resulting heterogeneous models can be simulated in the GEMOC studio or analyzed in TimeSquare (see here for an heterogeneous simulation from a BCOoL specification)
-
Cosim20
CoSim20: An Integrated Development Environment for Accurate and Efficient Distributed Co-Simulations The development of Cyber-Physical Systems involves several disciplines and stakeholders, which use heterogeneous models and formalisms to specify the system and make early validation and verification. In order to understand the behaviour emerging from the heterogeneous models, a collaborative simulation (co-simulation) can be used. To make it happen, the system engineer must define a correct coordination of the different executable models, which can be distributed over different enterprises. This is an important but difficult (and error prone) task that can not be done without information about the behavioral semantics of each model. In this paper, we introduce an integrated development environment which allows 1) to import different executable models (named simulation units), 2) to graphically connect them with rich connectors and 3) to generate a dedicated, accurate and efficient distributed co-simulation. The framework is based on Eclipse EMF for the modeling part and on ∅MQ for the deployment. It is named CoSim20.
Open Positions