Program |
 |
|
|
Find in Program |
 |
|
|
Page |
 |
|
|
Basket |
 |
|
view, help
"Smell Detection for Eclipse"
|
|
|
|
Smell Detection for Eclipse
Courtyard, Demo room 1 Thursday, 10:30, 45 minutes 7 | · | 8 | · | 9 | · | 10 | · | 11 | · | 12 | · | 13 | · | 14 | · | 15 | · | 16 | · | 17 | · | 18 | · | 19 | · | 20 | · | 21 |
This event is also being given Tuesday at 11:30.
Robert Fuhrer, IBM T.J. Watson Research Center Arnab Bhattacharyya, MIT
Demonstration number: 12
We demonstrate a new smell detection framework for
Java, implemented for the Eclipse IDE (www.eclipse.org). Smells are
architectural, rather than functional, flaws in software that tend to
reduce maintainability, extensibility, modularity, testability, or
other software quality measures. Common smells include overly-long
method bodies, message chains, parallel inheritance, use of switch
statements to implement polymorphic behavior, data clumps, overly
specific variable types, and duplicated code. Code duplication in
particular is a well-known source of maintenance problems. Because
smells do not represent functional flaws, they can be remediated by
behavior-preserving transformations (refactorings).
We have implemented an extensible smell detection framework in Eclipse
that provides a simple Eclipse extension point for defining smell
detectors, along with several basic smell detectors, including an
efficient code duplication detector. Several of our smell detectors
feature Eclipse quick-fix refactorings to automatically remediate
smells upon the user's request. This transforms the tool from a mere
problem indicator into a tool that actively assists developers in
improving their code. We believe that such a facility has significant
potential in educational settings, in directing a student's attention
to software engineering principles while coding.
Our demonstration consists of two parts. First, we'll demonstrate
some of our smell detectors on realistic source code bases (including
Eclipse itself), along with their corresponding quick-fix support.
Second, we'll walk through the implementation of a very simple smell
detector within our framework, along with a very simple remediation.
|