Suggested Refactoring

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

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

Marouane Kessentini - One of the best experts on this subject based on the ideXlab platform.

  • A robust multi-objective approach to balance severity and importance of Refactoring opportunities
    Empirical Software Engineering, 2017
    Co-Authors: Mohamed Wiem Mkaouer, Marouane Kessentini, Mel Ó Cinnéide, Shinpei Hayashi, Kalyanmoy Deb
    Abstract:

    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. Both severity and importance of identified Refactoring opportunities (e.g. code smells) are difficult to estimate. In fact, due to the dynamic nature of software development, these values cannot be accurately determined in practice, leading to Refactoring sequences that lack robustness. In addition, some code fragments can contain severe quality issues but they are not playing an important role in the system. To address this problem, we introduced a multi-objective robust model, based on NSGA-II, for the software Refactoring problem that tries to find the best trade-off between three objectives to maximize: quality improvements, severity and importance of Refactoring opportunities to be fixed. We evaluated our approach using 8 open source systems and one industrial project, and demonstrated that it is significantly better than state-of-the-art Refactoring approaches in terms of robustness in all the experiments based on a variety of real-world scenarios. Our Suggested Refactoring solutions were found to be comparable in terms of quality to those Suggested by existing approaches, better prioritization of Refactoring opportunities and to carry an acceptable robustness price.

  • recommendation system for software Refactoring using innovization and interactive dynamic optimization
    Automated Software Engineering, 2014
    Co-Authors: Mohamed Wiem Mkaouer, Marouane Kessentini, Slim Bechikh, Kalyanmoy Deb, Mel Ó Cinnéide
    Abstract:

    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 non-dominated Refactoring solutions using NSGA-II to improve software quality, reduce the number of Refactorings and increase semantic coherence. The generated non-dominated Refactoring solutions are analyzed using our innovization component to extract some interesting common features between them. Based on this analysis, the Suggested Refactorings are ranked and Suggested to the developer one by one. The developer can approve, modify or reject each Suggested Refactoring, and this feedback is used to update the ranking of the Suggested Refactorings. After a number of introduced code changes, a local search is performed to update and adapt the set of Refactoring solutions Suggested by NSGA-II. We evaluated this tool on four large open source systems and one industrial project provided by our partner. Statistical analysis of our experiments over 31 runs shows that the dynamic Refactoring approach performed significantly better than three other search-based Refactoring techniques, manual Refactorings, and one Refactoring tool not based on heuristic search.

  • on the use of machine learning and search based software engineering for ill defined fitness function a case study on software Refactoring
    Symposium on Search Based Software Engineering, 2014
    Co-Authors: Boukhdhir Amal, Marouane Kessentini, Slim Bechikh, Lamjed Ben Said
    Abstract:

    The most challenging step when adapting a search-based technique for a software engineering problem is the definition of the fitness function. For several software engineering problems, a fitness function is ill-defined, subjective, or difficult to quantify. For example, the evaluation of a software design is subjective. This paper introduces the use of a neural network-based fitness function for the problem of software Refactoring. The software engineers evaluate manually the Suggested Refactoring solutions by a Genetic Algorithm (GA) for few iterations then an Artificial Neural Network (ANN) uses these training examples to evaluate the Refactoring solutions for the remaining iterations. We evaluate the efficiency of our approach using six different open-source systems through an empirical study and compare the performance of our technique with several existing Refactoring studies.

Kalyanmoy Deb - One of the best experts on this subject based on the ideXlab platform.

  • A robust multi-objective approach to balance severity and importance of Refactoring opportunities
    Empirical Software Engineering, 2017
    Co-Authors: Mohamed Wiem Mkaouer, Marouane Kessentini, Mel Ó Cinnéide, Shinpei Hayashi, Kalyanmoy Deb
    Abstract:

    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. Both severity and importance of identified Refactoring opportunities (e.g. code smells) are difficult to estimate. In fact, due to the dynamic nature of software development, these values cannot be accurately determined in practice, leading to Refactoring sequences that lack robustness. In addition, some code fragments can contain severe quality issues but they are not playing an important role in the system. To address this problem, we introduced a multi-objective robust model, based on NSGA-II, for the software Refactoring problem that tries to find the best trade-off between three objectives to maximize: quality improvements, severity and importance of Refactoring opportunities to be fixed. We evaluated our approach using 8 open source systems and one industrial project, and demonstrated that it is significantly better than state-of-the-art Refactoring approaches in terms of robustness in all the experiments based on a variety of real-world scenarios. Our Suggested Refactoring solutions were found to be comparable in terms of quality to those Suggested by existing approaches, better prioritization of Refactoring opportunities and to carry an acceptable robustness price.

  • recommendation system for software Refactoring using innovization and interactive dynamic optimization
    Automated Software Engineering, 2014
    Co-Authors: Mohamed Wiem Mkaouer, Marouane Kessentini, Slim Bechikh, Kalyanmoy Deb, Mel Ó Cinnéide
    Abstract:

    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 non-dominated Refactoring solutions using NSGA-II to improve software quality, reduce the number of Refactorings and increase semantic coherence. The generated non-dominated Refactoring solutions are analyzed using our innovization component to extract some interesting common features between them. Based on this analysis, the Suggested Refactorings are ranked and Suggested to the developer one by one. The developer can approve, modify or reject each Suggested Refactoring, and this feedback is used to update the ranking of the Suggested Refactorings. After a number of introduced code changes, a local search is performed to update and adapt the set of Refactoring solutions Suggested by NSGA-II. We evaluated this tool on four large open source systems and one industrial project provided by our partner. Statistical analysis of our experiments over 31 runs shows that the dynamic Refactoring approach performed significantly better than three other search-based Refactoring techniques, manual Refactorings, and one Refactoring tool not based on heuristic search.

Mohamed Wiem Mkaouer - One of the best experts on this subject based on the ideXlab platform.

  • A robust multi-objective approach to balance severity and importance of Refactoring opportunities
    Empirical Software Engineering, 2017
    Co-Authors: Mohamed Wiem Mkaouer, Marouane Kessentini, Mel Ó Cinnéide, Shinpei Hayashi, Kalyanmoy Deb
    Abstract:

    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. Both severity and importance of identified Refactoring opportunities (e.g. code smells) are difficult to estimate. In fact, due to the dynamic nature of software development, these values cannot be accurately determined in practice, leading to Refactoring sequences that lack robustness. In addition, some code fragments can contain severe quality issues but they are not playing an important role in the system. To address this problem, we introduced a multi-objective robust model, based on NSGA-II, for the software Refactoring problem that tries to find the best trade-off between three objectives to maximize: quality improvements, severity and importance of Refactoring opportunities to be fixed. We evaluated our approach using 8 open source systems and one industrial project, and demonstrated that it is significantly better than state-of-the-art Refactoring approaches in terms of robustness in all the experiments based on a variety of real-world scenarios. Our Suggested Refactoring solutions were found to be comparable in terms of quality to those Suggested by existing approaches, better prioritization of Refactoring opportunities and to carry an acceptable robustness price.

  • recommendation system for software Refactoring using innovization and interactive dynamic optimization
    Automated Software Engineering, 2014
    Co-Authors: Mohamed Wiem Mkaouer, Marouane Kessentini, Slim Bechikh, Kalyanmoy Deb, Mel Ó Cinnéide
    Abstract:

    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 non-dominated Refactoring solutions using NSGA-II to improve software quality, reduce the number of Refactorings and increase semantic coherence. The generated non-dominated Refactoring solutions are analyzed using our innovization component to extract some interesting common features between them. Based on this analysis, the Suggested Refactorings are ranked and Suggested to the developer one by one. The developer can approve, modify or reject each Suggested Refactoring, and this feedback is used to update the ranking of the Suggested Refactorings. After a number of introduced code changes, a local search is performed to update and adapt the set of Refactoring solutions Suggested by NSGA-II. We evaluated this tool on four large open source systems and one industrial project provided by our partner. Statistical analysis of our experiments over 31 runs shows that the dynamic Refactoring approach performed significantly better than three other search-based Refactoring techniques, manual Refactorings, and one Refactoring tool not based on heuristic search.

Mel Ó Cinnéide - One of the best experts on this subject based on the ideXlab platform.

  • A robust multi-objective approach to balance severity and importance of Refactoring opportunities
    Empirical Software Engineering, 2017
    Co-Authors: Mohamed Wiem Mkaouer, Marouane Kessentini, Mel Ó Cinnéide, Shinpei Hayashi, Kalyanmoy Deb
    Abstract:

    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. Both severity and importance of identified Refactoring opportunities (e.g. code smells) are difficult to estimate. In fact, due to the dynamic nature of software development, these values cannot be accurately determined in practice, leading to Refactoring sequences that lack robustness. In addition, some code fragments can contain severe quality issues but they are not playing an important role in the system. To address this problem, we introduced a multi-objective robust model, based on NSGA-II, for the software Refactoring problem that tries to find the best trade-off between three objectives to maximize: quality improvements, severity and importance of Refactoring opportunities to be fixed. We evaluated our approach using 8 open source systems and one industrial project, and demonstrated that it is significantly better than state-of-the-art Refactoring approaches in terms of robustness in all the experiments based on a variety of real-world scenarios. Our Suggested Refactoring solutions were found to be comparable in terms of quality to those Suggested by existing approaches, better prioritization of Refactoring opportunities and to carry an acceptable robustness price.

  • recommendation system for software Refactoring using innovization and interactive dynamic optimization
    Automated Software Engineering, 2014
    Co-Authors: Mohamed Wiem Mkaouer, Marouane Kessentini, Slim Bechikh, Kalyanmoy Deb, Mel Ó Cinnéide
    Abstract:

    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 non-dominated Refactoring solutions using NSGA-II to improve software quality, reduce the number of Refactorings and increase semantic coherence. The generated non-dominated Refactoring solutions are analyzed using our innovization component to extract some interesting common features between them. Based on this analysis, the Suggested Refactorings are ranked and Suggested to the developer one by one. The developer can approve, modify or reject each Suggested Refactoring, and this feedback is used to update the ranking of the Suggested Refactorings. After a number of introduced code changes, a local search is performed to update and adapt the set of Refactoring solutions Suggested by NSGA-II. We evaluated this tool on four large open source systems and one industrial project provided by our partner. Statistical analysis of our experiments over 31 runs shows that the dynamic Refactoring approach performed significantly better than three other search-based Refactoring techniques, manual Refactorings, and one Refactoring tool not based on heuristic search.

Avgeriou Paris - One of the best experts on this subject based on the ideXlab platform.

  • Identifying Extract Method Refactoring Opportunities Based on Functional Relevance
    2017
    Co-Authors: Charalampidou Sofia, Ampatzoglou Apostolos, Chatzigeorgiou Alexander, Gkortzis Antonios, Avgeriou Paris
    Abstract:

    `Extract Method' is considered one of the most frequently applied and beneficial Refactorings, since the corresponding Long Method smell is among the most common and persistent ones. Although Long Method is conceptually related to the implementation of diverse functionalities within a method, until now, this relationship has not been utilized while identifying Refactoring opportunities. In this paper we introduce an approach (accompanied by a tool) that aims at identifying source code chunks that collaborate to provide a specific functionality, and propose their extraction as separate methods. The accuracy of the proposed approach has been empirically validated both in an industrial and an open-source setting. In the former case, the approach was capable of identifying functionally related statements within two industrial long methods (approx. 500 LoC each), with a recall rate of 93 percent. In the latter case, based on a comparative study on open-source data, our approach ranks better compared to two well-known techniques of the literature. To assist software engineers in the prioritization of the Suggested Refactoring opportunities the approach ranks them based on an estimate of their fitness for extraction. The provided ranking has been validated in both settings and proved to be strongly correlated with experts' opinion