RESEARCH PROJECTS

Autonomous Driving

  • Project Summary: This main idea of this project is to integrate real hardware used in cars to connect with CARLA Simulator. This project develops a real-time driving environment and adds constraints to test different modules of autonomous vehicles. In addition, it aims to improve the software quality to bring more realistic and more modern features (e.g., Lane Assisting) for the users.

A Novel Framework for the Design and Analysis of Embedded Software with Variable Constraints

  • Project Summary: Many embedded systems are designed with over provisioning of resources, being unable to handle environmental uncertainties efficiently, which pose variable constraints. Resource over provisioning is commonly used to avoid the occurrence of rare but devastating worst-case situations, but the wastage of resources is accrued with the increasing number of tasks and messages. Therefore, we aim to provide a set of methods and tools to facilitate: (a) automatic selection of design elements and their configuration with user- and system-oriented constraints, (b) efficient resource provisioning to workloads with mapping constraints to multiple configurations or modes, and (c) monitoring and analysis of events to generate recommendations on design updates to operate applications efficiently in different situations.

Development of a Dynamic Anomaly Detection Model from Kernel Trace Events

  • Project Summary: System processes generate traces as a consequent of their execution. When we analyze these traces, we can create a context model that captures the behavior of the process. This reverse engineering process presents an opportunity for deeper contexts as the traces capture both the human-to-machine and machine-to-machine interactions, unlike the application layer context models that capture mostly the human-to-machine interactions. Using a novel deep learning architecture, we create unsupervised anomaly models that detect deviations in the standard behavior of the system processes.

Situation-aware Embedded Real-Time Systems

  • Project Summary: Real-time systems have constraints such as safety or performance and may operate differently to facilitate the requirements. To guarantee a system that can attain an anticipated outcome, it needs to be aware of its design and various situations. This project presents a framework which monitors the environment of a real-time traffic signal and analyzes the constraints which allows us to investigate the probability of failure as well as the performance of a system. The analysis promotes the use of machine learning to analyze the system behavior and adapt to different situations. Moreover, different constraints may represent the system operation into multiple modes. The system can have a better management ability by changing different modes of operation to adapt to various circumstances adjusting the properties of existing components and resources, allowing the system to attain flexibility. Various software systems such as autonomous vehicle software, medical system software, agriculture-related machine software, and internet of things (IoT) systems can benefit from the research. This research can also be implemented in various areas like software certification, validation, and verification, software reliability and robustness.

Anomaly Detection

  • Project Summary: Software debugging, audit, and compliance testing are some of the tasks performed using execution traces of an operating system. However, these actions gather information about the behavior of the software vis-a-vis its design aims. In this project, the analysis of the execution traces of an embedded real-time operating system (RTOS) is rather to model the behavior of the physical system being managed by the software application via the embedded operating system. Hence, for an event-triggered embedded RTOS that controls the behavior of a bespoke system like an unmanned aerial vehicle (UAV), the events in the execution traces of the embedded RTOS is directly linked to the operation of the controlled physical system. Therefore, the project hypothesizes that the frequency of events (method/function calls) per observation is a useful feature for modeling the behavior of the physical system controlled by the operating system. Furthermore, the project tackles the challenge of lack of data that sufficiently captures the possible degree of aberration that may occur in a system. The applicability of the project was ensured through testing the model with traces of a real-time operating system kernel of a UAV, and the results showed that the model achieves an improved anomalous trace detection accuracy even under the induced missingness.

Edge Computing

  • Project Summary: Edge computing brings cloud closer to the things which produce and process Cyber-Physical Systems (CPS) or Internet of Things (IoT) data. Devices closer to CPS or IoT data and possessing limited computation power are called edge/xfog nodes. These fog nodes can be deployed anywhere with a network connection: alongside a railway track, on factory floor, on top of a power pole or in a vehicle. Examples of fog nodes are routers, switches and embedded servers. Analyzing CPS or IoT data near to place where it is collected minimizes latency, reduces network traffic and keeps sensitive data inside the network. Fog applications are as diverse as the internet of things, what they have common is processing real-time data from network connected things and then initiating an action. Major advantage of fog computing is providing milliseconds response time in CPS or IoT enabled applications for real-time control and analytics.

Test Case Prioritization with ML

  • Project Summary: Test prioritization and selection is of great importance in test process optimization to make efficient use of testing resources, specially when it comes to regression testing for different code submissions in the continuous integration of DevOps practice. Appropriate knowledge processing and learning techniques to deal with numerous and versatile sources of information can be used to address efficiently the peculiarities of each code submissions as well as software baselines and evaluate their quality characteristics. A number of key contributions in this research will include: 1) developing a strategy that can automatically select the test suites that could be impacted by a change and identify the most likely ones to fail based on a given change, (2) modeling the size, pervasiveness and scope of a change and verify that by determining an optimal set of test suites to execute, and (3) using machine learning to model a developers skill in changing a given area and adjust test strategy accordingly.

Design and Development of Autonomous Disinfecting Embedded Systems for COVID-19

  • Project Summary: One of the major challenges during the COVID-19 pandemic is frequent disinfecting. This is very critical for places like hospitals and long term care. In most places, human operators perform the cleaning but it may cause them infected with the virus because of the shortages of personal protective equipment (PPE) and many of the unknowns of COVID-19. The goal of this project is to improve existing (a) floor disinfection machines (e.g. wet floor scrubbers) of various types used in hospitals, (b) high-intensity UV disinfection machines, and (c) chemical mist disinfection machines. In this research, we aim to investigate to (a) increase the number of models of disinfection systems to which our add-on technology is compatible, and (b) increase the performance specifications of the core add-on navigation technology itself. This improvement would allow hospitals to disinfect the hospital surfaces on a more frequent basis than is possible with human cleaners and also simultaneously to increase the quality of cleaning by ensuring that some surfaces are not missed due to human error and neglect.

Real-time Data Analytics for Mushroom Farms

  • Project Summary: This project aims at developing a data analytics framework for mushroom farms from the data received from harvesting, packaging, and sales. The analytics will help predicting the demand to reduce waste and optimize the supply chain. Since mushrooms require special considerations for growing and therefore the data analytics framework will help this specific agriculture farm industry to leverage the potentials of machine learning. In this project, our objectives are to (1) create a real-time data analytics framework to analyze mushroom-specific information, (2) predict supply and demand based on the analysis of the data, and (3) track and control any inputs that can optimize the supply and demand. The proposed innovative real-time data analytics platform will be beneficial for current and next-generation mushroom farms.

Fault Analysis and Localization for Cloud-Native Applications using Machine Learning

  • Project Summary: This project investigates machine learning techniques to predict the faults of cloud native application based on runtime behaviours and the developers’ code to help developers improve the quality of the applications they develop. It will look at development faults that can surface as either application failures, such as performance degradation or memory leaks, or unwanted intrusions into the system, such as code injection. The machine learning algorithm’s effectiveness will be evaluated based on its ability to correlate runtime behaviours (faults) to the potential issues in application code.

Software Testing for Connected and Autonomous Vehicles

  • Project Summary: This project investigates the various hardware and software interfaces to enable software testing for connected and autonomous vehicles.

Parallel Computation in Embedded Real-time Systems

  • Project summary:  Nowadays,  the increasing availability of multiprocessors, current and future real-time embedded systems require support for predictable parallel computation to use the system efficiently. Such multiprocessors architecture often imposes complex design and implementation challenges in writing parallel programs and timing guarantee for embedded system applications. In this project, we are working on different scheduling approaches of OpenMP for predictable parallel computation.
  • Publications: Md Al Maruf, and Akramul Azim. “Requirements-preserving design automation for multiprocessor embedded system applications”, In Journal of Ambient Intelligence and Humanized Computing (AIHC), 2020.

CARTS: Constraint-based analytics from real-time system monitoring

  • Project summary: Real-time applications are usually well-defined and operate based on a particular system model. However, in practical scenarios, the applications can perform differently because of the uncertainties in the environment. The system can use video streams to capture sequential real-time information of its surroundings. The system also needs to identify various constraints that have significant effects on its characteristics. Therefore, in this project, we aim to monitor real-time applications and identify properties that can be used to analyze constraints such as performance or safety. By analyzing the constraints, we investigate the probability of failure as well as the performance of a system based on its behavior. In this project, we perform an experimental analysis of a real-time traffic intersection monitoring which demonstrates the applicability of our proposed approaches to extract useful information that can be used by a system to learn and adapt dynamic behaviors.

Binary Resistive Voltage Divider

  • Project summary:  The main goal of this project is to detect anomaly in the voltage measurement data that eventually helps to determine the faulty stages of a resistive voltage divider. Moreover, we present a software-based monitoring approach for the auto-calibration process that ensures the correct measurement of any instrument.

A Multi-Mode Real-time System Verification Model Using Efficient Event-driven Dataset

  • Project summary: Real-time systems experience many safety and performance issues at run time due to different uncertainties in the environment. Systems are now becoming highly interactive and must be able to execute in a changing environment without experiencing any failure. A real-time system can have multiple modes of operation such as safety and performance. The system can satisfy its safety and performance requirements by switching between the modes at run time. It is essential for the designers to ensure that a multi-mode real-time system operates in the expected mode at run time. The goal of this research project is to present a verification model that identifies the expected mode at run time and checks whether the multi-mode real-time system is operating in the correct mode or not. To determine the expected mode, we present a monitoring module that checks the environment of the system, identifies different real-world occurrences as events, determines their properties and creates an event-driven dataset for failure analysis. The dataset consumes less memory in comparison to the raw input data obtained from the monitored environment. The event-driven dataset also facilitates onboard decision-making because the dataset allows the system to perform a safety analysis by determining the probability of failure in each environmental situations. We use the probability of failure of the system to determine the expected mode in different environmental situations. To demonstrate the applicability of our proposed scheme, we design and implement a real-time traffic monitoring system that has two modes: safety, and performance. The experimental analysis of the project shows that the verification model can identify the expected operating mode at run time based on the safety (probability of failure) and performance (usage) requirements of the system as well as allows the system to operate in performance mode (in 3295 out of 3421 time intervals) and safety mode (in 126 out of 3421 time intervals). The experimental result of the project demonstrates that the volume of the dataset generated using our approach is significantly less in comparison to existing data compression techniques.

Extending resources for Energy-Aware Cyber-Physical Systems.

  • Project summary: With the increasing number of sophisticated power-intensive applications, embedded systems require energy-efficient computing devices evolving into cyber-physical systems (CPSs). The resource-intensive applications perform complex simulation and computational tasks consume large amounts of power which drain the battery too fast. Extending the resources for CPS by using available information from the physical environment is an efficient technique to achieve considerable power savings for computational devices. One possible scenario for extending the resources could be cloud computing, where energy-intensive computations are offloaded to a remote server that reduce the overall power consumption and extend the battery life of computing devices. In this project, we make an efficient offloading decision based on offline and run-time computations. We introduce the resource power demand and supply for different processes in the offline computation, we also monitor the power consumption and CPU utilization at run-time for different applications and investigate the technical and economic feasibility of using cloud computing to perform various processes that require a different power of computations. We perform an experimental analysis of real-time applications which shows the applicability of our proposed approaches. Results show that significant power (up to 53%) can be saved by extending the resources of the power-intensive application into the cloud.

Assuring the runtime behavior of self-adaptive cyber-physical systems using feature modeling

  • Project summary: A self-adaptive cyber-physical system (SACPS) can adjust its behavior and configurations at runtime in response to varying requirements obtained from the system and the environment. With the increasing use of the SACPS in different application domains, such variations are becoming more common. Users today expect the SACPS to guarantee its functional and timing behavior even in adverse environmental situations. However, uncertainties in the SACPS environment impose challenges on assuring the runtime behavior during system design. Software product line engineering (SPLE) is considered as a useful technique for handling varying requirements. In this project, we present an approach for assuring the runtime behavior of the SACPS by applying an SPLE technique such as feature modeling. By representing the feature-based model at design time, we characterize the possible adaptation requirements to reusable configurations. The proposed approach aims to model two dynamic variability dimensions: 1) environment variability that describes the conditions under which the SACPS must adapt, and 2) structural variability, that defines the resulting architectural configurations. To validate our approach, the experimental analysis of this project is performed using two case studies: 1) a traffic monitoring SACPS and 2) an automotive SACPS. We demonstrate that the proposed feature-based modeling approach can be used to achieve adaptivity which allows the SACPS to assure functional (defining execution of the correct set of adaptive tasks) and non-functional (defining execution of SACPS in the expected mode) correctness at runtime. The experimental results show that the feature-based SACPS demonstrates significant improvement in terms of self-configuration time, self-adaptation time and scalability with less probability of failure in different environmental situations.