Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
LES | DI | PUC-Rio - Brasil OPUS Research Group
Refactoring Impact on Software Maintainability
Diego Cedrim
–Martin Fowler
“A change made to the internal structure of software to make it easier to understand and
cheaper to modify without changing its observable behavior.”
3
–Kent Beck
“A code smell is a surface indication that usually corresponds to a deeper problem in the
system.”
4
Refactoring is the process of improving the structure of a program without changing its behavior
Code smells can be used as an indication of relevant structural problems
Refactoring can be used to remove code smells
Software maintainability is increased when code smells are removed
Refactoring / Code Smells
5
Do refactoring activities improve software maintainability after the
transformations?
Dataset: 13 versions of the version histories of OODT, Heath Watcher and Mobile Media systems
Method: for each pair of versions, we compute the number of anomalies before and after each refactoring
Analysis: observe the behavior of increasing or decreasing number of anomalies
Used Solving Method
8
Code Smells Number After Refactoring
9
Increased Decreased Unchanged
24
910
Inspiration
10
RQ1: Do refactoring activities improve software maintainability after the transformations?
RQ2: Is there any pattern between refactoring types and created/removed code smells?
Research Questions
11
Ref-Finder: Refactoring Activities Collection
!
PMD: Code smell detector
!
Target: GitHub
New Solving Method
12
Ref-Finder run as a Eclipse plugin
How to run it outside of Eclipse?
!
False positives/negatives
Unsolved Problems
13
LES | DI | PUC-Rio - Brasil OPUS Research Group
Refactoring Impact on Software Maintainability
Diego Cedrim