Marouane Kessentini’s research while affiliated with University of Michigan–Flint and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (185)


Mind the Gap: The Disconnect Between Refactoring Criteria Used in Industry and Refactoring Recommendation Tools
  • Conference Paper

October 2024

·

16 Reads

James Ivers

·

Anwar Ghammam

·

Khouloud Gaaloul

·

[...]

·



Efficient Management of Containers for Software Defined Vehicles

July 2024

·

55 Reads

ACM Transactions on Software Engineering and Methodology

Containerization technology, such as Docker, is gaining in popularity in newly established software-defined vehicle architectures (SDVA). However, executing those containers can quickly become computationally expensive in constrained environments, given the limited CPU, memory, and energy resources in the Electric Control Units (ECU) of SDVA. Consequently, the efficient management of these containers is crucial for enabling the on-demand usage of the applications in the vehicle based on the available resources while considering several constraints and priorities, including failure tolerance, security, safety, and comfort. In this paper, we propose a dynamic software container management approach for constrained environments such as embedded devices/ECUs in SDVA within smart cars. To address the conflicting objectives and constraints within the vehicle, we design a novel search-based approach based on multi-objective optimization. This approach facilitates the allocation, movement, or suspension of containers between ECUs in the cluster. Collaborating with our industry partner, Ford Motor Company, we evaluate our approach using different real-world software-defined scenarios. These scenarios involve using heterogeneous clusters of ECU devices in vehicles based on real-world software containers and use-case studies from the automotive industry. The experimental results demonstrate that our scheduler outperforms existing scheduling algorithms, including the default Docker scheduler -Spread- commonly used in automotive applications. Our proposed scheduler exhibits superior performance in terms of energy and resource cost efficiency. Specifically, it achieves a 35% reduction in energy consumption in power-saving mode compared to the scheduler employed by Ford Motor Company. Additionally, our scheduler effectively distributes workload among the ECUs in the cluster, minimizing resource usage, and dynamically adjusts to the real-time requirements and constraints of the car environment. This work will serve as a fundamental building block in the automotive industry to efficiently manage software containers in smart vehicles considering constraints and priorities in the real world.



Figure 2: Distribution of accessibility bug reports across in Android and iOS over the years.
Figure 4: Yearly breakdown of the distribution of accessibility bug report for open bug.
Examples of discarded bug reports.
Priority table for non-accessibility bug reports in Android.
Priority table for accessibility bug reports in iOS.

+4

Empirical Investigation of Accessibility Bug Reports in Mobile Platforms: A Chromium Case Study
  • Conference Paper
  • Full-text available

May 2024

·

90 Reads

·

3 Citations

Download

Deployment and performance monitoring of docker based federated learning framework for software defect prediction

February 2024

·

118 Reads

·

2 Citations

Cluster Computing

There are significant challenges in machine learning models due to information security and data privacy issues. In traditional machine learning approaches, the data used to train the centralized model may be sensitive leading to privacy issues. Federated learning overcomes these issues by following the concept of bringing the code to the data instead of data to the code. In today’s era of digital transformation, researchers and industries are focusing on cloud-based technologies. New approaches such as microservice models, docker, kubernetes, containers, and virtual machines are being used by IT industries to develop and deploy applications. We make use of software containers to deploy federated learning models and then we identify security vulnerabilities and resource usage in federated learning model. Flask, docker, cAdvisor, prometheus, and grafana are integrated to monitor the resource usage of the federated learning model in terms of CPU utilization, memory utilization, network traffic usage, and disk usage. The generated federated learning model is deployed on docker, and security vulnerabilities and performance are analyzed using open-source tools. The result shows that the generated model is secure and performs efficiently.


A Systematic Literature Review on Maintenance of Software Containers

February 2024

·

506 Reads

·

1 Citation

ACM Computing Surveys

Nowadays, cloud computing is gaining tremendous attention to deliver information via the internet. Virtualization plays a major role in cloud computing as it deploys multiple virtual machines on the same physical machine and thus results in improving resource utilization. Hypervisor-based virtualization and containerization are two commonly used approaches in operating system virtualization. In this paper, we provide a systematic literature review on various phases in maintenance of containers that are container image detection, container scheduling, container security measures, and performance evaluation of containers. We have selected 145 primary studies out of which 24% of studies are related to container performance evaluation, 42% of studies are related to container scheduling techniques, 22% of studies are related to container security measures, and 12% of studies are related to container image detection process. A few studies are related to container image detection process and evaluation of container security measures. Resource utilization is the most considered performance objectives in almost all container scheduling techniques. We conclude that there is a need to introduce new tagging approaches, smell detection approaches, and also new approaches to detect and resolve threat issues in containers so that we can maintain the security of containers.



EASE: An Effort-aware Extension of Unsupervised Key Class Identification Approaches

December 2023

·

34 Reads

·

1 Citation

ACM Transactions on Software Engineering and Methodology

Key class identification approaches aim at identifying the most important classes to help developers, especially newcomers, start the software comprehension process. So far, many supervised and unsupervised approaches have been proposed; however, they have not considered the effort to comprehend classes. In this paper, we identify the challenge of “ effort-aware key class identification ”; to partially tackle it, we propose an approach, EASE , which is implemented through a modification to existing unsupervised key class identification approaches to take into consideration the effort to comprehend classes. First, EASE chooses a set of network metrics that have a wide range of applications in the existing unsupervised approaches and also possess good discriminatory power . Second, EASE normalizes the network metric values of classes to quantify the probability of any class to be a key class, and utilizes Cognitive Complexity to estimate the effort required to comprehend classes. Third, EASE proposes a metric, RKCP , to measure the relative key-class proneness of classes and further uses it to sort classes in descending order. Finally, an effort threshold is utilized, and the top-ranked classes within the threshold are identified as the cost-effective key classes. Empirical results on a set of eighteen software systems show that i) the proposed effort-aware variants perform significantly better in almost all (≈ 98.33%) the cases, ii) they are superior to most of the baseline approaches with only several exceptions, and iii) they are scalable to large-scale software systems. Based on these findings, we suggest that i) we should resort to effort-aware key class identification techniques in budget-limited scenarios; and ii) when using different techniques, we should carefully choose the weighting mechanism so as to obtain the best performance.


Examining deep learning’s capability to spot code smells: a systematic literature review

October 2023

·

142 Reads

·

3 Citations

Cluster Computing

Code smells violate software development principles that make the software more prone to errors and changes. Researchers have developed code smell detectors using manual and semi-automatic methods to identify these issues. However, three key challenges have limited the practical use of these detectors: developers’ subjective perceptions of code smells, lack of consensus in the detection process, and difficulty in setting appropriate detection thresholds. While code smell detection using machine learning has progressed significantly, there still appears to be a gap in understanding the effective utilization of deep learning (DL) approaches. This paper aims to review and identify current methods for code smell detection using DL techniques. A systematic literature review is conducted on 35 primary studies from a collection of 8739 publications between 2013 and the present. The analysis reveals that common code smells detected include Feature Envy, God Classes, Long Methods, Complex Classes, and Large Classes. The most popular DL algorithms used are Recurrent Neural Networks (RNN) and Convolutional Neural Networks (CNN), often combined with other techniques for better results. Algorithms that train models on large datasets with fewer independent variables demonstrate exemplary performance. The paper also highlights open issues and provides guidelines for future metric identification and selection research.


Citations (67)


... RefGame [12] is a suite of three 2D games created to teach code refactoring. Games are single-player and have scoring as well as leaderboards. ...

Reference:

Triskelion—In Pursuit of Proficiency Through Immersive Gameplay
From Boring to Boarding: Transforming Refactoring Education with Game-Based Learning
  • Citing Conference Paper
  • August 2024

... In [28], DRMiner has been introduced for identifying and analyzing Dockerfile refactorings, providing semantics-aware static analysis. Although this tool indicates future potential for automated Dockerfile refactoring, to the best of our knowledge, no tool currently achieves full automation. ...

DRMiner: A Tool For Identifying And Analyzing Refactorings In Dockerfile
  • Citing Conference Paper
  • July 2024

... More specifically, they mined all bugs reported in seven public software repositories within those platforms and identified 2,567 accessibility-related bugs. Similarly, Aljedaani et al [11] investigated how organizations handle accessibility bugs reported on the repository of the mobile version of Chromium, an open-source browser project. They found 2,157 accessibility bug reports considering the mobile app of both iOS and Android platforms. ...

Empirical Investigation of Accessibility Bug Reports in Mobile Platforms: A Chromium Case Study

... Table 1 presents the server specification in the experiments. In order to retrieve information about server resources, Prometheus was used with Node Exporter as its key component [30,31]. Node Exporter collects data on various server resources, including CPU usage, memory, and disk and network activity. ...

Deployment and performance monitoring of docker based federated learning framework for software defect prediction

Cluster Computing

... In the same context, deep learning is also used to detect code vulnerability [89,90]-Technical depth and code smell detection Machine learning has recently been often used to detect self-admitted technical depth [91][92][93] or technical debt in general [94,95]. Technical debt is closely linked to code smells and anti-patterns, which are spotted [96,97], classified [98,99], or identified [100]with artificial intelligence techniques. ...

Examining deep learning’s capability to spot code smells: a systematic literature review

Cluster Computing

... We have installed extensions of tools used in this study on the docker desktop and then the created docker image is scanned to detect security vulnerabilities. Table 3 lists the features of container scanning tools used [49]. ...

Vulnerability Analysis of Docker Hub Official Images and Verified Images
  • Citing Conference Paper
  • July 2023

... [11,28,29]. The conclusion has been that machine learning and data modeling can complement and help each other [30] even to the point of defining systems that can auto-configure and optimize themselves [31]. The attention around this topic is increasing to the point that a new research area identified with the CMAI acronym (Conceptual Model and Artificial Intelligence) recently started to be developed [32]. ...

Leveraging Artificial Intelligence for Model-based Software Analysis and Design
  • Citing Chapter
  • July 2023

Natural Computing Series

... They found 2,157 accessibility bug reports considering the mobile app of both iOS and Android platforms. A similar study of Aljedaani et al [6] analyzed the reviews to extract accessibility issues on the Blackboard mobile app. ...

The State of Accessibility in Blackboard: Survey and User Reviews Case Study

... They determined the optimal strategy using a profit function, and concluded that their approach successfully eliminates cyclic dependencies between packages. Ferreira et al. (2023) claimed that the orderings of recommended refactoring is difficult for developers to understand. They proposed an algorithm for detecting these dependencies among refactoring operations and defined refactoring recommendations as sets of refactoring graphs instead of sequences. ...

Dependent or Not: Detecting and Understanding Collections of Refactorings
  • Citing Article
  • June 2023

IEEE Transactions on Software Engineering

... Code refactoring is the process of improving the internal structure of a program without affecting its observable behaviour [1]. Admittedly, one of the main challenges of refactoring is correctness [2,3] as "refactoring might not always be behaviour-preserving in practice" [4]. Most refactoring tools lack a precise specification of how they affect the code, are only verified via testing, and in peculiar circumstances they can introduce bugs. ...

Industry experiences with large-scale refactoring
  • Citing Conference Paper
  • November 2022