Research Rationale
To understand our complex world, scientists describe models of the reality we observe. Engineers use these models to build physical systems that solve the problem modeled in real-life practice. A model is a simplification of the "real thing" it represents (referred to as system), exhibiting only the properties of the system that are relevant to the modeler's intention or study. The model is therefore what we call an abstraction of the system. Given that today's computer technologies allow us to be more efficient from a time, size, and resource point of view, software programs are ubiquitously utilized in the solution of problems from the real physical world. In current practices, a programmer implements the solution using a programming language that can be executed virtually. A lot of work is then spent on validating the program against how it actually happens in the real world. The problem with this practice is in the mismatch between the problem domain and the solution domain. This requires tremendous cognitive effort from the programmer to map the concepts and the behavior of the real system onto the programming world—and back. This is irrevocably the hardest skill to acquire in computer science and, in particular, in software engineering which is all about processes and techniques for leveraging abstractions between the problem domain and the solution domain.
Model-Driven Engineering (MDE) is a software development approach that promotes modeling systems at higher levels of abstraction, using the most appropriate formalisms, in order to reduce the accidental complexity imposed by typical tools and technologies used in a particular domain. MDE is a promising technique that proposes to choose the most appropriate solution domain, which may not always be source code, to solve a problem from the real physical world. This means that solutions can be expressed using concepts, notations and behaviors that match directly the original domain in which the real system is typically modeled, rather than code. To a certain extent, we could let domain experts build models themselves: this is called domain-specific modeling. A domain expert is someone who wants to understand or use a system in a simplified manner with a specific intention, e.g., an electrical engineer, a biologist, a teacher, a gamer, a customer, etc. Typically, these experts create abstractions of a complex system to study in the form of models that exhibit only the properties of the system that are relevant to the modeler's intention. To design domain-specific models, appropriate modeling languages must be defined. Given that our research does not target one domain in particular, we develop generic modeling tools that allow a modeler from any domain to create his model: this is the purpose of AToMPM, our tool for multi-paradigm modeling.
The ultimate purpose of a model is concealed in the semantics (meaning) it expresses. A model is only useful if some behavior is emerged from it. Thus, we express the behavior of models and executable relations between them through transformations. Model transformation design, development, and synthesis are critical research focuses in our team. Model transformations are used to synthesize, translate, evolve, analyze, and execute models. To accomplish these tasks, a model transformation language must therefore be adapted to the domain of the models to transform.
A particular type of transformation is simulation. It is typically used to predict future states and behaviors of the system. Simulation-based Design (SBD) is a scientific approach for calibrating and optimizing a model to make sure it represents and solves the problem at hand accurately. In SBD, the system is modeled at the desired level of abstraction using MDE techniques. The simulation of the model is always performed in a controlled environment which is also modeled. Running the simulation experiments is an iterative process that ends when the analyzed outcome is satisfactory. From the optimized model of the system and environment, it is then possible to synthesize (i.e., automatically generate) applications that domain experts can work with. All our applications are automatically synthesized and deployed on different platforms, such as: over the web, mobile devices, or embedded in physical hardware devices.
Research Interests
Domain-Specific Modeling environments: automatic generation, DSLs for non-computer science applications, collaborative environments
Model Transformation: design of domain-specific transformation languages, analysis and verification, execution and animation, debugging, efficiency
Quality concerns in MDE: fault-tolerance, design principles and patterns, exception handling
Methodology: adapt development process to MDE and vice-versa, empirical studies
Simulation-Based Design: discrete-event simulation, modeling and simulation (M&S), applying M&S techniques to test and calibrate models and transformations
Application of MDE: synthesis on embedded platforms (Android, Arduino), domotics, robotics, automotive
Software
Several software development projects are available on our GitHub organization .
GentlemanGentleman is a lightweight web-based projectional editor that allows you to create and manipulate concept-based models through projections.
AToMPM is the modeling tool we are developing at the University of Montreal in collaboration with McGill University, the University of Antwerp, and the University of Alabama. AToMPM is a research framework from which you can generate domain-specific modeling web-based tools that run on the cloud. Visit AToMPM.
ReLiSReLiS stands for "Revue Littéraire Systématique" which is French for "Systematic Literature Review". When a researcher wants to address a research problem, he starts by looking at what already exists in the scientific literature (published papers) on the topic. ReLiS is a tool that helps him considerably reduce the effort to analyze the corpus of papers, typically varying between hunderds and thousands depending on the research topic. ReLiS allows the user to follow a systematic process and auto
BiBlerBiBler is a software for managing references to scientific articles using BibTeX. Not only is it a fully functional software, the tool has been entirely modeled and synthesized in Python. It is used for educational purposes in order to understand how to generate a complete application from UML models in an agile and test-driven environment.
TxtMETxtME is a stand-alone web-based customizable domain-specific textual modeling editor. It provides built-in handy IDE features, such as syntax highlighting, automatic text completion, and error detection. Download TxtME.
T-CoreT-Core is a python framework for building your own domain-specific model transformation languages. Download the T-Core package.
Projects
Matériathèque numérique (Digital material library) Pôle d’enseignement supérieur pour la petite enfance en Montérégie Innovation et développement de Reconnaitre In partnership with CEGEP de Valleyfield 2023—2024 |
|
Digital Twins for Vertical Farming NSERC Alliance 2022—2024 |
|
Multi-paradigm digital twin framework for biophysical systems: Application to vertical farming MITACS Accelerate 2022—2023 |
|
Inference of simulation models in Digital Twins by reinforcement learning IVADO Postdoctoral Research Funding 2021—2023 |
|
Optimization of task sequencing and allocation MITACS Accelerate In partnership with National Bank of Canada 2021—2022 |
|
Semantic versioning of model changes in decision support systems MITACS Accelerate In partnership with Technology Evaluation Centers 2020—2022 |
|
Constraint resolution as primitive operator for multi-paradigm model transformations Recherche, Formation & Innovation en Pays de Loire, AtlanSTIC 2020 In partnership with ESEO-Tech and IVADO 2020—2021 |
|
From domain-specific languages to domain-specific environments NSERC Discovery Grant 2020—2025 |
|
Management of smart production lines Relations internationales et francophones Quebec-Bavaria In partnership with Fortiss 2018—2019 |
|
Improving the modernization of legacy applications NSERC Engage Plus Grant In partnership with Fresche Legacy 2017 |
|
Automating the modernization of legacy applications NSERC Engage Grant In partnership with Fresche Legacy 2016 |
|
Collaborative modeling among cross-domain teams NSERC Discovery Grant 2015—2020 |
Activities in Scientific Community
I am involved in the organization of the following events
- MODELS Educator's Symposium chair: ACM/IEEE International Conference on Model Driven Engineering Languages & Systems (2024)
- HoWCoM workshop organizer: International Hands-on Workshop on Collaborative Modeling (2021)
- MODELS general chair: ACM/IEEE International Conference on Model Driven Engineering Languages & Systems (2020, 2022)
- ICSE deputy conference chair: IEEE/ACM International Conference on Software Engineering (2019)
- MODELS steering committee member: ACM/IEEE International Conference on Model Driven Engineering Languages & Systems (2017, 2018, 2019, 2020, 2021, 2022)
- SCSC program committee chair: Summer Simulation Multiconference (2017)
- MODELS regional publicity chair: ACM/IEEE International Conference on Model Driven Engineering Languages & Systems (2017)
- GEMOC workshop organizer: International Workshop on The Globalization of Modeling Languages (2016, 2017)
- PAME workshop organizer: International Workshop on Patterns in Model Engineering (2015, 2016)
- SCSC proceedings chair: Summer Simulation Multiconference (2014)
- MODELS workshops chair: ACM/IEEE International Conference on Model Driven Engineering Languages & Systems (2013)
- VOLT workshop organizer: International Workshop on Verification and Validation of Model Transformations (2012, 2013, 2014, 2015, 2016)
- MPM workshop organizer: International Workshop on Multi-Paradigm Modeling (2012)
I have also been part of the program committee of over a 100 conferences, symposia, and workshops. I am also a regular reviewer of over 30 highly ranked journals.