activity
20192024
most citedMany-Objective Software Remodularization using NSGA-III

266 citations · 415 across the 20 of their papers we have counts for

collaborators

22 papers

cs.SE2024

On the Rationale and Use of Assertion Messages in Test Code: Insights from Software Practitioners

Anthony Peruma, Taryn Takebayashi, Rocky Huang +4

Unit testing is an important practice that helps ensure the quality of a software system by validating its behavior through a series of test cases. Core to these test cases are ass…

cs.SE2023★ 1 cited

Do the Test Smells Assertion Roulette and Eager Test Impact Students' Troubleshooting and Debugging Capabilities?

Wajdi Aljedaani, Mohamed Wiem Mkaouer, Anthony Peruma +1

To ensure the quality of a software system, developers perform an activity known as unit testing, where they write code (known as test cases) that verifies the individual software…

cs.SE2023

An Exploratory Study on the Usage and Readability of Messages Within Assertion Methods of Test Cases

Taryn Takebayashi, Anthony Peruma, Mohamed Wiem Mkaouer +1

Unit testing is a vital part of the software development process and involves developers writing code to verify or assert production code. Furthermore, to help comprehend the test…

cs.SE2023

On the Use of Static Analysis to Engage Students with Software Quality Improvement: An Experience with PMD

Eman Abdullah AlOmar, Salma Abdullah AlOmar, Mohamed Wiem Mkaouer

Static analysis tools are frequently used to scan the source code and detect deviations from the project coding guidelines. Given their importance, linters are often introduced to…

cs.SE2022

Finding the Needle in a Haystack: On the Automatic Identification of Accessibility User Reviews

Eman Abdullah AlOmar, Wajdi Aljedaani, Murtaza Tamjeed +2

In recent years, mobile accessibility has become an important trend with the goal of allowing all users the possibility of using any app without many limitations. User reviews incl…

cs.SE2021★ 18 cited

An Ensemble Approach for Annotating Source Code Identifiers with Part-of-speech Tags

Christian D. Newman, Michael J. Decker, Reem S. AlSuhaibani +7

This paper presents an ensemble part-of-speech tagging approach for source code identifiers. Ensemble tagging is a technique that uses machine-learning and the output from multiple…

cs.SE2021

On Preserving the Behavior in Software Refactoring: A Systematic Mapping Study

Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Christian Newman +1

Context: Refactoring is the art of modifying the design of a system without altering its behavior. The idea is to reorganize variables, classes and methods to facilitate their futu…

cs.SE2021

One Thousand and One Stories: A Large-Scale Survey of Software Refactoring

Yaroslav Golubev, Zarina Kurbatova, Eman Abdullah AlOmar +2

Despite the availability of refactoring as a feature in popular IDEs, recent studies revealed that developers are reluctant to use them, and still prefer the manual refactoring of…

cs.SE2021

SATDBailiff- Mining and Tracking Self-Admitted Technical Debt

Eman Abdullah AlOmar, Ben Christians, Mihal Busho +4

Self-Admitted Technical Debt (SATD) is a metaphorical concept to describe the self-documented addition of technical debt to a software project in the form of source code comments.…

cs.SE2021★ 4 cited

Test Smell Detection Tools: A Systematic Mapping Study

Wajdi Aljedaani, Anthony Peruma, Ahmed Aljohani +6

Test smells are defined as sub-optimal design choices developers make when implementing test cases. Hence, similar to code smells, the research community has produced numerous test…

cs.SE2021

Using Grammar Patterns to Interpret Test Method Name Evolution

Anthony Peruma, Emily Hu, Jiajun Chen +3

It is good practice to name test methods such that they are comprehensible to developers; they must be written in such a way that their purpose and functionality are clear to those…

cs.SE2021

Refactoring Practices in the Context of Modern Code Review: An Industrial Case Study at Xerox

Eman Abdullah AlOmar, Hussein AlRubaye, Mohamed Wiem Mkaouer +2

Modern code review is a common and essential practice employed in both industrial and open-source projects to improve software quality, share knowledge, and ensure conformance with…

cs.SE2020★ 61 cited

How We Refactor and How We Document it? On the Use of Supervised Machine Learning Algorithms to Classify Refactoring Documentation

Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer +3

Refactoring is the art of improving the design of a system without altering its external behavior. Refactoring has become a well established and disciplined software engineering pr…

cs.NE2020

An Experimental Study of Weight Initialization and Weight Inheritance Effects on Neuroevolution

Zimeng Lyu, AbdElRahman ElSaid, Joshua Karns +2

Weight initialization is critical in being able to successfully train artificial neural networks (ANNs), and even more so for recurrent neural networks (RNNs) which can easily suff…

cs.SE2020

Toward the Automatic Classification of Self-Affirmed Refactoring

Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni

The concept of Self-Affirmed Refactoring (SAR) was introduced to explore how developers document their refactoring activities in commit messages, i.e., developers' explicit documen…

cs.SE2020★ 33 cited

On the Generation, Structure, and Semantics of Grammar Patterns in Source Code Identifiers

Christian D. Newman, Reem S. AlSuhaibani, Michael J. Decker +4

Identifiers make up a majority of the text in code. They are one of the most basic mediums through which developers describe the code they create and understand the code that other…

cs.SE2020★ 266 cited

Many-Objective Software Remodularization using NSGA-III

Mohamed Wiem Mkaouer, Marouane Kessentini, Adnan Shaout +4

Software systems nowadays are complex and difficult to maintain due to continuous changes and bad design choices. To handle the complexity of systems, software products are, in gen…

cs.SE2019

MigrationMiner: An Automated Detection Tool of Third-Party Java Library Migration at the Method Level

Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni

In this paper we introduce, MigrationMiner, an automated tool that detects code migrations performed between Java third-party library. Given a list of open source projects, the too…

cs.SE2019★ 22 cited

Do Design Metrics Capture Developers Perception of Quality? An Empirical Study on Self-Affirmed Refactoring Activities

Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni +1

Background. Refactoring is a critical task in software maintenance and is generally performed to enforce the best design and implementation practices or to cope with design defects…

cs.IR2019

Learning to Recommend Third-Party Library Migration Opportunities at the API Level

Hussein Alrubaye, Mohamed Wiem Mkaouer, Igor Khokhlov +3

The manual migration between different third-party libraries represents a challenge for software developers. Developers typically need to explore both libraries Application Program…

cs.SE2019

On the Use of Information Retrieval to Automate the Detection of Third-Party Java Library Migration at the Method Level

Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni

The migration process between different third-party libraries is hard, complex and error-prone. Typically, during a library migration, developers need to find methods in the new li…

cs.CY2019★ 10 cited

Comparison of block-based and hybrid-based environments in transferring programming skills to text-based environments

Hussein Alrubaye, Stephanie Ludi, Mohamed Wiem Mkaouer

Teachers face several challenges when presenting the fundamental concepts of programming in the classroom. Several tools are introduced to give a visual dimension to support the le…