40. Similaridade Estrutural
c l a s s Bar extends X { c l a s s Foo extends X {
A a ; B b ;
B b ; G g ;
exampleBar ( D d ){ exampleFoo ( E e ){
a . f ( ) ; e . j ( ) ;
d . g ( ) ; new A ( ) . f ()
} }
} }
Ricardo Terra (rterrabh [at] gmail.com) AEC: Aplicações Agosto, 2015 33 / 40
41. Similaridade Estrutural
c l a s s Bar extends X { c l a s s Foo extends X {
A a ; B b ;
B b ; G g ;
exampleBar ( D d ){ exampleFoo ( E e ){
a . f ( ) ; e . j ( ) ;
d . g ( ) ; new A ( ) . f ()
} }
} }
U = {A, B, C, D, E, F, G, X, Y } =⇒
a = 3, b = 1 , c = 2, d = 3
Ricardo Terra (rterrabh [at] gmail.com) AEC: Aplicações Agosto, 2015 33 / 40
42. Similaridade Estrutural
c l a s s Bar extends X { c l a s s Foo extends X {
A a ; B b ;
B b ; G g ;
exampleBar ( D d ){ exampleFoo ( E e ){
a . f ( ) ; e . j ( ) ;
d . g ( ) ; new A ( ) . f ()
} }
} }
U = {A, B, C, D, E, F, G, X, Y } =⇒
a = 3, b = 1 , c = 2, d = 3
Similaridade → 0.5
Ricardo Terra (rterrabh [at] gmail.com) AEC: Aplicações Agosto, 2015 33 / 40
43. Refatoração – Extract/Move Method
publicgclassgCg{
gg...
ggvoidgmethodM(Aga)g{
ggggFoogfg=gnewgFoo();
ggggifg(x)g{
ggggggdoA(a);
ggggggintgyg=ggetY();
ggggggy++;
ggggggdoB();
gggg}
ggggsuper.methodM();
gg}
gg...
}
A B C
candidate
1
2
3
4
Generation of Candidates Scoring Function Ranking and Filtering
Extract Method
Recommendations
Source Code
JExtract
Ricardo Terra (rterrabh [at] gmail.com) AEC: Aplicações Agosto, 2015 34 / 40