Go to the top

Welcome to R3iSE, Software Egineering group @ SCS, McGill University.


We are passionate about discovering emerging tech. and empowering people

Principal Investigator

  • Name: Majid Babaei
  • Email: majid.babaei@mcgill.ca
  • Degree: Ph.D. in Software Engieering
  • 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!

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

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

We are here to make sigificant changes!

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]

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]
[1] 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'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)

Assigments

5 Labs

Short Exams

3 Quizzes

Course Project

Final Exam

The core concepts

  • DevOps Culture and Practices
  • Planning using Azure DevOps
  • Version Control Systems
  • Gerrit Code Review
  • Containerization
  • Docker
  • Continuous Integration
  • Continuous Delivery
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)

Assigments

3 Labs

Short Exams

3 Quizzes

Course Project

Final Exam

The core concepts

  • DevOps Culture and Practices
  • Version Control Systems
  • Gerrit Code Review
  • Build Systems
  • Static Code Analysis
  • Software Testing
  • Continuous Integration
  • Continuous Delivery

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