Open Access. Powered by Scholars. Published by Universities.®

Software Engineering Commons

Open Access. Powered by Scholars. Published by Universities.®

Rochester Institute of Technology

Discipline
Keyword
Publication Year
Publication
Publication Type

Articles 1 - 29 of 29

Full-Text Articles in Software Engineering

The State Of Accessibility In Blackboard: Survey And User Reviews Case Study, Mohamed Wiem Mkaouer, Wajdi Aljedaani, Stephanie Ludi, Mohammed Alkahtani, Marcelo M. Eler, Marouane Kessentini, Ali Ouni Apr 2023

The State Of Accessibility In Blackboard: Survey And User Reviews Case Study, Mohamed Wiem Mkaouer, Wajdi Aljedaani, Stephanie Ludi, Mohammed Alkahtani, Marcelo M. Eler, Marouane Kessentini, Ali Ouni

Articles

Context: Nowadays, mobile applications (or apps) have become vital in our daily life, particularly within education. Many institutions increasingly rely on mobile apps to provide access to all their students. However, many education mobile apps remain inaccessible to users with disabilities who need to utilize accessibility features like talkback or screen reader features. Accessibility features have to be considered in mobile apps to foster equity and inclusion in the educational environment allowing to use of such apps without limitations. Gaps in the accessibility to educational systems persist.

Objective: In this paper, we focus on the accessibility of the Blackboard mobile …


An Exploratory Study On Refactoring Documentation In Issues Handling, Eman Abdullah Alomar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni May 2022

An Exploratory Study On Refactoring Documentation In Issues Handling, Eman Abdullah Alomar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni

Articles

Understanding the practice of refactoring documentation is of paramount importance in academia and industry. Issue tracking systems are used by most software projects enabling developers, quality assurance, managers, and users to submit feature requests and other tasks such as bug fixing and code review. Although recent studies explored how to document refactoring in commit messages, little is known about how developers describe their refactoring needs in issues. In this study, we aim at exploring developer-reported refactoring changes in issues to better understand what developers consider to be problematic in their code and how they handle it. Our approach relies on …


Code Review Practices For Refactoring Changes: An Empirical Study On Openstack, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Moatz Chouchen, Ali Ouni May 2022

Code Review Practices For Refactoring Changes: An Empirical Study On Openstack, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Moatz Chouchen, Ali Ouni

Articles

Modern code review is a widely used technique employed in both industrial and open-source projects to improve software quality, share knowledge, and ensure adherence to coding standards and guidelines. During code review, developers may discuss refactoring activities before merging code changes in the code base. To date, code review has been extensively studied to explore its general challenges, best practices and outcomes, and socio-technical aspects. However, little is known about how refactoring is being reviewed and what developers care about when they review refactored code. Hence, in this work, we present a quantitative and qualitative study to understand what are …


Real-Time Illumination Capture And Rendering On Mobile Devices, Snehal Padhye, James A. Ferwerda Apr 2022

Real-Time Illumination Capture And Rendering On Mobile Devices, Snehal Padhye, James A. Ferwerda

Frameless

We present our efforts to develop methods for rendering 3D objects on mobile devices using real-world dynamic illumination from the user’s environment. To achieve this, we use the front and back cameras on the mobile device to estimate the light distribution in the environment in real time. We then create a dynamic illumination map and render the object at interactive rates in a browser on the device using a web-based graphics API. This project achieves one of the goals of our related work on realistic visualization of virtual objects: to make virtual objects appear to be situated within the scene …


Use Of Ar To Bring Medical Simulation To Life, Zhenhua Yu, Richard L. Doolittle, Caroline J. Easton Apr 2022

Use Of Ar To Bring Medical Simulation To Life, Zhenhua Yu, Richard L. Doolittle, Caroline J. Easton

Frameless

Use of simulation facilities and equipment in medical training has become the fabric of curricula across nearly all professions, most notably medical school, nursing, and related medical sciences programs. The gold standard for simulators is SimMan3G, Laerdal Inc., which offers a static electronic mannequin that affords the opportunity to create disease states, signs/symptoms, and real physiological/vital sign data complemented by voice interactions between faculty (within the control room) and student. All sessions are videotaped and, through a 15-30 minute debriefing, students exchange thoughts and impressions with faculty and engage in a deep reflective learning experience. The other option for medical …


Warehouse And Logistics: Smart Picking With Vuzix Smart Glasses, Elise Hemink Apr 2022

Warehouse And Logistics: Smart Picking With Vuzix Smart Glasses, Elise Hemink

Frameless

Vuzix is an industry leader in augmented reality (AR) technology. We provide innovative products to an array of industries, a few being defense, security, enterprise, and consumers. Our AR technology provides a perfect balance of engagement in the digital and real worlds thanks to their innovative optics, AI apps and 5G capability.


Changeling Vr, Elouise Oyzon Apr 2022

Changeling Vr, Elouise Oyzon

Frameless

Changeling VR is an interactive virtual reality narrative game. As we progress through the game, each level is seen through the Point of View of a different character whose emotional core is expressed through different aesthetics, mechanics and interactions.


Jet Of Blood Vr: First Playable Demo, Elizabeth Goins, Andy Head, Mason Hayes Apr 2022

Jet Of Blood Vr: First Playable Demo, Elizabeth Goins, Andy Head, Mason Hayes

Frameless

A VR staging of Anonin Artaud’s 1925 surrealist play, Jet of Blood. The project experiments with virtual reality as a means to reimagine performance and frame the player, the audience, as actor. Ideas from Artaud’s philosophy such as the Theatre of Cruelty are incorporated along with spatial storytelling and game design. The project also seeks to expand accessibility to deaf and hard of hearing audiences through use of particle and text effects to visually express audio and sound.


The Studio X Karp Library Fellows: Peer-To-Peer Xr Learning & Engagement, Ayiana Crabtree, Muhammed El-Sayed, Nefle N. Oruç Apr 2022

The Studio X Karp Library Fellows: Peer-To-Peer Xr Learning & Engagement, Ayiana Crabtree, Muhammed El-Sayed, Nefle N. Oruç

Frameless

No abstract provided.


Creating A Virtual Reality Experience In Service To A Non-Profit Agency, Frank Deese, Susan Lakin, Isabelle Anderson Apr 2022

Creating A Virtual Reality Experience In Service To A Non-Profit Agency, Frank Deese, Susan Lakin, Isabelle Anderson

Frameless

In the summer of 2018, RIT Professors Susan Lakin and Frank Deese discussed with the principal officers of the Society for the Protection and Care of Children (SPCC) in Rochester how the new technology of Virtual Reality might be used to not only impart information to viewers, but generate empathy for those receiving services from the organization as well as those performing those services. Their ultimate goal was to create an experience that could be viewed with VR headsets at fundraising events and on a website using low-cost Google Cardboard.


Satdbailiff- Mining And Tracking Self-Admitted Technical Debt, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Ben Christians, Mihal Busho, Ahmed Hamad Alkhalid, Christian D. Newman Jan 2022

Satdbailiff- Mining And Tracking Self-Admitted Technical Debt, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Ben Christians, Mihal Busho, Ahmed Hamad Alkhalid, Christian D. Newman

Articles

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. SATD can linger in projects and degrade source-code quality, but it can also be more visible than unintentionally added or undocumented technical debt. Understanding the implications of adding SATD to a software project is important because developers can benefit from a better understanding of the quality trade-offs they are making. However, empirical studies, analyzing the survivability and removal of SATD comments, are challenged by potential code changes or SATD comment updates that may …


On The Documentation Of Refactoring Types, Eman Abdullah Alomar, Jiaqian Liu, Kenneth Addo, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni, Zhe Yu Dec 2021

On The Documentation Of Refactoring Types, Eman Abdullah Alomar, Jiaqian Liu, Kenneth Addo, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni, Zhe Yu

Articles

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 maintenance and program comprehension. Unlike documenting feature updates and bug fixes, little is known about how developers document their refactoring activities. Specifically, developers can perform multiple refactoring operations, including moving methods, extracting classes, renaming attributes, for various reasons, such as improving software quality, managing technical debt, and removing defects. Yet, there is no systematic study that analyzes the extent to which the documentation of refactoring accurately describes the refactoring operations performed at the …


On Preserving The Behavior In Software Refactoring: A Systematic Mapping Study, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni Dec 2021

On Preserving The Behavior In Software Refactoring: A Systematic Mapping Study, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni

Articles

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 future adaptations and comprehension. As the concept of behavior preservation is fundamental for refactoring, several studies, using formal verification, language transformation and dynamic analysis, have been proposed to monitor the execution of refactoring operations and their impact on the program semantics. However, there is no existing study that examines the available behavior preservation strategies for each refactoring operation.

Objective: This paper identifies behavior preservation approaches in the research literature. Method: We conduct, …


Behind The Scenes: On The Relationship Between Developer Experience And Refactoring, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Anthony Peruma, Christian D. Newman, Ali Ouni Oct 2021

Behind The Scenes: On The Relationship Between Developer Experience And Refactoring, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Anthony Peruma, Christian D. Newman, Ali Ouni

Articles

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 coping with design defects. Previous refactoring surveys have shown that code refactoring activities are mainly executed by developers who have sufficient knowledge of the system’s design, and disposing of leadership roles in their development teams. However, these surveys were mainly limited to specific projects and companies. In this paper, we explore the generalizability of the previous results by analyzing 800 open-source projects. We mine their refactoring activities, and we identify their corresponding contributors. Then, …


Aware: Eliminating Implicit Bias Using Ar, Shagun Bose, Emma Strauch Jul 2021

Aware: Eliminating Implicit Bias Using Ar, Shagun Bose, Emma Strauch

Frameless

Implicit Bias is something that happens to real people in real spaces all the time. But we can’t see it. Since, AR allows us to overlay virtual objects in real environments, we tried to leverage AR to make more salient the various ways in which people experience bias.


Mining And Managing Big Data Refactoring For Design Improvement: Are We There Yet?, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni May 2021

Mining And Managing Big Data Refactoring For Design Improvement: Are We There Yet?, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni

Articles

Refactoring is a set of code changes applied to improve the internal structure of a program, without altering its external behavior. With the rise of continuous integration and the awareness of the necessity of managing technical debt, refactoring has become even more popular in recent software builds. Recent studies indicate that developers often perform refactorings. If we consider all refactorings performed across all projects, this consists of the refactoring knowledge that represents a rich source of information that can be useful for both developers and practitioners to better understand how refactoring is being applied in practice. However, mining, processing, and …


Refactoring Practices In The Context Of Modern Code Review: An Industrial Case Study At Xerox, Eman Abdullah Alomar, Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni, Marouane Kessentini May 2021

Refactoring Practices In The Context Of Modern Code Review: An Industrial Case Study At Xerox, Eman Abdullah Alomar, Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni, Marouane Kessentini

Articles

Modern code review is a common and essential 2 practice employed in both industrial and open-source projects 3 to improve software quality, share knowledge, and ensure con4 formance with coding standards. During code review, developers 5 may inspect and discuss various changes including refactoring 6 activities before merging code changes in the code base. To date, 7 code review has been extensively studied to explore its general 8 challenges, best practices and outcomes, and socio-technical 9 aspects. However, little is known about how refactoring activities 10 are being reviewed, perceived, and practiced. 11 This study aims to reveal insights into …


Finding The Needle In A Haystack: On The Automatic Identification Of Accessibility User Reviews, Eman Abdullah Alomar, Wajdi Aljedaani, Murtaza Tamjeed, Mohamed Wiem Mkaouer, Yasime Elglaly May 2021

Finding The Needle In A Haystack: On The Automatic Identification Of Accessibility User Reviews, Eman Abdullah Alomar, Wajdi Aljedaani, Murtaza Tamjeed, Mohamed Wiem Mkaouer, Yasime Elglaly

Articles

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 include insights that are useful for app evolution. However, with the increase in the amount of received reviews, manually analyzing them is tedious and time-consuming, especially when searching for accessibility reviews. The goal of this paper is to support the automated identification of accessibility in user reviews, to help technology professionals in prioritizing their handling, and thus, creating more inclusive apps. Particularly, we design a model that takes as input accessibility user …


An Ensemble Approach For Annotating Source Code Identifiers With Part-Of-Speech Tags, Christian D. Newman,, Michael J. Decker, Reem S. Alsuhaibani, Anthony Peruma, Mohamed Wiem Mkaouer, Satyajit Mohapatra, Tejal Vishnoi, Marcos Zampieri, Timothy Sheldon, Emily Hill Jan 2021

An Ensemble Approach For Annotating Source Code Identifiers With Part-Of-Speech Tags, Christian D. Newman,, Michael J. Decker, Reem S. Alsuhaibani, Anthony Peruma, Mohamed Wiem Mkaouer, Satyajit Mohapatra, Tejal Vishnoi, Marcos Zampieri, Timothy Sheldon, Emily Hill

Articles

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 part-of-speech taggers to annotate natural language text at a higher quality than the part-of-speech taggers are able to obtain independently. Our ensemble uses three state-of-the-art part-of-speech taggers: SWUM, POSSE, and Stanford. We study the quality of the ensemble's annotations on five different types of identifier names: function, class, attribute, parameter, and declaration statement at the level of both individual words and full identifier names. We also study and discuss the weaknesses of our tagger to …


On The Generation, Structure, And Semantics Of Grammar Patterns In Source Code Identifiers, Christian D. Newman,, Reem S. Alsuhaibani, Michael J. Decker, Anthony Peruma, Dishant Kaushik, Mohamed Wiem Mkaouer, Emily Hill Dec 2020

On The Generation, Structure, And Semantics Of Grammar Patterns In Source Code Identifiers, Christian D. Newman,, Reem S. Alsuhaibani, Michael J. Decker, Anthony Peruma, Dishant Kaushik, Mohamed Wiem Mkaouer, Emily Hill

Articles

Identifier names are the atoms of program comprehension. Weak identifier names decrease developer productivity and degrade the performance of automated approaches that leverage identifier names in source code analysis; threatening many of the advantages which stand to be gained from advances in artificial intelligence and machine learning. Therefore, it is vital to support developers in naming and renaming identifiers. In this paper, we extend our prior work, which studies the primary method through which names evolve: rename refactorings. In our prior work, we contextualize rename changes by examining commit messages and other refactorings. In this extension, we further consider data …


Increasing The Trust In Refactoring Through Visualization, Alex Bogart, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni Jun 2020

Increasing The Trust In Refactoring Through Visualization, Alex Bogart, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni

Articles

In software development, maintaining good design is essential. The process of refactoring enables developers to improve this design during development without altering the program’s existing behavior. However, this process can be time-consuming, introduce semantic errors, and be difficult for developers inexperienced with refactoring or unfamiliar with a given code base. Automated refactoring tools can help not only by applying these changes, but by identifying opportunities for refactoring. Yet, developers have not been quick to adopt these tools due to a lack of trust between the developer and the tool. We propose an approach in the form of a visualization to …


On The Relationship Between Developer Experience And Refactoring: An Exploratory Study And Preliminary Results, Eman Abdullah Alomar, Anthony Peruma, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni Jun 2020

On The Relationship Between Developer Experience And Refactoring: An Exploratory Study And Preliminary Results, Eman Abdullah Alomar, Anthony Peruma, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni

Articles

Refactoring is one of the means of managing technical debt and maintaining a healthy software structure through enforcing best design practices, or coping with design defects. Previous refactoring surveys have shown that these code restructurings are mainly executed by developers who have sufficient knowledge of the system’s design, and disposing of leadership roles in their development teams. However, these surveys were mainly limited to specific projects and companies. In this paper, we explore the generalizability of the previous results though analyzing 800 open-source projects. We mine their refactoring activities, and we identify their corresponding contributors. Then, we associate an expertise …


An Exploratory Study On How Software Reuse Is Discussed In Stack Overflow, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Jiaqian Liu, Ali Ouni, Christian D. Newman, Diego Barinas May 2020

An Exploratory Study On How Software Reuse Is Discussed In Stack Overflow, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Jiaqian Liu, Ali Ouni, Christian D. Newman, Diego Barinas

Articles

Software reuse is an important and crucial quality attribute in modern software engineering, where almost all software projects, open source or commercial, no matter small or ultra-large, source code reuse in one way or another. Although software reuse has experienced an increased adoption throughout the years with the exponentially growing number of available third-party libraries, frameworks and APIs, little knowledge exists to investigate what aspects of code reuse developers discuss. In this study, we look into bridging this gap by examining Stack Overflow to understand the challenges developers encounter when trying to reuse code. Using the Stack Overflow tags “code-reuse” …


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, Christian D. Newman, Marouane Kessentini, Ali Ouni May 2020

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, Christian D. Newman, Marouane Kessentini, Ali Ouni

Articles

Refactoring is the art of improving the structural design of a software system without altering its external behavior. Today, refactoring has become a well-established and disciplined software engineering practice that has attracted a significant amount of research presuming that refactoring is primarily motivated by the need to improve system structures. However, recent studies have shown that developers may incorporate refactoring strategies in other development-related activities that go beyond improving the design especially with the emerging challenges in contemporary software engineering. Unfortunately, these studies are limited to developer interviews and a reduced set of projects. To cope with the above-mentioned limitations, …


Toward The Automatic Classification Of Self-Affirmed Refactoring, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Ali Ouni May 2020

Toward The Automatic Classification Of Self-Affirmed Refactoring, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Ali Ouni

Articles

The concept of Self-Affirmed Refactoring (SAR) was introduced to explore how developers document their refactoring activities in commit messages, i.e., developers explicit documentation of refactoring operations intentionally introduced during a code change. In our previous study, we have manually identified refactoring patterns and defined three main common quality improvement categories including internal quality attributes, external quality attributes, and code smells, by only considering refactoring-related commits. However, this approach heavily depends on the manual inspection of commit messages. In this paper, we propose a two-step approach to first identify whether a commit describes developer-related refactoring events, then to classify it according …


How Do Developers Refactor Code To Improve Code Reusability?, Eman Abdullah Alomar, Philip T. Rodriguez, Jordan Bowman, Tianjia Wang, Benjamin Adepoju, Kevin Lopez, Christian D. Newman, Ali Ouni, Mohamed Wiem Mkaouer May 2020

How Do Developers Refactor Code To Improve Code Reusability?, Eman Abdullah Alomar, Philip T. Rodriguez, Jordan Bowman, Tianjia Wang, Benjamin Adepoju, Kevin Lopez, Christian D. Newman, Ali Ouni, Mohamed Wiem Mkaouer

Articles

. Refactoring is the de-facto practice to optimize software health. While there has been several studies proposing refactoring strategies to optimize software design through applying design patterns and removing design defects, little is known about how developers actually refactor their code to improve its reuse. Therefore, we extract, from 1,828 open source projects, a set of refactorings which were intended to improve the software reusability. We analyze the impact of reusability refactorings on state-of-the-art reusability metrics, and we compare the distribution of reusability refactoring types, with the distribution of the remaining mainstream refactorings. Overall, we found that the distribution of …


Can Refactoring Be Self-Affirmed? An Exploratory Study On How Developers Document Their Refactoring Activities In Commit Messages, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni May 2019

Can Refactoring Be Self-Affirmed? An Exploratory Study On How Developers Document Their Refactoring Activities In Commit Messages, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni

Articles

Refactoring is a critical task in software maintenance and is usually performed to enforce best design practices, or to cope with design defects. Previous studies heavily rely on defining a set of keywords to identify refactoring commits from a list of general commits extracted from a small set of software
systems. All approaches thus far consider all commits without checking whether refactorings had actually happened or not. In this paper, we aim at exploring how developers document their refactoring activities during the software life cycle. We call such activity Self-Affirmed Refactoring, which is an indication of
the developer-related refactoring events …


On The Impact Of Refactoring On The Relationship Between Quality Attributes And Design Metrics, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Ali Ouni, Marouane Kessentini May 2019

On The Impact Of Refactoring On The Relationship Between Quality Attributes And Design Metrics, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Ali Ouni, Marouane Kessentini

Articles

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. Several studies attempted to detect refactoring activities through mining software repositories allowing to collect, analyze and get actionable data-driven insights about refactoring practices within software projects. Aim: We aim at identifying, among the various quality models presented in the literature, the ones that are more in-line with the developer’s vision of quality optimization, when they explicitly mention that they are refactoring to improve them. Method: We extract a large corpus of design-related refactoring activities …


Teaching Android Security Through Examples: A Publicly Available Database Of Vulnerable Apps, Daniel E. Krutz, Samuel A. Malachowsky Dec 2016

Teaching Android Security Through Examples: A Publicly Available Database Of Vulnerable Apps, Daniel E. Krutz, Samuel A. Malachowsky

Articles

Security is hard, and teaching security can be even harder. Here we describe a public educational activity to assist in the instruction of both students and developers in creating secure Android apps. Our set of activities includes example vulnerable applications, information about each vulnerability, steps on how to repair the vulnerabilities, and information about how to confirm that the vulnerability has been properly repaired. Our primary goal is to make these activities available to other instructors for use in their classrooms ranging from the K-12 to university settings. A secondary goal of this project is to foster interest in security …