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

Chanchal K. Roy - One of the best experts on this subject based on the ideXlab platform.

  • Conflict-aware Optimal Scheduling of Code Clone Refactoring
    2016
    Co-Authors: Minhaz F. Zibran, Chanchal K. Roy
    Abstract:

    Abstract—Duplicated code, also known as code clones, are one of the malicious ‘code smells ’ that often need to be removed through Refactoring for enhancing maintainability. Among all the Potential Refactoring opportunities, the choice and order of a set of Refactoring activities may have distinguishable effect on the design/code quality. Moreover, there may be dependencies and conflicts among those Refactorings. The organization may also impose priorities on certain Refactoring activities. Addressing all these conflicts, priorities, and dependencies, manual formulation of an optimal Refactoring schedule is very expensive, if not impossible. Therefore, an automated Refactoring scheduler is necessary, which will maximize benefit and minimize Refactoring effort. In this paper, we present a Refactoring effort model, and propose a constraint programming approach for conflict-aware optimal scheduling of code clone Refactoring. I

  • Conflict-aware optimal scheduling of prioritised code clone Refactoring
    IET Software, 2013
    Co-Authors: Minhaz F. Zibran, Chanchal K. Roy
    Abstract:

    Duplicated or similar source code, also known as code clones, are possible malicious 'code smells' that may need to be removed through Refactoring to enhance maintainability. Among many Potential Refactoring opportunities, the choice and order of a set of Refactoring activities may have distinguishable effect on the design/code quality measured in terms of software metrics. Moreover, there may be dependencies and conflicts among those Refactorings of different priorities. Addressing all the conflicts, priorities and dependencies, a manual formulation of an optimal Refactoring schedule is very expensive, if not impossible. Therefore an automated Refactoring scheduler is necessary to 'maximise benefit and minimise Refactoring effort'. However, the estimation of the efforts required to perform code clone Refactoring is a challenging task. This study makes two contributions. First, the authors propose an effort model for the estimation of code clone Refactoring efforts. Second, the authors propose a constraint programming (CP) approach for conflict-aware optimal scheduling of code clone Refactoring. A qualitative evaluation of the effort model from the developers' perspective suggests that the model is complete and useful for code clone Refactoring effort estimation. The authors also quantitatively compared their Refactoring scheduler with other wellknown scheduling techniques such as the genetic algorithm, greedy approaches and linear programming. The authors' empirical study suggests that the proposed CP-based approach outperforms other approaches they considered.

  • SCAM - A Constraint Programming Approach to Conflict-Aware Optimal Scheduling of Prioritized Code Clone Refactoring
    2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation, 2011
    Co-Authors: Minhaz F. Zibran, Chanchal K. Roy
    Abstract:

    Duplicated code, also known as code clones, are one of the malicious ‘code smells' that often need to be removed through Refactoring for enhancing maintainability. Among all the Potential Refactoring opportunities, the choice and order of a set of Refactoring activities may have distinguishable effect on the design/code quality. Moreover, there may be dependencies and conflicts among those Refactorings. The organization may also impose priorities on certain Refactoring activities. Addressing all these conflicts, priorities, and dependencies, manual formulation of an optimal Refactoring schedule is very expensive, if not impossible. Therefore, an automated Refactoring scheduler is necessary, which will maximize benefit and minimize Refactoring effort. In this paper, we present a Refactoring effort model, and propose a constraint programming approach for conflict-aware optimal scheduling of code clone Refactoring.

  • ICPC - Conflict-Aware Optimal Scheduling of Code Clone Refactoring: A Constraint Programming Approach
    2011 IEEE 19th International Conference on Program Comprehension, 2011
    Co-Authors: Minhaz F. Zibran, Chanchal K. Roy
    Abstract:

    Duplicated code, also known as code clones, are one of the malicious `code smells' that often need to be removed through Refactoring for enhancing maintainability. Among all the Potential Refactoring opportunities, the choice and order of a set of Refactoring activities may have distinguishable effect on the design/code quality. Moreover, there may be dependencies and conflicts among those Refactorings. The organization may also impose priorities on certain Refactoring activities. Addressing all these conflicts, priorities, and dependencies, manual formulation of an optimal Refactoring schedule is very expensive, if not impossible. Therefore, an automated Refactoring scheduler is necessary, which will maximize benefit and minimize Refactoring effort. In this paper, we present a Refactoring effort model, and propose a constraint programming approach for conflict-aware optimal scheduling of code clone Refactoring.

  • A constraint programming approach to conflict-aware optimal scheduling of prioritized code cloen Refactoring
    2011
    Co-Authors: Minhaz F. Zibran, Chanchal K. Roy
    Abstract:

    Abstract—Duplicated code, also known as code clones, are one of the malicious ‘code smells ’ that often need to be removed through Refactoring for enhancing maintainability. Among all the Potential Refactoring opportunities, the choice and order of a set of Refactoring activities may have distinguishable effect on the design/code quality. Moreover, there may be dependencies and conflicts among those Refactorings. The organization may also impose priorities on certain Refactoring activities. Addressing all these conflicts, priorities, and dependencies, manual formulation of an optimal Refactoring schedule is very expensive, if not impossible. Therefore, an automated Refactoring scheduler is necessary, which will maximize benefit and minimize Refactoring effort. In this paper, we present a Refactoring effort model, and propose a constraint programming approach for conflict-aware optimal scheduling of code clone Refactoring. I

Minhaz F. Zibran - One of the best experts on this subject based on the ideXlab platform.

  • Conflict-aware Optimal Scheduling of Code Clone Refactoring
    2016
    Co-Authors: Minhaz F. Zibran, Chanchal K. Roy
    Abstract:

    Abstract—Duplicated code, also known as code clones, are one of the malicious ‘code smells ’ that often need to be removed through Refactoring for enhancing maintainability. Among all the Potential Refactoring opportunities, the choice and order of a set of Refactoring activities may have distinguishable effect on the design/code quality. Moreover, there may be dependencies and conflicts among those Refactorings. The organization may also impose priorities on certain Refactoring activities. Addressing all these conflicts, priorities, and dependencies, manual formulation of an optimal Refactoring schedule is very expensive, if not impossible. Therefore, an automated Refactoring scheduler is necessary, which will maximize benefit and minimize Refactoring effort. In this paper, we present a Refactoring effort model, and propose a constraint programming approach for conflict-aware optimal scheduling of code clone Refactoring. I

  • Conflict-aware optimal scheduling of prioritised code clone Refactoring
    IET Software, 2013
    Co-Authors: Minhaz F. Zibran, Chanchal K. Roy
    Abstract:

    Duplicated or similar source code, also known as code clones, are possible malicious 'code smells' that may need to be removed through Refactoring to enhance maintainability. Among many Potential Refactoring opportunities, the choice and order of a set of Refactoring activities may have distinguishable effect on the design/code quality measured in terms of software metrics. Moreover, there may be dependencies and conflicts among those Refactorings of different priorities. Addressing all the conflicts, priorities and dependencies, a manual formulation of an optimal Refactoring schedule is very expensive, if not impossible. Therefore an automated Refactoring scheduler is necessary to 'maximise benefit and minimise Refactoring effort'. However, the estimation of the efforts required to perform code clone Refactoring is a challenging task. This study makes two contributions. First, the authors propose an effort model for the estimation of code clone Refactoring efforts. Second, the authors propose a constraint programming (CP) approach for conflict-aware optimal scheduling of code clone Refactoring. A qualitative evaluation of the effort model from the developers' perspective suggests that the model is complete and useful for code clone Refactoring effort estimation. The authors also quantitatively compared their Refactoring scheduler with other wellknown scheduling techniques such as the genetic algorithm, greedy approaches and linear programming. The authors' empirical study suggests that the proposed CP-based approach outperforms other approaches they considered.

  • SCAM - A Constraint Programming Approach to Conflict-Aware Optimal Scheduling of Prioritized Code Clone Refactoring
    2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation, 2011
    Co-Authors: Minhaz F. Zibran, Chanchal K. Roy
    Abstract:

    Duplicated code, also known as code clones, are one of the malicious ‘code smells' that often need to be removed through Refactoring for enhancing maintainability. Among all the Potential Refactoring opportunities, the choice and order of a set of Refactoring activities may have distinguishable effect on the design/code quality. Moreover, there may be dependencies and conflicts among those Refactorings. The organization may also impose priorities on certain Refactoring activities. Addressing all these conflicts, priorities, and dependencies, manual formulation of an optimal Refactoring schedule is very expensive, if not impossible. Therefore, an automated Refactoring scheduler is necessary, which will maximize benefit and minimize Refactoring effort. In this paper, we present a Refactoring effort model, and propose a constraint programming approach for conflict-aware optimal scheduling of code clone Refactoring.

  • ICPC - Conflict-Aware Optimal Scheduling of Code Clone Refactoring: A Constraint Programming Approach
    2011 IEEE 19th International Conference on Program Comprehension, 2011
    Co-Authors: Minhaz F. Zibran, Chanchal K. Roy
    Abstract:

    Duplicated code, also known as code clones, are one of the malicious `code smells' that often need to be removed through Refactoring for enhancing maintainability. Among all the Potential Refactoring opportunities, the choice and order of a set of Refactoring activities may have distinguishable effect on the design/code quality. Moreover, there may be dependencies and conflicts among those Refactorings. The organization may also impose priorities on certain Refactoring activities. Addressing all these conflicts, priorities, and dependencies, manual formulation of an optimal Refactoring schedule is very expensive, if not impossible. Therefore, an automated Refactoring scheduler is necessary, which will maximize benefit and minimize Refactoring effort. In this paper, we present a Refactoring effort model, and propose a constraint programming approach for conflict-aware optimal scheduling of code clone Refactoring.

  • A constraint programming approach to conflict-aware optimal scheduling of prioritized code cloen Refactoring
    2011
    Co-Authors: Minhaz F. Zibran, Chanchal K. Roy
    Abstract:

    Abstract—Duplicated code, also known as code clones, are one of the malicious ‘code smells ’ that often need to be removed through Refactoring for enhancing maintainability. Among all the Potential Refactoring opportunities, the choice and order of a set of Refactoring activities may have distinguishable effect on the design/code quality. Moreover, there may be dependencies and conflicts among those Refactorings. The organization may also impose priorities on certain Refactoring activities. Addressing all these conflicts, priorities, and dependencies, manual formulation of an optimal Refactoring schedule is very expensive, if not impossible. Therefore, an automated Refactoring scheduler is necessary, which will maximize benefit and minimize Refactoring effort. In this paper, we present a Refactoring effort model, and propose a constraint programming approach for conflict-aware optimal scheduling of code clone Refactoring. I

V. Krishna Nandivada - One of the best experts on this subject based on the ideXlab platform.

  • Identifying Refactoring opportunities for replacing type code with subclass and state
    Proceedings of the ACM on Programming Languages, 2018
    Co-Authors: Jyothi Vedurada, V. Krishna Nandivada
    Abstract:

    Refactoring is a program transformation that restructures existing code without altering its behaviour and is a key practice in popular software design movements, such as Agile. Identification of Potential Refactoring opportunities is an important step in the Refactoring process. In large systems, manual identification of useful Refactoring opportunities requires a lot of effort and time. Hence, there is a need for automatic identification of Refactoring opportunities. However, this problem has not been addressed well for many non-trivial Refactorings. Two such non-trivial, yet popular Refactorings are “Replace Type Code with Subclass” (SC) and “Replace Type Code with State” (ST) Refactorings. In this paper, we present new approaches to identify SC and ST Refactoring opportunities. Our proposed approach is based around the notion of control-fields. A control-field is a field of a class that exposes the different underlying behaviors of the class. Each control-field can lead to a possible SC/ST Refactoring of the associated/interacting classes. We first present a formal definition of control-fields and then present algorithms to identify and prune them; each of these pruned control-fields represents a Refactoring opportunity. Further, we present a novel flow- and context-sensitive analysis to classify each of these Refactoring opportunities into one of the SC and ST opportunities. We have implemented our proposed approach in a tool called Auto-SCST, and demonstrated its effectiveness by evaluating it against eight open-source Java applications.

  • ICSE (Companion Volume) - Refactoring opportunities for replacing type code with state and subclass
    2017 IEEE ACM 39th International Conference on Software Engineering Companion (ICSE-C), 2017
    Co-Authors: Jyothi Vedurada, V. Krishna Nandivada
    Abstract:

    Refactoring restructures a program to improve its readability and maintainability, without changing its original behavior. One of the key steps in Refactoring is the identification of Potential Refactoring opportunities. In this paper, we discuss the relevance of two popular Refactorings "Replace Type Code with Subclass" and "Replace Type Code with State" in real world Java applications and describe some of the challenges in automatically identifying these Refactoring opportunities.

Mark Harman - One of the best experts on this subject based on the ideXlab platform.

  • Coherent clusters in source code
    Journal of Systems and Software, 2014
    Co-Authors: Syed Islam, Jens Krinke, David Binkley, Mark Harman
    Abstract:

    This paper presents the results of a large scale empirical study of coherent dependence clusters. All statements in a coherent dependence cluster depend upon the same set of statements and affect the same set of statements; a coherent cluster's statements have 'coherent' shared backward and forward dependence. We introduce an approximation to efficiently locate coherent clusters and show that it has a minimum precision of 97.76%. Our empirical study also finds that, despite their tight coherence constraints, coherent dependence clusters are in abundance: 23 of the 30 programs studied have coherent clusters that contain at least 10% of the whole program. Studying patterns of clustering in these programs reveals that most programs contain multiple substantial coherent clusters. A series of subsequent case studies uncover that all clusters of significant size map to a logical functionality and correspond to a program structure. For example, we show that for the program acct, the top five coherent clusters all map to specific, yet otherwise non-obvious, functionality. Cluster visualization also brings out subtle deficiencies in program structure and identifies Potential Refactoring candidates. A study of inter-cluster dependence is used to highlight how coherent clusters are connected to each other, revealing higher-level structures, which can be used in reverse engineering. Finally, studies are presented to illustrate how clusters are not correlated with program faults as they remain stable during most system evolution.

Jyothi Vedurada - One of the best experts on this subject based on the ideXlab platform.

  • Identifying Refactoring opportunities for replacing type code with subclass and state
    Proceedings of the ACM on Programming Languages, 2018
    Co-Authors: Jyothi Vedurada, V. Krishna Nandivada
    Abstract:

    Refactoring is a program transformation that restructures existing code without altering its behaviour and is a key practice in popular software design movements, such as Agile. Identification of Potential Refactoring opportunities is an important step in the Refactoring process. In large systems, manual identification of useful Refactoring opportunities requires a lot of effort and time. Hence, there is a need for automatic identification of Refactoring opportunities. However, this problem has not been addressed well for many non-trivial Refactorings. Two such non-trivial, yet popular Refactorings are “Replace Type Code with Subclass” (SC) and “Replace Type Code with State” (ST) Refactorings. In this paper, we present new approaches to identify SC and ST Refactoring opportunities. Our proposed approach is based around the notion of control-fields. A control-field is a field of a class that exposes the different underlying behaviors of the class. Each control-field can lead to a possible SC/ST Refactoring of the associated/interacting classes. We first present a formal definition of control-fields and then present algorithms to identify and prune them; each of these pruned control-fields represents a Refactoring opportunity. Further, we present a novel flow- and context-sensitive analysis to classify each of these Refactoring opportunities into one of the SC and ST opportunities. We have implemented our proposed approach in a tool called Auto-SCST, and demonstrated its effectiveness by evaluating it against eight open-source Java applications.

  • ICSE (Companion Volume) - Refactoring opportunities for replacing type code with state and subclass
    2017 IEEE ACM 39th International Conference on Software Engineering Companion (ICSE-C), 2017
    Co-Authors: Jyothi Vedurada, V. Krishna Nandivada
    Abstract:

    Refactoring restructures a program to improve its readability and maintainability, without changing its original behavior. One of the key steps in Refactoring is the identification of Potential Refactoring opportunities. In this paper, we discuss the relevance of two popular Refactorings "Replace Type Code with Subclass" and "Replace Type Code with State" in real world Java applications and describe some of the challenges in automatically identifying these Refactoring opportunities.