SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 03 Issue: 03 | Mar-2014, Available @ http://www.ijret.org 278
MULTI-STEP AUTOMATED REFACTORING FOR CODE SMELL
M.Lakshmanan1
, S.Manikandan2
1
Assistant professor, 2
PG Scholar, Department of CSE, Gnanamani College of Engineering, Tamilnadu, India
Abstract
In computer programming, code smell may origin of latent problems in source code. Detecting and resolving bad smells remain time
intense for software engineers despite proposals on bad smell detecting and refactoring tools. Numerous code smells have been
recognized yet the sequence in which the detection and resolution of different kinds of code smells are performed because software
engineers do not know how to optimize sequence. In this paper, the novel refactoring approach is proposed to improve the
performance of programs. In this recommended approach the code smells are automatically detected and refactored. The simulation
results propose the reduction of time over the semi-automated refactoring are achieved when code smells are refactored by using
multi-step automated refactoring.
Keywords: Code smell, multi step refactoring, detection, code resolution, restructuring etc
----------------------------------------------------------------------***------------------------------------------------------------------------
1. INTRODUCTION
Multi step software refactoring is an approach for
restructuring an existing body of code and altering its internal
structure without changing its external behavior by extract the
design of original source code and explores the new design, in
order to improve some of the nonfunctional attributes of the
software. The code smell became complex to evaluate in
programs. Code smells are usually not bugs, but it is not
technically incorrect and prevents the program from
functioning. Instead the code smell indicates weakness in
design that may be slowing down in the development or
increasing the risk of bugs or failure in the program [1]. So
software engineers need detection tools and appropriate
refactoring method for restructuring the programming codes
by without alters the behavior of the original source code in
the applications [1].
In this approach, we make use of detection tools for detection
and resolution of code smells in java programs. The manual
detection of code smells in huge system became complex and
also consumes more time especially those involving more than
one file or package. So, we go for the tools used are probable
to detect code smells automatically and then multi step
software refactoring is implemented in fully automated
environment to remove code smells in the program [2]. As a
result, the code smell in the programs are detected and
refactored automatically.
2. RELATED WORK
In this Section, we first review related works addressing the
code smells.
2.1 Refactoring in Automatically Generated
Programs
Software systems experience incremental modifies more than
time in arrange to deal with original necessities [1] [2]. Since
the new design is not set for each new requirement in general,
the addition of functionality brings the risk of degrading the
quality of the design (structure) of the system. A common
approach to mitigate this risk engages the use of refactoring.
Refactoring aims at improving the design of accessible code
by introducing structural alteration lacking changing its
performance.
The motivation for refactoring the code of a system is that a
well-designed system is normally easier to keep and expand.
Refactoring is now a core element of software engineering put
into practice, and is supported by the insertion of refactoring
tools in well-used incorporated development environments [2].
Whereas the software refactoring is to obtain a quality
software design and it decides the type of refactoring based on
the situation. Newly, search-based approaches to mechanize
the application of refactoring contain be proposed. These
move toward cast the refactoring as an optimization trouble,
where the objective is to get better the design excellence of a
system based on a set of software metrics After originate the
refactoring as an optimization problem by defining the
solution representation, search operators and fitness function,
several different methods can be applied to the problem of
automated refactoring [3]. So far, the thought of habitual
refactoring has been practical only to human-written code.
2.2. Other Related Techniques
Researchers have examined clone detection methods [6] to
notice copy code in programs exceeding hundreds of
thousands lines of code. All of these methods include known
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 03 Issue: 03 | Mar-2014, Available @ http://www.ijret.org 279
qualities and deficiencies, but as of today, little is recognized
on where to fit these methods into the software preservation
process. The clone detection methods contrast three delegate
detection methods (simple line matching, parameterized
matching, and metric fingerprints) by earnings of five small to
medium cases and analyses the dissimilarity between the
reported equal. Based on this trial, it shows that (1) Easy line
matching is most excellent suited for a first crude impression
of the copy code; (2) metric fingerprints work finest in blend
with a refactoring tool that is able to remove copy subroutines;
(3) Parameterized identical works optimum in mix together
with extra fine-grained refactoring tools that work on the
statement stage.
Detection methods of code clones are a two stage procedure
which contains of a revolution and an assessment stage [4]. In
the first phase, the source text is transformed into an internal
format which allows the use of a more efficient comparison
algorithm. Through the following assessment stage the
definite matches are noticed. Due to its inner position, it is
sensible to classify detection methods according to their inside
format. An overview of the dissimilar methods available for
each category while selecting a representative for each
category like String Based, easy Line corresponding,
Parameterized Line Matching, and Token Based.
3. DETECTION AND RESOLUTION OF CODE
SMELLS
The detection tools which detect the different kinds of bad
smells occur in the program, usually the detection tool
recognizes the exact kind of code smell, e.g., the clone
detection tool covers only clones in the program. The software
engineer once confirmed the detected code smell and decides
the software refactoring method to sanitary code smells. The
resolution sequence of code smell may simplify the
refactoring process, in such a way multi step software
refactoring is carried out to evaluate the behavior of the
program. This sequence of one type of code smell may affect
the detection and resolution of another kind of code smell.
Therefore, the code smells detection and resolution to make
simpler by using the suitable detection and resolution
sequences.
Fig -1: Detection and Resolution of Code Smell
As a result of this approach, we can automatically detect the
evaluated code smells (Table 1) and also carried out an
automated refactoring without a human interaction, by these
results input of original java source code program contain
code smells can be automatically refactored and finally getting
an refactored source code without a code smells.
4. TOOLS AND METRICS
Software engineers necessitate tools to carry out the code
detection and software refactoring either automatically or semi
automatically [4]. In this paper, we make utilize of software
tools, the integrated development environments (IDE), such as
Eclipse, Microsoft Visual Studio and Intellij Idea JDEvAn and
code-Imp support software refactoring. These tools are
described in the following categories.
JDEvAn (Java Design Evaluation and Analysis) is an Eclipse
plug-in developed in the University of Alberta. It evaluates a
design evaluation history of software system and provides the
information about the system history. In this paper, we use the
java fact extractor and UMLDiff an design differencing
algorithm. Code-Imp (Combinational Optimization for Design
Improvement) is an automated framework for software
refactoring developed in the University college of Dublin,
Ireland. This automated framework is used to refactoring the
code smells occurs in the java source programs. This tool
support Java version 6 source codes as input and produces
refactored source code.
Duplicated Code was detected by PMD and Long method,
Large Class, Long parameter list were detected by using
appropriate metrics like Cohesion metrics (LSCC, TCC,
SCOM, CC), Coupling metrics ( RFC, DCC, DAC, COF) and
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 03 Issue: 03 | Mar-2014, Available @ http://www.ijret.org 280
other metrics like (DIS, NOM, DAM, DSC). The metrics
which included in the metrics suite is QMOOD, MOOD.
Table -1: Evaluated Code Smells
CODE SMELLS RISK TYPE
Duplicated code High
Long Method High
Large Class High
Long Parameter List High
4.1 A Evaluated Code Smell
We focused four kinds of code smells at an initial stage. The
evaluated code smells are listed in the Table 1. A short
explanation of these code smells is obtainable here so that the
paper can be understood on its own. We evaluate the
relationship between these code smells and form the resolution
sequence and we also recommend this resolution for
commonly occurring code smells.
 Duplicated Code: The same code appears more than one
location in a program is considered as a duplicated code.
 Long Method: The method which is harder to read or
modify is consider as a long method. As a result long or
complex method should be divided in to easy and well-
named methods associates with the refactoring rules.
 Large Class: Large class consists of too many functions
and tasks, which it making complex and confuse. To
improve the understandability, the large class should be
divided and assigns responsibilities in to simple ones.
 Long Parameter List: In programs, the methods which
contain too many parameters are difficult to use and also
difficult to alter. The parameters can be reduced by using
simple objects.
5. RESOLUTION SEQUENCE OF CODE SMELLS
In this section, the recommended resolution sequence (Figure
2) is formed for the evaluated code smell. The directed graph
is drawn based on the priority of the code smell and
topological sorting algorithm is used to find the optimal
sequence for the evaluated code smells. The topological
sorting algorithm is desirable at the time of two or more
vertices are available by using this algorithm randomly picks
up the values which doesn’t affect the original behavior of the
system.
Fig -2: Resolution Sequence of Code Smell
6. MULTI STEP REFACTORING
The software refactoring is usually carried out in two ways.
The First is refactoring in small step, in this method the
refactoring is done with small size (scope for local files) and
the second is refactoring is done systematically which attempt
to refactor the whole system at an instance. In this paper we
propose the multi step software refactoring.
We extract the original source code in to design level is
presented in figure 3; it proposes new design model for the
source code and explores the design. This design level
improves software refactoring by initiates the multi step
refactoring. The refactoring steps are: model evaluation,
extract design, preferred design and refactoring. This multi-
step software refactoring is resultant from the automated
search based refactoring and it overcomes the problem in fully
automated approach were by using an automated JDEv a tool
in an Eclipse integrated environment.
Fig -3: Multi Step Software Refactoring
The terms which we used in the multi step software
refactoring is described for better understanding the concepts.
Original source code consists of smells that is to be refactored
Preferred Design
Preferred Design
Preferred Design
Model EvaluationOriginal Source Code
Refactoring
Extract Design
Refactored Code
Duplicated code
Long Method
Large Class
Long Parameter
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 03 Issue: 03 | Mar-2014, Available @ http://www.ijret.org 281
and the model evaluation step the model should be evaluated
from the original source code. This model established
according to the UML meta-model. Extract Design: The
design extracted from the model evaluation, the design level
may changes according to the change in the evaluation of the
model.
The preferred design based on the UML model based on the
original source code by explores a new design but updating
the information based on the programmer needs. Refactoring:
In this process the multi step refactoring is categorized in to
detected and source level refactoring. The detected refactoring
focus on design-level occurrences The source level refactoring
proposes the refactoring directly on source code. Refactored
Code: The refactoring is a process to clean up code smells in
the original source code and getting the refactored code.
7. RESULTS AND DISCUSSION
Software refactoring can be carried out in multi-step
automated refactoring approach and the results are presented
in Table 2. Refactoring is carried out in Combinational
Optimization for Design Improvement which supports Java 6
and several search types, it includes Java Source Metric to
measure the metrics of Java source code. It is an Eclipse plug-
in, detailed information of the simulation are presented and
compared in Figure 4. From the figure, we observe that multi-
step software refactoring approach has better results when
compared to semi automated refactoring. Carrying out
evaluation on these applications may help simplify the
conclusions.
Fig -4: Automation levels for refactoring tools
The multi-step software refactoring shows the results of
automated refactoring and the semi automated refactoring has
taken undefined time to perform refactoring on detected code
smell. The semi automated approach depends on man power
and their performance but our proposed approach based on
detection and refactoring tools. So, the evaluation results
confirm the better performance on multi-step refactoring.
8. CONCLUSIONS AND FUTURE WORK
The different kinds of code smells are first annoyed and
described the resolution sequence of various kinds of code
smells, then proposes the final resolution sequence for
commonly occurring code smells. Then we also illustrate the
multi-step software refactoring for clean up the code smells
automatically. These results the code smell can be detected
and resolved automatically.
The main goal of our future work in this area is too carried out
the automated refactoring for various kinds of code smells as
we focused only four types. The rest of the remaining code
smells are detected and refactored by using our multi step
software refactoring approach or by using the fully automated
framework code-imp for refactoring.
REFERENCES
[1] Hui Liu and Weizhong, “Schedule of Bad Smell
Detection and Resolution: A New Way to Save
Effort,”IEEE Trans. Software Eng., vol. 38, no. 1, pp.
220-235, Feb. 2012.
[2] Mens and T. Touwe, “A Survey of Software
Refactoring,”IEEE Trans. Software Eng., vol. 30, no. 2,
pp. 126-139, Feb. 2004.
[3] Moghadam and M. ´O Cinn´eide, “Code-Imp: a tool for
automated search-based refactoring,” in Proceeding of
the 4th workshop on Refactoring tools, ser. WRT ’11.
New York, NY, USA: ACM, 2011, pp. 41–44.
[4] F.Tip, A.Kiezun, and D.Baeumer, “Refactoring for
Generalization Using Type Constraints,” Proc. 18th
Ann. Conf. Object- Oriented Programming Systems,
Languages, and Applications, pp. 13- 26, Oct. 2003.
[5] Eclipse Foundation. Eclipse 3.4.2.
http://www.eclipse.org/emft/projects/, 2011.
[6] Burd and J. Bailey, “Evaluating Clone Detection
Tools for Use During Preventative Maintenance,” Proc.
Second IEEE Int’l Workshop Source Code Analysis
and Manipulation, pp. 36-43, Oct. 2002.
[7] Wettel and R. Marinescu, “Archeology of Code
Duplication: Recovering Duplication Chains from
Small Duplication Fragments,” Proc. Seventh Int’l
Symp. Symbolic and Numeric Algorithms for
Scientific Computing, p. 63, 2005.
BIOGRAPHIES
M. Lakshmanan received the M.E degree in
Software Engineering from Anna
University in 2013. He is an assistant
professor in the CSE department at the
Gnanamani College of Engineering. His
current research interests include software
refactoring, design pattern, and software
evolution.
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 03 Issue: 03 | Mar-2014, Available @ http://www.ijret.org 282
S. Manikandan, P.G Scholar, department of
Computer Science and Engineering at the
Gnanamani College of Engineering He is
particularly interested in software
engineering, testing, object-oriented
technologies and software reuse.

Mais conteúdo relacionado

Mais procurados

Finding latent code errors via machine learning over program ...
Finding latent code errors via machine learning over program ...Finding latent code errors via machine learning over program ...
Finding latent code errors via machine learning over program ...butest
 
Testing and test case generation by using fuzzy logic and n
Testing and test case generation by using fuzzy logic and nTesting and test case generation by using fuzzy logic and n
Testing and test case generation by using fuzzy logic and nIAEME Publication
 
Class Diagram Extraction from Textual Requirements Using NLP Techniques
Class Diagram Extraction from Textual Requirements Using NLP TechniquesClass Diagram Extraction from Textual Requirements Using NLP Techniques
Class Diagram Extraction from Textual Requirements Using NLP Techniquesiosrjce
 
An Efficient Approach to Produce Source Code by Interpreting Algorithm
An Efficient Approach to Produce Source Code by Interpreting AlgorithmAn Efficient Approach to Produce Source Code by Interpreting Algorithm
An Efficient Approach to Produce Source Code by Interpreting AlgorithmIRJET Journal
 
Automatic reverse engineering of malware emulators
Automatic reverse engineering of malware emulatorsAutomatic reverse engineering of malware emulators
Automatic reverse engineering of malware emulatorsUltraUploader
 
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...ijseajournal
 
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONSFUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONSijseajournal
 
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...ijseajournal
 
A method for detecting obfuscated calls in malicious binaries
A method for detecting obfuscated calls in malicious binariesA method for detecting obfuscated calls in malicious binaries
A method for detecting obfuscated calls in malicious binariesUltraUploader
 
Traps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit WindowsTraps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit WindowsPVS-Studio
 
CV_Sunil Arya_Updated
CV_Sunil Arya_UpdatedCV_Sunil Arya_Updated
CV_Sunil Arya_UpdatedSunil Arya
 
IRJET- Code Cloning using Abstract Syntax Tree
IRJET- Code Cloning using Abstract Syntax TreeIRJET- Code Cloning using Abstract Syntax Tree
IRJET- Code Cloning using Abstract Syntax TreeIRJET Journal
 
Software Birthmark for Theft Detection of JavaScript Programs: A Survey
Software Birthmark for Theft Detection of JavaScript Programs: A Survey Software Birthmark for Theft Detection of JavaScript Programs: A Survey
Software Birthmark for Theft Detection of JavaScript Programs: A Survey Swati Patel
 
Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...PVS-Studio
 
Unit Testing to Support Reusable for Component-Based Software Engineering
Unit Testing to Support Reusable for Component-Based Software EngineeringUnit Testing to Support Reusable for Component-Based Software Engineering
Unit Testing to Support Reusable for Component-Based Software Engineeringijtsrd
 
IRJET- Data Reduction in Bug Triage using Supervised Machine Learning
IRJET- Data Reduction in Bug Triage using Supervised Machine LearningIRJET- Data Reduction in Bug Triage using Supervised Machine Learning
IRJET- Data Reduction in Bug Triage using Supervised Machine LearningIRJET Journal
 
iFixR: Bug Report Driven Program Repair
iFixR: Bug Report Driven Program RepairiFixR: Bug Report Driven Program Repair
iFixR: Bug Report Driven Program RepairDongsun Kim
 
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis ViolationsAVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis ViolationsDongsun Kim
 

Mais procurados (19)

Finding latent code errors via machine learning over program ...
Finding latent code errors via machine learning over program ...Finding latent code errors via machine learning over program ...
Finding latent code errors via machine learning over program ...
 
Testing and test case generation by using fuzzy logic and n
Testing and test case generation by using fuzzy logic and nTesting and test case generation by using fuzzy logic and n
Testing and test case generation by using fuzzy logic and n
 
Class Diagram Extraction from Textual Requirements Using NLP Techniques
Class Diagram Extraction from Textual Requirements Using NLP TechniquesClass Diagram Extraction from Textual Requirements Using NLP Techniques
Class Diagram Extraction from Textual Requirements Using NLP Techniques
 
An Efficient Approach to Produce Source Code by Interpreting Algorithm
An Efficient Approach to Produce Source Code by Interpreting AlgorithmAn Efficient Approach to Produce Source Code by Interpreting Algorithm
An Efficient Approach to Produce Source Code by Interpreting Algorithm
 
Automatic reverse engineering of malware emulators
Automatic reverse engineering of malware emulatorsAutomatic reverse engineering of malware emulators
Automatic reverse engineering of malware emulators
 
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
 
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONSFUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
 
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
 
A method for detecting obfuscated calls in malicious binaries
A method for detecting obfuscated calls in malicious binariesA method for detecting obfuscated calls in malicious binaries
A method for detecting obfuscated calls in malicious binaries
 
Traps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit WindowsTraps detection during migration of C and C++ code to 64-bit Windows
Traps detection during migration of C and C++ code to 64-bit Windows
 
714 728
714 728714 728
714 728
 
CV_Sunil Arya_Updated
CV_Sunil Arya_UpdatedCV_Sunil Arya_Updated
CV_Sunil Arya_Updated
 
IRJET- Code Cloning using Abstract Syntax Tree
IRJET- Code Cloning using Abstract Syntax TreeIRJET- Code Cloning using Abstract Syntax Tree
IRJET- Code Cloning using Abstract Syntax Tree
 
Software Birthmark for Theft Detection of JavaScript Programs: A Survey
Software Birthmark for Theft Detection of JavaScript Programs: A Survey Software Birthmark for Theft Detection of JavaScript Programs: A Survey
Software Birthmark for Theft Detection of JavaScript Programs: A Survey
 
Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...Adaptation of the technology of the static code analyzer for developing paral...
Adaptation of the technology of the static code analyzer for developing paral...
 
Unit Testing to Support Reusable for Component-Based Software Engineering
Unit Testing to Support Reusable for Component-Based Software EngineeringUnit Testing to Support Reusable for Component-Based Software Engineering
Unit Testing to Support Reusable for Component-Based Software Engineering
 
IRJET- Data Reduction in Bug Triage using Supervised Machine Learning
IRJET- Data Reduction in Bug Triage using Supervised Machine LearningIRJET- Data Reduction in Bug Triage using Supervised Machine Learning
IRJET- Data Reduction in Bug Triage using Supervised Machine Learning
 
iFixR: Bug Report Driven Program Repair
iFixR: Bug Report Driven Program RepairiFixR: Bug Report Driven Program Repair
iFixR: Bug Report Driven Program Repair
 
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis ViolationsAVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
 

Semelhante a Multi step automated refactoring for code smell

Gene Based Software Refactoring Location Identification and Rectification For...
Gene Based Software Refactoring Location Identification and Rectification For...Gene Based Software Refactoring Location Identification and Rectification For...
Gene Based Software Refactoring Location Identification and Rectification For...IJCSIS Research Publications
 
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...acijjournal
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...acijjournal
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...acijjournal
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...eSAT Journals
 
Deepcoder to Self-Code with Machine Learning
Deepcoder to Self-Code with Machine LearningDeepcoder to Self-Code with Machine Learning
Deepcoder to Self-Code with Machine LearningIRJET Journal
 
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...ijcnes
 
Online java compiler with security editor
Online java compiler with security editorOnline java compiler with security editor
Online java compiler with security editorIRJET Journal
 
Problems of testing 64-bit applications
Problems of testing 64-bit applicationsProblems of testing 64-bit applications
Problems of testing 64-bit applicationsPVS-Studio
 
Put Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and HowPut Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and HowMassimiliano Di Penta
 
Unit Test using Test Driven Development Approach to Support Reusability
Unit Test using Test Driven Development Approach to Support ReusabilityUnit Test using Test Driven Development Approach to Support Reusability
Unit Test using Test Driven Development Approach to Support Reusabilityijtsrd
 
Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models IJECEIAES
 
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELSTHE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELSIJSEA
 
Exploring the Efficiency of the Program using OOAD Metrics
Exploring the Efficiency of the Program using OOAD MetricsExploring the Efficiency of the Program using OOAD Metrics
Exploring the Efficiency of the Program using OOAD MetricsIRJET Journal
 
DESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance FrameworkDESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance FrameworkIJERA Editor
 
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...acijjournal
 

Semelhante a Multi step automated refactoring for code smell (20)

Gene Based Software Refactoring Location Identification and Rectification For...
Gene Based Software Refactoring Location Identification and Rectification For...Gene Based Software Refactoring Location Identification and Rectification For...
Gene Based Software Refactoring Location Identification and Rectification For...
 
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...
 
Deepcoder to Self-Code with Machine Learning
Deepcoder to Self-Code with Machine LearningDeepcoder to Self-Code with Machine Learning
Deepcoder to Self-Code with Machine Learning
 
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...
 
Online java compiler with security editor
Online java compiler with security editorOnline java compiler with security editor
Online java compiler with security editor
 
Problems of testing 64-bit applications
Problems of testing 64-bit applicationsProblems of testing 64-bit applications
Problems of testing 64-bit applications
 
Put Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and HowPut Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and How
 
Unit Test using Test Driven Development Approach to Support Reusability
Unit Test using Test Driven Development Approach to Support ReusabilityUnit Test using Test Driven Development Approach to Support Reusability
Unit Test using Test Driven Development Approach to Support Reusability
 
Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models
 
4213ijsea04
4213ijsea044213ijsea04
4213ijsea04
 
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELSTHE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
 
IJET-V2I6P28
IJET-V2I6P28IJET-V2I6P28
IJET-V2I6P28
 
Exploring the Efficiency of the Program using OOAD Metrics
Exploring the Efficiency of the Program using OOAD MetricsExploring the Efficiency of the Program using OOAD Metrics
Exploring the Efficiency of the Program using OOAD Metrics
 
Correctness
CorrectnessCorrectness
Correctness
 
Test PDF file
Test PDF fileTest PDF file
Test PDF file
 
DESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance FrameworkDESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance Framework
 
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
 

Mais de eSAT Journals

Mechanical properties of hybrid fiber reinforced concrete for pavements
Mechanical properties of hybrid fiber reinforced concrete for pavementsMechanical properties of hybrid fiber reinforced concrete for pavements
Mechanical properties of hybrid fiber reinforced concrete for pavementseSAT Journals
 
Material management in construction – a case study
Material management in construction – a case studyMaterial management in construction – a case study
Material management in construction – a case studyeSAT Journals
 
Managing drought short term strategies in semi arid regions a case study
Managing drought    short term strategies in semi arid regions  a case studyManaging drought    short term strategies in semi arid regions  a case study
Managing drought short term strategies in semi arid regions a case studyeSAT Journals
 
Life cycle cost analysis of overlay for an urban road in bangalore
Life cycle cost analysis of overlay for an urban road in bangaloreLife cycle cost analysis of overlay for an urban road in bangalore
Life cycle cost analysis of overlay for an urban road in bangaloreeSAT Journals
 
Laboratory studies of dense bituminous mixes ii with reclaimed asphalt materials
Laboratory studies of dense bituminous mixes ii with reclaimed asphalt materialsLaboratory studies of dense bituminous mixes ii with reclaimed asphalt materials
Laboratory studies of dense bituminous mixes ii with reclaimed asphalt materialseSAT Journals
 
Laboratory investigation of expansive soil stabilized with natural inorganic ...
Laboratory investigation of expansive soil stabilized with natural inorganic ...Laboratory investigation of expansive soil stabilized with natural inorganic ...
Laboratory investigation of expansive soil stabilized with natural inorganic ...eSAT Journals
 
Influence of reinforcement on the behavior of hollow concrete block masonry p...
Influence of reinforcement on the behavior of hollow concrete block masonry p...Influence of reinforcement on the behavior of hollow concrete block masonry p...
Influence of reinforcement on the behavior of hollow concrete block masonry p...eSAT Journals
 
Influence of compaction energy on soil stabilized with chemical stabilizer
Influence of compaction energy on soil stabilized with chemical stabilizerInfluence of compaction energy on soil stabilized with chemical stabilizer
Influence of compaction energy on soil stabilized with chemical stabilizereSAT Journals
 
Geographical information system (gis) for water resources management
Geographical information system (gis) for water resources managementGeographical information system (gis) for water resources management
Geographical information system (gis) for water resources managementeSAT Journals
 
Forest type mapping of bidar forest division, karnataka using geoinformatics ...
Forest type mapping of bidar forest division, karnataka using geoinformatics ...Forest type mapping of bidar forest division, karnataka using geoinformatics ...
Forest type mapping of bidar forest division, karnataka using geoinformatics ...eSAT Journals
 
Factors influencing compressive strength of geopolymer concrete
Factors influencing compressive strength of geopolymer concreteFactors influencing compressive strength of geopolymer concrete
Factors influencing compressive strength of geopolymer concreteeSAT Journals
 
Experimental investigation on circular hollow steel columns in filled with li...
Experimental investigation on circular hollow steel columns in filled with li...Experimental investigation on circular hollow steel columns in filled with li...
Experimental investigation on circular hollow steel columns in filled with li...eSAT Journals
 
Experimental behavior of circular hsscfrc filled steel tubular columns under ...
Experimental behavior of circular hsscfrc filled steel tubular columns under ...Experimental behavior of circular hsscfrc filled steel tubular columns under ...
Experimental behavior of circular hsscfrc filled steel tubular columns under ...eSAT Journals
 
Evaluation of punching shear in flat slabs
Evaluation of punching shear in flat slabsEvaluation of punching shear in flat slabs
Evaluation of punching shear in flat slabseSAT Journals
 
Evaluation of performance of intake tower dam for recent earthquake in india
Evaluation of performance of intake tower dam for recent earthquake in indiaEvaluation of performance of intake tower dam for recent earthquake in india
Evaluation of performance of intake tower dam for recent earthquake in indiaeSAT Journals
 
Evaluation of operational efficiency of urban road network using travel time ...
Evaluation of operational efficiency of urban road network using travel time ...Evaluation of operational efficiency of urban road network using travel time ...
Evaluation of operational efficiency of urban road network using travel time ...eSAT Journals
 
Estimation of surface runoff in nallur amanikere watershed using scs cn method
Estimation of surface runoff in nallur amanikere watershed using scs cn methodEstimation of surface runoff in nallur amanikere watershed using scs cn method
Estimation of surface runoff in nallur amanikere watershed using scs cn methodeSAT Journals
 
Estimation of morphometric parameters and runoff using rs & gis techniques
Estimation of morphometric parameters and runoff using rs & gis techniquesEstimation of morphometric parameters and runoff using rs & gis techniques
Estimation of morphometric parameters and runoff using rs & gis techniqueseSAT Journals
 
Effect of variation of plastic hinge length on the results of non linear anal...
Effect of variation of plastic hinge length on the results of non linear anal...Effect of variation of plastic hinge length on the results of non linear anal...
Effect of variation of plastic hinge length on the results of non linear anal...eSAT Journals
 
Effect of use of recycled materials on indirect tensile strength of asphalt c...
Effect of use of recycled materials on indirect tensile strength of asphalt c...Effect of use of recycled materials on indirect tensile strength of asphalt c...
Effect of use of recycled materials on indirect tensile strength of asphalt c...eSAT Journals
 

Mais de eSAT Journals (20)

Mechanical properties of hybrid fiber reinforced concrete for pavements
Mechanical properties of hybrid fiber reinforced concrete for pavementsMechanical properties of hybrid fiber reinforced concrete for pavements
Mechanical properties of hybrid fiber reinforced concrete for pavements
 
Material management in construction – a case study
Material management in construction – a case studyMaterial management in construction – a case study
Material management in construction – a case study
 
Managing drought short term strategies in semi arid regions a case study
Managing drought    short term strategies in semi arid regions  a case studyManaging drought    short term strategies in semi arid regions  a case study
Managing drought short term strategies in semi arid regions a case study
 
Life cycle cost analysis of overlay for an urban road in bangalore
Life cycle cost analysis of overlay for an urban road in bangaloreLife cycle cost analysis of overlay for an urban road in bangalore
Life cycle cost analysis of overlay for an urban road in bangalore
 
Laboratory studies of dense bituminous mixes ii with reclaimed asphalt materials
Laboratory studies of dense bituminous mixes ii with reclaimed asphalt materialsLaboratory studies of dense bituminous mixes ii with reclaimed asphalt materials
Laboratory studies of dense bituminous mixes ii with reclaimed asphalt materials
 
Laboratory investigation of expansive soil stabilized with natural inorganic ...
Laboratory investigation of expansive soil stabilized with natural inorganic ...Laboratory investigation of expansive soil stabilized with natural inorganic ...
Laboratory investigation of expansive soil stabilized with natural inorganic ...
 
Influence of reinforcement on the behavior of hollow concrete block masonry p...
Influence of reinforcement on the behavior of hollow concrete block masonry p...Influence of reinforcement on the behavior of hollow concrete block masonry p...
Influence of reinforcement on the behavior of hollow concrete block masonry p...
 
Influence of compaction energy on soil stabilized with chemical stabilizer
Influence of compaction energy on soil stabilized with chemical stabilizerInfluence of compaction energy on soil stabilized with chemical stabilizer
Influence of compaction energy on soil stabilized with chemical stabilizer
 
Geographical information system (gis) for water resources management
Geographical information system (gis) for water resources managementGeographical information system (gis) for water resources management
Geographical information system (gis) for water resources management
 
Forest type mapping of bidar forest division, karnataka using geoinformatics ...
Forest type mapping of bidar forest division, karnataka using geoinformatics ...Forest type mapping of bidar forest division, karnataka using geoinformatics ...
Forest type mapping of bidar forest division, karnataka using geoinformatics ...
 
Factors influencing compressive strength of geopolymer concrete
Factors influencing compressive strength of geopolymer concreteFactors influencing compressive strength of geopolymer concrete
Factors influencing compressive strength of geopolymer concrete
 
Experimental investigation on circular hollow steel columns in filled with li...
Experimental investigation on circular hollow steel columns in filled with li...Experimental investigation on circular hollow steel columns in filled with li...
Experimental investigation on circular hollow steel columns in filled with li...
 
Experimental behavior of circular hsscfrc filled steel tubular columns under ...
Experimental behavior of circular hsscfrc filled steel tubular columns under ...Experimental behavior of circular hsscfrc filled steel tubular columns under ...
Experimental behavior of circular hsscfrc filled steel tubular columns under ...
 
Evaluation of punching shear in flat slabs
Evaluation of punching shear in flat slabsEvaluation of punching shear in flat slabs
Evaluation of punching shear in flat slabs
 
Evaluation of performance of intake tower dam for recent earthquake in india
Evaluation of performance of intake tower dam for recent earthquake in indiaEvaluation of performance of intake tower dam for recent earthquake in india
Evaluation of performance of intake tower dam for recent earthquake in india
 
Evaluation of operational efficiency of urban road network using travel time ...
Evaluation of operational efficiency of urban road network using travel time ...Evaluation of operational efficiency of urban road network using travel time ...
Evaluation of operational efficiency of urban road network using travel time ...
 
Estimation of surface runoff in nallur amanikere watershed using scs cn method
Estimation of surface runoff in nallur amanikere watershed using scs cn methodEstimation of surface runoff in nallur amanikere watershed using scs cn method
Estimation of surface runoff in nallur amanikere watershed using scs cn method
 
Estimation of morphometric parameters and runoff using rs & gis techniques
Estimation of morphometric parameters and runoff using rs & gis techniquesEstimation of morphometric parameters and runoff using rs & gis techniques
Estimation of morphometric parameters and runoff using rs & gis techniques
 
Effect of variation of plastic hinge length on the results of non linear anal...
Effect of variation of plastic hinge length on the results of non linear anal...Effect of variation of plastic hinge length on the results of non linear anal...
Effect of variation of plastic hinge length on the results of non linear anal...
 
Effect of use of recycled materials on indirect tensile strength of asphalt c...
Effect of use of recycled materials on indirect tensile strength of asphalt c...Effect of use of recycled materials on indirect tensile strength of asphalt c...
Effect of use of recycled materials on indirect tensile strength of asphalt c...
 

Último

signals in triangulation .. ...Surveying
signals in triangulation .. ...Surveyingsignals in triangulation .. ...Surveying
signals in triangulation .. ...Surveyingsapna80328
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...Erbil Polytechnic University
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosVictor Morales
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptJohnWilliam111370
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdfsahilsajad201
 
OOP concepts -in-Python programming language
OOP concepts -in-Python programming languageOOP concepts -in-Python programming language
OOP concepts -in-Python programming languageSmritiSharma901052
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
List of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfList of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfisabel213075
 
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmComputer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmDeepika Walanjkar
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating SystemRashmi Bhat
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdfHafizMudaserAhmad
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solidnamansinghjarodiya
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.elesangwon
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
Ch10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfCh10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfChristianCDAM
 

Último (20)

signals in triangulation .. ...Surveying
signals in triangulation .. ...Surveyingsignals in triangulation .. ...Surveying
signals in triangulation .. ...Surveying
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitos
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdf
 
OOP concepts -in-Python programming language
OOP concepts -in-Python programming languageOOP concepts -in-Python programming language
OOP concepts -in-Python programming language
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
List of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfList of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdf
 
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmComputer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating System
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solid
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
Ch10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfCh10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdf
 

Multi step automated refactoring for code smell

  • 1. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 03 Issue: 03 | Mar-2014, Available @ http://www.ijret.org 278 MULTI-STEP AUTOMATED REFACTORING FOR CODE SMELL M.Lakshmanan1 , S.Manikandan2 1 Assistant professor, 2 PG Scholar, Department of CSE, Gnanamani College of Engineering, Tamilnadu, India Abstract In computer programming, code smell may origin of latent problems in source code. Detecting and resolving bad smells remain time intense for software engineers despite proposals on bad smell detecting and refactoring tools. Numerous code smells have been recognized yet the sequence in which the detection and resolution of different kinds of code smells are performed because software engineers do not know how to optimize sequence. In this paper, the novel refactoring approach is proposed to improve the performance of programs. In this recommended approach the code smells are automatically detected and refactored. The simulation results propose the reduction of time over the semi-automated refactoring are achieved when code smells are refactored by using multi-step automated refactoring. Keywords: Code smell, multi step refactoring, detection, code resolution, restructuring etc ----------------------------------------------------------------------***------------------------------------------------------------------------ 1. INTRODUCTION Multi step software refactoring is an approach for restructuring an existing body of code and altering its internal structure without changing its external behavior by extract the design of original source code and explores the new design, in order to improve some of the nonfunctional attributes of the software. The code smell became complex to evaluate in programs. Code smells are usually not bugs, but it is not technically incorrect and prevents the program from functioning. Instead the code smell indicates weakness in design that may be slowing down in the development or increasing the risk of bugs or failure in the program [1]. So software engineers need detection tools and appropriate refactoring method for restructuring the programming codes by without alters the behavior of the original source code in the applications [1]. In this approach, we make use of detection tools for detection and resolution of code smells in java programs. The manual detection of code smells in huge system became complex and also consumes more time especially those involving more than one file or package. So, we go for the tools used are probable to detect code smells automatically and then multi step software refactoring is implemented in fully automated environment to remove code smells in the program [2]. As a result, the code smell in the programs are detected and refactored automatically. 2. RELATED WORK In this Section, we first review related works addressing the code smells. 2.1 Refactoring in Automatically Generated Programs Software systems experience incremental modifies more than time in arrange to deal with original necessities [1] [2]. Since the new design is not set for each new requirement in general, the addition of functionality brings the risk of degrading the quality of the design (structure) of the system. A common approach to mitigate this risk engages the use of refactoring. Refactoring aims at improving the design of accessible code by introducing structural alteration lacking changing its performance. The motivation for refactoring the code of a system is that a well-designed system is normally easier to keep and expand. Refactoring is now a core element of software engineering put into practice, and is supported by the insertion of refactoring tools in well-used incorporated development environments [2]. Whereas the software refactoring is to obtain a quality software design and it decides the type of refactoring based on the situation. Newly, search-based approaches to mechanize the application of refactoring contain be proposed. These move toward cast the refactoring as an optimization trouble, where the objective is to get better the design excellence of a system based on a set of software metrics After originate the refactoring as an optimization problem by defining the solution representation, search operators and fitness function, several different methods can be applied to the problem of automated refactoring [3]. So far, the thought of habitual refactoring has been practical only to human-written code. 2.2. Other Related Techniques Researchers have examined clone detection methods [6] to notice copy code in programs exceeding hundreds of thousands lines of code. All of these methods include known
  • 2. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 03 Issue: 03 | Mar-2014, Available @ http://www.ijret.org 279 qualities and deficiencies, but as of today, little is recognized on where to fit these methods into the software preservation process. The clone detection methods contrast three delegate detection methods (simple line matching, parameterized matching, and metric fingerprints) by earnings of five small to medium cases and analyses the dissimilarity between the reported equal. Based on this trial, it shows that (1) Easy line matching is most excellent suited for a first crude impression of the copy code; (2) metric fingerprints work finest in blend with a refactoring tool that is able to remove copy subroutines; (3) Parameterized identical works optimum in mix together with extra fine-grained refactoring tools that work on the statement stage. Detection methods of code clones are a two stage procedure which contains of a revolution and an assessment stage [4]. In the first phase, the source text is transformed into an internal format which allows the use of a more efficient comparison algorithm. Through the following assessment stage the definite matches are noticed. Due to its inner position, it is sensible to classify detection methods according to their inside format. An overview of the dissimilar methods available for each category while selecting a representative for each category like String Based, easy Line corresponding, Parameterized Line Matching, and Token Based. 3. DETECTION AND RESOLUTION OF CODE SMELLS The detection tools which detect the different kinds of bad smells occur in the program, usually the detection tool recognizes the exact kind of code smell, e.g., the clone detection tool covers only clones in the program. The software engineer once confirmed the detected code smell and decides the software refactoring method to sanitary code smells. The resolution sequence of code smell may simplify the refactoring process, in such a way multi step software refactoring is carried out to evaluate the behavior of the program. This sequence of one type of code smell may affect the detection and resolution of another kind of code smell. Therefore, the code smells detection and resolution to make simpler by using the suitable detection and resolution sequences. Fig -1: Detection and Resolution of Code Smell As a result of this approach, we can automatically detect the evaluated code smells (Table 1) and also carried out an automated refactoring without a human interaction, by these results input of original java source code program contain code smells can be automatically refactored and finally getting an refactored source code without a code smells. 4. TOOLS AND METRICS Software engineers necessitate tools to carry out the code detection and software refactoring either automatically or semi automatically [4]. In this paper, we make utilize of software tools, the integrated development environments (IDE), such as Eclipse, Microsoft Visual Studio and Intellij Idea JDEvAn and code-Imp support software refactoring. These tools are described in the following categories. JDEvAn (Java Design Evaluation and Analysis) is an Eclipse plug-in developed in the University of Alberta. It evaluates a design evaluation history of software system and provides the information about the system history. In this paper, we use the java fact extractor and UMLDiff an design differencing algorithm. Code-Imp (Combinational Optimization for Design Improvement) is an automated framework for software refactoring developed in the University college of Dublin, Ireland. This automated framework is used to refactoring the code smells occurs in the java source programs. This tool support Java version 6 source codes as input and produces refactored source code. Duplicated Code was detected by PMD and Long method, Large Class, Long parameter list were detected by using appropriate metrics like Cohesion metrics (LSCC, TCC, SCOM, CC), Coupling metrics ( RFC, DCC, DAC, COF) and
  • 3. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 03 Issue: 03 | Mar-2014, Available @ http://www.ijret.org 280 other metrics like (DIS, NOM, DAM, DSC). The metrics which included in the metrics suite is QMOOD, MOOD. Table -1: Evaluated Code Smells CODE SMELLS RISK TYPE Duplicated code High Long Method High Large Class High Long Parameter List High 4.1 A Evaluated Code Smell We focused four kinds of code smells at an initial stage. The evaluated code smells are listed in the Table 1. A short explanation of these code smells is obtainable here so that the paper can be understood on its own. We evaluate the relationship between these code smells and form the resolution sequence and we also recommend this resolution for commonly occurring code smells.  Duplicated Code: The same code appears more than one location in a program is considered as a duplicated code.  Long Method: The method which is harder to read or modify is consider as a long method. As a result long or complex method should be divided in to easy and well- named methods associates with the refactoring rules.  Large Class: Large class consists of too many functions and tasks, which it making complex and confuse. To improve the understandability, the large class should be divided and assigns responsibilities in to simple ones.  Long Parameter List: In programs, the methods which contain too many parameters are difficult to use and also difficult to alter. The parameters can be reduced by using simple objects. 5. RESOLUTION SEQUENCE OF CODE SMELLS In this section, the recommended resolution sequence (Figure 2) is formed for the evaluated code smell. The directed graph is drawn based on the priority of the code smell and topological sorting algorithm is used to find the optimal sequence for the evaluated code smells. The topological sorting algorithm is desirable at the time of two or more vertices are available by using this algorithm randomly picks up the values which doesn’t affect the original behavior of the system. Fig -2: Resolution Sequence of Code Smell 6. MULTI STEP REFACTORING The software refactoring is usually carried out in two ways. The First is refactoring in small step, in this method the refactoring is done with small size (scope for local files) and the second is refactoring is done systematically which attempt to refactor the whole system at an instance. In this paper we propose the multi step software refactoring. We extract the original source code in to design level is presented in figure 3; it proposes new design model for the source code and explores the design. This design level improves software refactoring by initiates the multi step refactoring. The refactoring steps are: model evaluation, extract design, preferred design and refactoring. This multi- step software refactoring is resultant from the automated search based refactoring and it overcomes the problem in fully automated approach were by using an automated JDEv a tool in an Eclipse integrated environment. Fig -3: Multi Step Software Refactoring The terms which we used in the multi step software refactoring is described for better understanding the concepts. Original source code consists of smells that is to be refactored Preferred Design Preferred Design Preferred Design Model EvaluationOriginal Source Code Refactoring Extract Design Refactored Code Duplicated code Long Method Large Class Long Parameter
  • 4. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 03 Issue: 03 | Mar-2014, Available @ http://www.ijret.org 281 and the model evaluation step the model should be evaluated from the original source code. This model established according to the UML meta-model. Extract Design: The design extracted from the model evaluation, the design level may changes according to the change in the evaluation of the model. The preferred design based on the UML model based on the original source code by explores a new design but updating the information based on the programmer needs. Refactoring: In this process the multi step refactoring is categorized in to detected and source level refactoring. The detected refactoring focus on design-level occurrences The source level refactoring proposes the refactoring directly on source code. Refactored Code: The refactoring is a process to clean up code smells in the original source code and getting the refactored code. 7. RESULTS AND DISCUSSION Software refactoring can be carried out in multi-step automated refactoring approach and the results are presented in Table 2. Refactoring is carried out in Combinational Optimization for Design Improvement which supports Java 6 and several search types, it includes Java Source Metric to measure the metrics of Java source code. It is an Eclipse plug- in, detailed information of the simulation are presented and compared in Figure 4. From the figure, we observe that multi- step software refactoring approach has better results when compared to semi automated refactoring. Carrying out evaluation on these applications may help simplify the conclusions. Fig -4: Automation levels for refactoring tools The multi-step software refactoring shows the results of automated refactoring and the semi automated refactoring has taken undefined time to perform refactoring on detected code smell. The semi automated approach depends on man power and their performance but our proposed approach based on detection and refactoring tools. So, the evaluation results confirm the better performance on multi-step refactoring. 8. CONCLUSIONS AND FUTURE WORK The different kinds of code smells are first annoyed and described the resolution sequence of various kinds of code smells, then proposes the final resolution sequence for commonly occurring code smells. Then we also illustrate the multi-step software refactoring for clean up the code smells automatically. These results the code smell can be detected and resolved automatically. The main goal of our future work in this area is too carried out the automated refactoring for various kinds of code smells as we focused only four types. The rest of the remaining code smells are detected and refactored by using our multi step software refactoring approach or by using the fully automated framework code-imp for refactoring. REFERENCES [1] Hui Liu and Weizhong, “Schedule of Bad Smell Detection and Resolution: A New Way to Save Effort,”IEEE Trans. Software Eng., vol. 38, no. 1, pp. 220-235, Feb. 2012. [2] Mens and T. Touwe, “A Survey of Software Refactoring,”IEEE Trans. Software Eng., vol. 30, no. 2, pp. 126-139, Feb. 2004. [3] Moghadam and M. ´O Cinn´eide, “Code-Imp: a tool for automated search-based refactoring,” in Proceeding of the 4th workshop on Refactoring tools, ser. WRT ’11. New York, NY, USA: ACM, 2011, pp. 41–44. [4] F.Tip, A.Kiezun, and D.Baeumer, “Refactoring for Generalization Using Type Constraints,” Proc. 18th Ann. Conf. Object- Oriented Programming Systems, Languages, and Applications, pp. 13- 26, Oct. 2003. [5] Eclipse Foundation. Eclipse 3.4.2. http://www.eclipse.org/emft/projects/, 2011. [6] Burd and J. Bailey, “Evaluating Clone Detection Tools for Use During Preventative Maintenance,” Proc. Second IEEE Int’l Workshop Source Code Analysis and Manipulation, pp. 36-43, Oct. 2002. [7] Wettel and R. Marinescu, “Archeology of Code Duplication: Recovering Duplication Chains from Small Duplication Fragments,” Proc. Seventh Int’l Symp. Symbolic and Numeric Algorithms for Scientific Computing, p. 63, 2005. BIOGRAPHIES M. Lakshmanan received the M.E degree in Software Engineering from Anna University in 2013. He is an assistant professor in the CSE department at the Gnanamani College of Engineering. His current research interests include software refactoring, design pattern, and software evolution.
  • 5. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 03 Issue: 03 | Mar-2014, Available @ http://www.ijret.org 282 S. Manikandan, P.G Scholar, department of Computer Science and Engineering at the Gnanamani College of Engineering He is particularly interested in software engineering, testing, object-oriented technologies and software reuse.