1

M-perm: A lightweight detector for android permission gaps

Android apps operate under a permissions-based system where access to specific APIs are restricted through the use of permissions. Unfortunately, there is no built-in verification system to ensure that apps do not request too many or too few …

On the Use of Smelly Examples to Detect Code Smells in JavaScript

JavaScript has become one of the widely-used languages. However, as the size of JavaScript-based applications grows, the number of defects grows as well. Recent studies have produced a set of manually defined rules to identify these defects. We …

P-lint: a permission smell detector for android applications

—Android is built upon a permission-based structure, where apps require access to specific permissions in order to carry out specific functionalities. While Android has provided a set of best practices intended to aid the developer in properly …

PLAIN: PLugin for predicting the usAbility of Mobile User INterface.

Who added that permission to my app? an analysis of developer permission changes in open source android apps

Android applications rely on a permission-based model to carry out core functionality. Appropriate permission usage is imperative for ensuring device security and protecting the user’s desired privacy levels. But who is making the important decisions …

Interactive code smells detection: An initial investigation

In this paper, we introduced a novel technique to generate more user-oriented detection rules by taking into account their feedback. Our techniques initially generate a set of detection rules that will be used to detect candidate code smells, these …

Recommending relevant classes for bug reports using multi-objective search

Developers may follow a tedious process to find the cause of a bug based on code reviews and reproducing the abnormal behavior. In this paper, we propose an automated approach to finding and ranking potential classes with the respect to the …

A robust multi-objective approach for software refactoring under uncertainty

Refactoring large systems involves several sources of uncertainty related to the severity levels of code smells to be corrected and the importance of the classes in which the smells are located. Due to the dynamic nature of software development, …

High dimensional search-based software engineering: finding tradeoffs among 15 objectives for automating software refactoring using NSGA-III

There is a growing need for scalable search-based software engineering approaches that address software engineering problems where a large number of objectives are to be optimized. Software refactoring is one of these problems where a refactoring …

Recommendation system for software refactoring using innovization and interactive dynamic optimization

We propose a novel recommendation tool for software refactoring that dynamically adapts and suggests refactorings to developers interactively based on their feedback and introduced code changes. Our approach starts by finding upfront a set of …