69 citations · 187 across the 22 of their papers we have counts for
26 papers
ChatGPT for Code Refactoring: Analyzing Topics, Interaction, and Effective Prompts
Eman Abdullah AlOmar, Luo Xu, Sofia Martinez +4
Large Language Models (LLMs), such as ChatGPT, have become widely popular and widely used in various software engineering tasks such as refactoring, testing, code review, and progr…
On the Structure and Semantics of Identifier Names Containing Closed Syntactic Category Words
Christian D. Newman, Anthony Peruma, Eman Abdullah AlOmar +8
Identifier names are crucial components of code, serving as primary clues for developers to understand program behavior. This paper investigates the linguistic structure of identif…
SCALAR: A Part-of-speech Tagger for Identifiers
Christian D. Newman, Brandon Scholten, Sophia Testa +10
The paper presents the Source Code Analysis and Lexical Annotation Runtime (SCALAR), a tool specialized for mapping (annotating) source code identifier names to their corresponding…
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…
Insights from the Field: Exploring Students' Perspectives on Bad Unit Testing Practices
Anthony Peruma, Eman Abdullah AlOmar, Wajdi Aljedaani +2
Educating students about software testing practices is integral to the curricula of many computer science-related courses and typically involves students writing unit tests. Simila…
How to Refactor this Code? An Exploratory Study on Developer-ChatGPT Refactoring Conversations
Eman Abdullah AlOmar, Anushkrishna Venkatakrishnan, Mohamed Wiem Mkaouer +2
Large Language Models (LLMs), like ChatGPT, have gained widespread popularity and usage in various software engineering tasks, including refactoring, testing, code review, and prog…
How is Software Reuse Discussed in Stack Overflow?
Eman Abdullah AlOmara, Anthony Peruma, Mohamed Wiem Mkaouer +2
Software reuse is a crucial external quality attribute targeted by open-source and commercial projects. Despite that software reuse has experienced an increased adoption throughout…
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…
Rename Chains: An Exploratory Study on the Occurrence and Characteristics of Identifiers Undergoing Multiple Renamings
Anthony Peruma, Christian D. Newman
Identifier names play a significant role in program comprehension activities, with high-quality names improving developer productivity and system quality. To correct poor-quality n…
An Exploratory Study on Refactoring Documentation in Issues Handling
Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer +2
Understanding the practice of refactoring documentation is of paramount importance in academia and industry. Issue tracking systems are used by most software projects enabling deve…
Understanding Digits in Identifier Names: An Exploratory Study
Anthony Peruma, Christian D. Newman
Before any software maintenance can occur, developers must read the identifier names found in the code to be maintained. Thus, high-quality identifier names are essential for produ…
Refactoring Debt: Myth or Reality? An Exploratory Study on the Relationship Between Technical Debt and Refactoring
Anthony Peruma, Eman Abdullah AlOmar, Christian D. Newman +2
To meet project timelines or budget constraints, developers intentionally deviate from writing optimal code to feasible code in what is known as incurring Technical Debt (TD). Furt…
On the Documentation of Refactoring Types
Eman Abdullah AlOmar, Jiaqian Liu, Kenneth Addo +4
Commit messages are the atomic level of software documentation. They provide a natural language description of the code change and its purpose. Messages are critical for software m…
Refactoring for Reuse: An Empirical Study
Eman Abdullah AlOmar, Tianjia Wang, Vaibhavi Raut +3
Refactoring is the de-facto practice to optimize software health. While several studies propose refactoring strategies to optimize software design through applying design patterns…
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics in Stack Overflow
Anthony Peruma, Steven Simmons, Eman Abdullah AlOmar +3
An essential part of software maintenance and evolution, refactoring is performed by developers, regardless of technology or domain, to improve the internal quality of the system,…
Behind the Scenes: On the Relationship Between Developer Experience and Refactoring
Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer +2
Refactoring is widely recognized as one of the efficient techniques to manage technical debt and maintain a healthy software project through enforcing best design practices or copi…
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…
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…
IDEAL: An Open-Source Identifier Name Appraisal Tool
Anthony Peruma, Venera Arnaoudova, Christian D. Newman
Developers must comprehend the code they will maintain, meaning that the code must be legible and reasonably self-descriptive. Unfortunately, there is still a lack of research and…
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.…
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…
On the Distribution of "Simple Stupid Bugs" in Unit Test Files: An Exploratory Study
Anthony Peruma, Christian D. Newman
A key aspect of ensuring the quality of a software system is the practice of unit testing. Through unit tests, developers verify the correctness of production source code, thereby…
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…
On the Naming of Methods: A Survey of Professional Developers
Reem S. AlSuhaibani, Christian D. Newman, Michael J. Decker +2
This paper describes the results of a large (+1100 responses) survey of professional software developers concerning standards for naming source code methods. The various standards…