The Experts below are selected from a list of 6828 Experts worldwide ranked by ideXlab platform

Paramvir Singh - One of the best experts on this subject based on the ideXlab platform.

  • How does Object-Oriented Code Refactoring Influence Software Quality? Research Landscape and Challenges
    Journal of Systems and Software, 2019
    Co-Authors: Satnam Kaur, Paramvir Singh
    Abstract:

    Abstract Context Software Refactoring aims to improve software quality and developer productivity. Numerous empirical studies investigating the impact of Refactoring activities on software quality have been conducted over the last two decades. Objective This study aims to perform a comprehensive systematic mapping study of existing empirical studies on evaluation of the effect of object-oriented Code Refactoring activities on software quality attributes. Method We followed a multi-stage scrutinizing process to select 142 primary studies published till December 2017. The selected primary studies were further classified based on several aspects to answer the research questions defined for this work. In addition, we applied vote-counting approach to combine the empirical results and their analysis reported in primary studies. Results The findings indicate that studies conducted in academic settings found more positive impact of Refactoring on software quality than studies performed in industries. In general, Refactoring activities caused all quality attributes to improve or degrade except for cohesion, complexity, inheritance, fault-proneness and power consumption attributes. Furthermore, individual Refactoring activities have variable effects on most quality attributes explored in primary studies, indicating that Refactoring does not always improve all quality attributes. Conclusions This study points out several open issues which require further investigation, e.g., lack of industrial validation, lesser coverage of Refactoring activities, limited tool support, etc.

  • how do Code Refactoring activities impact software developers sentiments an empirical investigation into github commits
    Asia-Pacific Software Engineering Conference, 2017
    Co-Authors: Navdeep Singh, Paramvir Singh
    Abstract:

    Affective software engineering deals in exploring and understanding the developers' sentiments associated with specific software development tasks with the goal to unleash various task-to-sentiment relationships. This paper empirically investigates the impact of software Code Refactoring on the sentiments of developers in open source projects. We perform a comprehensive analysis of sentiments attached with 15 different Refactoring activities across the evolution of 60 open source Java projects through mining relevant commit messages. We investigate 3,171 Refactoring related commit messages (out of total 615,625 commit messages) representing 4,891 Refactoring instances. The study outcome shows that in general software developers express more negative sentiments than positive sentiments, while performing Refactoring tasks. It is also found that 5 out of 15 Refactoring activities are mainly responsible for this observed outcome.

Satnam Kaur - One of the best experts on this subject based on the ideXlab platform.

  • How does Object-Oriented Code Refactoring Influence Software Quality? Research Landscape and Challenges
    Journal of Systems and Software, 2019
    Co-Authors: Satnam Kaur, Paramvir Singh
    Abstract:

    Abstract Context Software Refactoring aims to improve software quality and developer productivity. Numerous empirical studies investigating the impact of Refactoring activities on software quality have been conducted over the last two decades. Objective This study aims to perform a comprehensive systematic mapping study of existing empirical studies on evaluation of the effect of object-oriented Code Refactoring activities on software quality attributes. Method We followed a multi-stage scrutinizing process to select 142 primary studies published till December 2017. The selected primary studies were further classified based on several aspects to answer the research questions defined for this work. In addition, we applied vote-counting approach to combine the empirical results and their analysis reported in primary studies. Results The findings indicate that studies conducted in academic settings found more positive impact of Refactoring on software quality than studies performed in industries. In general, Refactoring activities caused all quality attributes to improve or degrade except for cohesion, complexity, inheritance, fault-proneness and power consumption attributes. Furthermore, individual Refactoring activities have variable effects on most quality attributes explored in primary studies, indicating that Refactoring does not always improve all quality attributes. Conclusions This study points out several open issues which require further investigation, e.g., lack of industrial validation, lesser coverage of Refactoring activities, limited tool support, etc.

Jehad Al Dallal - One of the best experts on this subject based on the ideXlab platform.

  • empirical evaluation of the impact of object oriented Code Refactoring on quality attributes a systematic literature review
    IEEE Transactions on Software Engineering, 2018
    Co-Authors: Jehad Al Dallal, Anas Abdin
    Abstract:

    Software Refactoring is a maintenance task that addresses Code restructuring to improve its quality. Many studies have addressed the impact of different Refactoring scenarios on software quality. This study presents a systematic literature review that aggregates, summarizes, and discusses the results of 76 relevant primary studies (PSs) concerning the impact of Refactoring on several internal and external quality attributes. The included PSs were selected using inclusion and exclusion criteria applied to relevant articles published before the end of 2015. We analyzed the PSs based on a set of classification criteria, including software quality attributes and measures, Refactoring scenarios, evaluation approaches, datasets, and impact results. We followed the vote-counting approach to determine the level of consistency among the PS reported results concerning the relationship between Refactoring and software quality. The results indicated that different Refactoring scenarios sometimes have opposite impacts on different quality attributes. Therefore, it is false that Refactoring always improves all software quality aspects. The vote-counting study provided a clear view of the impacts of some individual Refactoring scenarios on some internal quality attributes such as cohesion, coupling, complexity, inheritance, and size, but failed to identify their impacts on external and other internal quality attributes due to insufficient findings.

  • identifying Refactoring opportunities in object oriented Code a systematic literature review
    Information & Software Technology, 2015
    Co-Authors: Jehad Al Dallal
    Abstract:

    Abstract Context Identifying Refactoring opportunities in object-oriented Code is an important stage that precedes the actual Refactoring process. Several techniques have been proposed in the literature to identify opportunities for various Refactoring activities. Objective This paper provides a systematic literature review of existing studies identifying opportunities for Code Refactoring activities. Method We performed an automatic search of the relevant digital libraries for potentially relevant studies published through the end of 2013, performed pilot and author-based searches, and selected 47 primary studies (PSs) based on inclusion and exclusion criteria. The PSs were analyzed based on a number of criteria, including the Refactoring activities, the approaches to Refactoring opportunity identification, the empirical evaluation approaches, and the data sets used. Results The results indicate that research in the area of identifying Refactoring opportunities is highly active. Most of the studies have been performed by academic researchers using nonindustrial data sets. Extract Class and Move Method were found to be the most frequently considered Refactoring activities. The results show that researchers use six primary existing approaches to identify Refactoring opportunities and six approaches to empirically evaluate the identification techniques. Most of the systems used in the evaluation process were open-source, which helps to make the studies repeatable. However, a relatively high percentage of the data sets used in the empirical evaluations were small, which limits the generality of the results. Conclusions It would be beneficial to perform further studies that consider more Refactoring activities, involve researchers from industry, and use large-scale and industrial-based systems.

Fanqi Meng - One of the best experts on this subject based on the ideXlab platform.

  • wcet optimization strategy based on source Code Refactoring
    Cluster Computing, 2019
    Co-Authors: Fanqi Meng
    Abstract:

    For safety-critical real-time software, if worst-case execution time (WCET) violates a time constraint, it is considered having a timeliness defect. To fix the defect early with lower cost, a WCET optimization strategy is proposed based on source Code Refactoring. The strategy guides programmers to search Refactoring opportunities in the correct positions and perform Refactorings by a reasonable sequence. To this end, the worst-case execution path (WCEP) of a target program is firstly extracted from its control flow graph. Then the WCEP is mapped onto source Code by the back-annotation technique. An abstract syntax tree-based invariant path identification algorithm is developed for recognizing the invariant paths from the source-level WCEP. According to the invariant paths and loop statements, the source Code is divided into four optimization regions with different priorities. Thus the searching scopes are reduced, and invalid Refactorings are avoided. On the basis, the Refactoring which has the lowest cost in the same region is performed first. To support the strategy, a cost model of source Code Refactoring is designed. It mainly considers adverse effects of Refactorings on the maintainability of source Code. The experimental results showed that the optimization strategy reduced WCET effectively and maximally kept the maintainability. Therefore it is more suitable for WCET optimization in an early programming phase. It is helpful to fix the defects early and then guarantee the timeliness safety of the software.

Sangho Lee - One of the best experts on this subject based on the ideXlab platform.

  • Code Refactoring techniques for reducing energy consumption in embedded computing environment
    Cluster Computing, 2018
    Co-Authors: Doohwan Kim, Jangeui Hong, Ilchul Yoon, Sangho Lee
    Abstract:

    Code Refactoring is the process of restructuring existing computer Code without changing its external behavior to enhance reusability and maintainability of software components through improving nonfunctional attributes of the software. However, when we refactor source Codes using existing Refactoring techniques, those techniques do not consider energy consumption as one of the nonfunctional attributes. Reducing energy consumption is one of the important factors to develop embedded and/or mobile software because it is difficult to provide sustainable services based on limited power resources. This paper suggests new Refactoring techniques for reducing energy consumption to support the restructuring of existing source Codes. Especially we define energy-consuming constructs as suspicious Codes that are predicted to consume a lot of energy, and then develop the techniques to remove these constructs. Our techniques can improve the performance as well as the energy efficiency of legacy Codes.

  • investigation for software power consumption of Code Refactoring techniques
    Software Engineering and Knowledge Engineering, 2014
    Co-Authors: Jae Jin Park, Jangeui Hong, Sangho Lee
    Abstract:

    Code Refactoring technique focuses on enhancing the maintainability of software to extend its lifetime. However, there are other efforts to improve software qualities like performance or reliability as well as maintainability by using Code Refactoring techniques. Recently, as low-power software has become one of the critical issues in mobile environments, developing energyefficient software through Code Refactoring becomes an important one. This paper aims to investigate whether the existing Refactoring techniques can support energy-efficient software generation or not. The refactored Codes generated by the existing techniques can consume more power than original Codes because they did not consider the power consumption in their Refactoring processes. This paper analyzes the power consumption to investigate the energy efficiency of M. Fowler’s Refactoring techniques. Our analysis result can provide useful information about energy-efficient Refactoring techniques to software engineers, and support the development of software that has high maintainability and good energy efficiency.