Software Modeling Team at UdeM

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


Several software development projects are available on our GitHub organization   .

Gentleman Gentleman

Gentleman 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.


ReLiS 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

BiBler BiBler

BiBler 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.


TxtME 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-Core is a python framework for building your own domain-specific model transformation languages. Download the T-Core package.


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
Digital Twins for Vertical Farming
NSERC Alliance
Multi-paradigm digital twin framework for biophysical systems: Application to vertical farming
MITACS Accelerate
Inference of simulation models in Digital Twins by reinforcement learning
IVADO Postdoctoral Research Funding
Optimization of task sequencing and allocation
MITACS Accelerate
In partnership with National Bank of Canada
Semantic versioning of model changes in decision support systems
MITACS Accelerate
In partnership with Technology Evaluation Centers
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
From domain-specific languages to domain-specific environments
NSERC Discovery Grant
Management of smart production lines
Relations internationales et francophones Quebec-Bavaria
In partnership with Fortiss
Improving the modernization of legacy applications
NSERC Engage Plus Grant
In partnership with Fresche Legacy
Automating the modernization of legacy applications
NSERC Engage Grant
In partnership with Fresche Legacy
Collaborative modeling among cross-domain teams
NSERC Discovery Grant

Activities in Scientific Community

I am involved in the organization of the following events

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.