Go to the top

Welcome to R3iSE,
Our Research Group
@SCS, McGill University.

Here, we are passionate about:
Driving innovation,
Embracing emerging tech,
Empowering individuals.

Principal Investigator

  • Name: Majid Babaei
  • Email: majid.babaei@mcgill.ca
  • Degree: Ph.D. in Computing (focus on Software Engineering)
  • Academic Level: Assistant Professor
  • Meeting: By appointment (ZOOM)
  • Address:
    McGill University,
    School of Continuing Studies,
    680 Sherbrooke St W 13th Floor, RM#1323
    Montréal, QC, Canada H3A 2M7.
- My Queens website is not active anymore!

Research Interests

My research interests encompass a range of activities related to the design, development, debugging, and testing of large-scale software systems. I am particularly focused on Model-Driven Engineering (MDE) and the integration of artificial intelligence in software engineering (AI4SE). My research aims to explore and address challenges in various application areas, enhancing the efficiency and effectiveness of software development processes. Alos, I am eager to contribute to innovative solutions that leverage MDE and AI to improve software quality and productivity across different domains.

Are you interested to work with me?

If you are a student considering completing a Bachelor's or Master's degree or even capston project and you have an interest in any of the topics mentioned above, I encourage you to reach out to me. In your email, please make sure that you include information about:

  • YOUR DEGREE
  • PROPOSED PROJECT
  • HOW MUCH TIME YOU CAN DEDICATE TO IT
  • YOUR DEADLINE TO COMPLETE (if you have any!)

Short Bio

I was born in Tehran (Shemiran), the capital of Iran, in 1988. I have obtained my Ph.D. in December, 2021, in software Engineering at School of Computing, Queen's University, Canada, under Prof. Juergen Dingel supervision. My Ph.D. thesis was on Regression Testing of Distributed Real-Time Embedded Systems in the Context of Model-Driven Development.

Recently, I have joined School of Continuing Studies (SCS), McGill University where I work as an Assistant Professor and Academic Program Coordinator at Technology and Innovation Group. I am also serving as a member of Strategic Planning Committee at SCS where we design/adjust school's long-term vision.

During my Ph.D. studies I have been involved in many industrial and academic projects such as:

Before I moved to Canada, I worked for one year in the Internet of Things (IoT) department at Bosch Engineering Group GmbH in Germany. Meanwhile, I have completed 6-month internship and 6-month master thesis that gave me an exceptional opportunity to explore fundamental concepts of Big Data Analytics, Artificial Neural Networks, and Deep Learning. Before that, I had the opportunity to work for around 2 years as a software developer at EPAK GmbH which is a satellite communication company based in Leipzig. During this time, I have implemented some software projects in Python and C/C++ programming languages to provide reliable satellite communication. Moreover, I have implemented a web-based content management system using PHP, MySQL and JavaScript programming languages.

I obtained my Bachelor degree (B.Sc.) from Shahrood University of Technology in Iran, in the field of Software Engineering. After my graduation, I joined Farazpajohan, a software tech startup company in Sharif University of Technology, where I've started my first professional position and worked for around 3 years. In this company I have been responsible for developing PKI-based Digital Certificate solutions in CentOS Linux environment.

I shared my thoughts and experiences in a lovely interview with Steven Myers at SCS, McGill University.

Download resume as PDF format

NEWS

"The good news about computers is that they do what you tell them to do. The bad news is that they do what you tell them to do." - Ted Nelson

In the fast-paced world of news, academia can feel like a slow-moving glacier, where the most significant changes often occur beneath the surface. Here you can find the latest news about our group's activities:


Highlights


Invited Talks

Our Team

"If you can laugh together, you can work together" - Robert Orben

I am extremly grateful for having the opportunity to work with amazing people over years in academia and industry. Here you can find a list of the students who have collaborated in my group:

Zachary Hayden, BEng. @ECE, McGill University

Zachary Hayden

BEng. @ECE, McGill University

I have experience working as a data engineer for Boston University Medical Lab for Neurobiology working with high fidelity actigraphy data. I've been a part of McGill's prometheus robotics lab working with Joseph Vybihal, and I'm the former software lead for McGill's Space Club. My favorite programming language is currently Rust, although scala comes as a close second. I make use of GitHub Copilot as an AI tool for assisting with development speed. I'm interested in advancing the DevOps field and connecting it more intuitively to the AI development pipeline.

Felicia Sun, CS. @ECE, McGill University

Felicia Sun

BEng. @CS, McGill University

Currently, I have the privilege of working with Dr. Babaei on a systematic literature review focusing on AI-augmented test automation techniques within the realm of DevOps. I am also part of Dr. Ruths' Bot or Not project, where we investigate the dynamics between bots and bot detection systems on social media. My favourite programming languages are Java and Python, and I've been able to get hands-on experience with them through my internships and group projects. During my most recent internship, I worked in Java in a team of software engineers to predict cloud computing costs across AWS, Azure, and GCP cloud platforms. Upon graduating from Honours Software Engineering in 2024, I aim to apply my skills and knowledge at tackling substantial real-world challenges in DevOps and software engineering. Beyond tech and academia, I enjoy hanging out with friends, gaming with them, and exploring new sports.

Michael Buchar, BEng. @ECE, McGill University

Michael Buchar

BEng. @ECE, McGill University

I was born and raised in the Czech Republic with an interest in computer science, education, finance, rocketry, and cycling. I have successfully completed my B.Eng. in Software Engineering at McGill University with a Minor in Aerospace Engineering in 5 long and rewarding years! During my undergraduate studies, I served as a Teaching Assistant for COMP 206 and COMP 202. Currently, I hold the position of Senior Software Developer at RBC, contributing as a full-stack developer proficient in TypeScript, React, Python, and Java helping with automation and implementing cloud platforms. Among all these languages, Python stands out as my favorite. During my Capstone Design Project, I collaborated with Dr. Babaei on an NFT Locker - an innovative decentralized application designed to lock non-fungible tokens. My favorite AI tool at the moment has to be Chat-GPT.

Dominic Chan, BEng. @ECE, McGill University

Dominic Chan

BEng. @ECE, McGill University

As an Electrical Engineering graduate with interests in software, AI, embedded systems and electronics, I completed my studies at McGill with a Bachelor of Engineering in Electrical Engineering in 2023. During my undergraduate studies, I had the opportunity to work with Dr. Babaei for my Final Year Capstone Design Project. With his dedicated guidance and support, we created an innovative decentralised application to lock NFTs, a web-based application designed to shield users from having their NFTs hacked and stolen especially from phishing links. In the world of software and technology, Python is my preferred and most used programming language, especially due to its simplicity and efficiency for data analysis, as well as its AI and Machine Learning applications. Furthermore, ChatGPT has been a great resource in aiding me during my studies. It is a tremendously useful tool in helping me continuously learn and further my understanding of technical and complex concepts.

Zakaria Bouhemhem, BEng. @ECE, McGill University

Zakaria Bouhemhem

BEng. @ECE, McGill University

I am Zakaria Bouhemhem, currently wrapping up my Computer Engineering degree at McGill University. My favorite programming language is Java, which I've mastered during my coursework and used extensively for various projects. I'm also adept with Eclipse, an IDE that I find intuitive and efficient for my development work. Outside of my academic endeavors, I'm an avid strategy game player and love to immerse myself in the great outdoors, engaging in activities like skiing, snowshoeing, hiking, and running, which provide a refreshing balance to my studies.

Services

"Every service we offer is a brick laid on the path to a deeper understanding of the world." - Unknown!

I'm truly grateful for the opportunity to contribute to the scientific community by providing these services. It's a privilege to be a part of the ongoing quest for knowledge and discovery.

Organizing Committee (OC)
  • [ICSE'25] 47th International Conference on Software Engineering, Proceedings Co-Chair
  • [SEAMS'25] 20th International Conference on Software Engineering for Adaptive and Self-Managing Systems
  • [SERP4IoT'25] 7th International Workshop on Software Engineering Research & Practices for the Internet of Things

Program Committee (PC)
  • [ASE'24] 39th IEEE/ACM International Conference on Automated Software Engineering, Demonstrations & Artifact Evaluation Tracks

Professional Committee (PrC)
  • [CAUCE] Canadian Association for University Continuing Education, Professional Development Committee
  • [McGill] School of Continuing Studies at McGill University, Strategic Planning Committee

Our Approach

Ideas and Research



We work closely with academia and industry to identify the discoveries and new technologies that are solution enablers.




Concept



Our knowledge of how our customers will use a product—including their environment and operational constraints—informs how we conceptualize the solution.




Design and Prototype



Our modeling and simulation capabilities support rapid incorporation of new ideas and user feedback into virtual systems, demonstrable solutions, and fielded prototypes.




Transition



End-use of a product informs how we approach its transition to the field. We work with outside companies to prepare our prototype design for high-volume mass production, or can produce the device in-house when only limited quantities are needed.




Support



Our time spent in the field with sponsors provides them with critical technical support and provides us with valuable insight into the future needs of those customers.


Projects

Are you up for the next adventure?!

Here is a list of past and current projects people@R3iSE been involved over the past few years!

DAPPER

2023 - 2024
Dapper is a subscription-based application that delivers personalized outfits based on personal preference. The outfits proposed would be tailored by fashion stylists to the user's individual fashion preferences, current season, preferred colors, size, and subscription level.
List of the related papers [1] A. Benakmoum, R. Ammar, Z. Bouhemhem, and M. Babaei. 2023. "Project Proposal". [LINK]
[2] A. Benakmoum, R. Ammar, Z. Bouhemhem, and M. Babaei. 2023. "Progress Report 1". [LINK]
[3] A. Benakmoum, R. Ammar, Z. Bouhemhem, and M. Babaei. 2023. "Progress Report 2". [LINK]
[4] A. Benakmoum, R. Ammar, Z. Bouhemhem, and M. Babaei. 2023. "Progress Report 3". [LINK]
[5] A. Benakmoum, R. Ammar, Z. Bouhemhem, and M. Babaei. 2023. "Progress Report 4". [LINK]
[6] A. Benakmoum, R. Ammar, Z. Bouhemhem, and M. Babaei. 2023. "Progress Report 5". [LINK]
[7] A. Benakmoum, R. Ammar, Z. Bouhemhem, and M. Babaei. 2023. "Progress Report 6". [LINK]
[8] A. Benakmoum, R. Ammar, Z. Bouhemhem, and M. Babaei. 2023. "Poster". [LINK]

Gallery

NFT Locker App

2022 - 2023
The motivation of this project is to allow people to have security while owning their assets which can potentially be very valuable. What we achieved this semester was setting up our frontend application that enables users to sign in with their Ethereum wallet and view a gallery of their NFTs by utilizing available online APIs.
List of the related papers [1] M. Buchar, D. Chan, E. Gomolin, E. Karadibak, and M. Babaei. 2023. "Progress Report 2". [LINK]
[2] M. Buchar, D. Chan, E. Gomolin, E. Karadibak, and M. Babaei. 2023. "Progress Report 3". [LINK]
[3] M. Buchar, D. Chan, E. Gomolin, E. Karadibak, and M. Babaei. 2023. "Progress Report 4". [LINK]
[4] M. Buchar, D. Chan, E. Gomolin, E. Karadibak, and M. Babaei. 2023. "Progress Report 5". [LINK]
[5] M. Buchar, D. Chan, E. Gomolin, E. Karadibak, and M. Babaei. 2023. "Progress Report 7". [LINK]
[6] M. Buchar, D. Chan, E. Gomolin, E. Karadibak, and M. Babaei. 2023. "Final Progress Report". [LINK]
[7] M. Buchar, D. Chan, E. Gomolin, E. Karadibak, and M. Babaei. 2023. "Poster". [LINK]

Gallery

RA4XSTATE

2022 - 2023
RA4Xstate is a robustness analysis framework in the context of Model-Driven Development for systems designed based on finite state machines. RA4Xstate takes a behavioural and a property model of the system under the test as inputs. It evaluates the system's robustness based on a notion of cost that is computed for every off-track execution step.
List of the related papers [1] Majid Babaei, Maroua Ben-Attia, and Yann-Gaël Guéhéneuc. 2023. "Efficient Automated Robustness Testing Framework for State Machines". submitted to the IEEE Transactions on Software Engineering.

MRegTest

2020 - 2022
As software evolves, regression testing techniques are typically used to ensure the new changes are not adversely affecting the existing features. Despite recent advances, regression testing for distributed systems remains challenging and extremely costly. Existing techniques often require running a failing system several time before detecting a regression. As a result, conventional approaches that use re-execution without considering the inherent non-determinism of distributed systems, and providing no (or low) control over execution are inadequate in many ways.
List of the related papers [1] M. Babaei and J. Dingel, "Efficient Replay-based Regression Testing for Distributed Reactive Systems in the Context of Model-driven Development," 2021 ACM/IEEE 24th International Conference on Model Driven Engineering Languages and Systems (MODELS), 2021, pp. 89-100. [LINK] [VIDEO]
[2] M. Babaei and J. Dingel, "MRegTest: A Replay-Based Regression Testing Tool for Distributed UML-RT Models," 2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C), 2021, pp. 620-624. [LINK]

MReplayer

2018 - 2020
MReplayer that supports ordering and replaying of execution traces of distributed systems that are developed using communicated state machine models. Despite the existing solutions that require detailed traces annotated with timestamps (logical or physical), MReplayer only requires a minimum amount of traces without timestamps. Instead, it uses model analysis techniques to order and replay the traces.
List of the related papers [1] Majid Babaei, Mojtaba Bagherzadeh, and Juergen Dingel. 2020. "Efficient reordering and replay of execution traces of distributed reactive systems in the context of model-driven development". In Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS'20), 285-296. [LINK] [VIDEO]
[2] Majid Babaei, Mojtaba Bagherzadeh, and Juergen Dingel. 2020. "MReplayer: a trace replayer of distributed UML-RT models". Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, 1-5. [LINK]

Teaching

McGill University

Fall'24 - CCCS 610: Digital Thinking for Data Analysis (Description)

Computer Science (CCE) : Examination of programmable tools for data analysis. Application methods to implement fundamental algorithms making use of data structures.

Winter'24 - CCCS 301: Programing Techniques 2 (Description)

Computer Science (CCE) : Object oriented design and programming techniques, including the creation of classes, the use of objects, inheritance, and other object oriented principles. Strong focus on problem solving techniques and ways in which programmers can support decision-making within an organization. Inheritance. Interfaces. Design patterns. Application development frameworks. Build automation tools.

Winter'24 - CCCS 300: Programing Techniques 1 (Description)

Computer Science (CCE) : Fundamental programming techniques, concepts, and data structures, including modularization and maintainability. Emphasis on facilitating communication and understanding between systems analysts and programmers to support decision-making.

Fall'23 - ECSE 437: Software Delivery (Description)
ECSE 437 is a core course in the Computer Engineering stream in Electrical and Computer Engineering department at McGill University. I will be teaching this course in Fall semester 2023 with the help of two Grad. TAs:
  • Motahareh Pour Ahimi (motahareh.pourahimi@mail.mcgill.ca)
  • Sarvin Ghiasi Khalehoghli (sarvin.ghiasikhalehoghli@mail.mcgill.ca)
Fall'23 - CCCS 301: Programing Techniques 2 (Description)

Computer Science (CCE) : Object oriented design and programming techniques, including the creation of classes, the use of objects, inheritance, and other object oriented principles. Strong focus on problem solving techniques and ways in which programmers can support decision-making within an organization. Inheritance. Interfaces. Design patterns. Application development frameworks. Build automation tools.

Summer'23 - CCCS 330: Database Design and Business Applications Development (Description)

Computer Science (CCE) : Design and implement applications that make use of different database management systems. Simple and complex Structured Query Language (SQL) used in manipulation of information, data design, querying, and programming. Connectivity to different databases through programming languages to implement web applications.

Fall'22 - ECSE 437: Software Delivery (Description)
ECSE 437 is a core course in the Computer Engineering stream in Electrical and Computer Engineering department at McGill University. I will be teaching this course in Fall semester 2022 with the help of two Grad. TAs:
  • Kirollos Roufail (kirollos.roufail@mail.mcgill.ca)
  • Pavel Rumiantsev (pavel.rumiantsev@mail.mcgill.ca)

Concordia University

Winter'23 - COMP 218: Fundamentals of Programming ( Description)

The primary objective of this course is to enable you to understand the basic principles of programming with classes and objects. The language used for the course is C++, chosen because it supports object oriented programming and because it is widely used in industry. By the end of this course students should be able to:
1. Develop an algorithm for the solution of a word problem.
2. Write a complete C++ program given an algorithm.
3. Describe the output of a C++ program written by someone else.
4. Start judging the efficiency of a program.
The course will include discussions and explanations of the following topics (not necessarily in this order): algorithm development; data types, expressions, and operators; input and output; assigning values to variables; control structures for decision and repetition; one dimensional arrays; the use of libraries; functions; classes and objects: design and implementation of simple classes; class descriptions, class development, program development using classes.

Fall'21 - COMP 218: Fundamentals of Programming (Description)

The primary objective of this course is to enable you to understand the basic principles of programming with classes and objects. The language used for the course is C++, chosen because it supports object oriented programming and because it is widely used in industry. By the end of this course students should be able to:
1. Develop an algorithm for the solution of a word problem.
2. Write a complete C++ program given an algorithm.
3. Describe the output of a C++ program written by someone else.
4. Start judging the efficiency of a program.
The course will include discussions and explanations of the following topics (not necessarily in this order): algorithm development; data types, expressions, and operators; input and output; assigning values to variables; control structures for decision and repetition; one dimensional arrays; the use of libraries; functions; classes and objects: design and implementation of simple classes; class descriptions, class development, program development using classes.

Queen's University

Fall'21 - ELEC 377: Operating Systems (Description)
ELEC 377 is a core course in the Computer Engineering stream in Electrical and Computer Engineering department at Queen's University. I've thought this course in Fall semester 2021 with the help of 8 TAs (4 undergrad TAs and 4 Grad. TAs). I thought the students the basic concepts of operating systems and the historical and technical basis for many of the features that are in current operating systems.

Collaborations with Industry

The internships, fellowships and enterprise projects that I have been involved:

The more I have been in industry, the more I realize that when it comes to a collaboration with an enterprise, quality and customer satisfaction cannot be compromised! Creating a pipline of the best practices technologies, perfomring regurous analysis, is one of the most promissing ways to ensure the quality of an industrial-grade projects. Leveraging on my academic skills enabling me to effectively served many companies/organisations in various domains.

Imaginary Spaces

Senior Software Developer

Nov. 2021 - Apr. 2023
I've been working on Row64 that is the world first GPU-enabled spreadsheet software built for big data from the ground up. By combining the simplicity of spreadsheets with the enhanced functionality of big data systems.
HUMANITAS

Team Lead

Jan. 2022 - Mar. 2023
Software Robustness Analysis is a novel model-based approach that we have proposed to test the robustness of realtime embedded systems such as drones by leveraging the property and the behavioral model and performing static analysis.
Aggregate Intellect

Team Lead

Jun. 2022 - Feb. 2023
Explainable Information Retrieval: The goal is to create open source libraries and publish papers on the topics of post-hoc or embedded explainability in Info Retrieval, Search, or related tasks.
Student Wellness Services

Team Lead

Jan. 2021 - Apr. 2023
The GIS Wellness Resource Map is a centralized platform that allows students to learn about the various support services available to them at Queen's. This tool uses mapping software to allow students to physically locate the services they need.
National Research Council

Internship

Apr. 2021 - Aug. 2021
Developing an Advanced Persistent Threat detection approach for large scale databases.
Lamp Lab

Software Developer

Jan. 2020 - Jan. 2022
Mind-Wandering: In this project we have explored the experience of mind-wandering during online lectures. Specifically, we have developted an application called ProgApp that is used to investigated how episodes of mind wandering impact learning and performance, and how mind wandering might be reduced in educational settings.
Bosch Engineering Group

Internship

Jan. 2017 - Dec. 2017
Developing AMRA which is AMRA is a smart fleet management system solution that consists of the AMRA device, the AMRA portal, as well as the optional AMRA wireless sensor technology. The AMRA device is a piece of telematics hardware featuring a GPS module, integrated GSM antenna, numerous sensors (wired and wireless), and a powerful battery.
EPAK GmbH

Software Developer

Jun. 2015 - Dec. 2016
I worked on a software called ProgSoft that is used for programming and troubleshooting Maritime Antenna Systems.
Farzapajohan

Software Developer

Sep. 2012 - April. 2015
I worked on the national Certificate Authority (CA) project called ParsTrust that is PKI Certificate Authority software, built using Java (JEE) technology. Robust, flexible, high performance, scalable, and platform independent.

Contact

Let's Keep In Touch

We are just one click away! I am always open to new opportunities and challenges, so if you have any ideas in the domain of software engineering and AI, I will be happy to help you and your team. Please fill out the form below and share with me some detail of your idea!

Find me on Social Networks