JMove: A novel heuristic and tool to detect move method refactoring opportunities

•A novel heuristic to detect Move Method refactoring opportunities based on static dependencies.•The implementation of the proposed heuristic as an Eclipse plug-in, named JMove.•Two evaluations including (i) 10 open-source systems and (ii) two industrial-strength systems.•A comparative study with th...

Full description

Saved in:
Bibliographic Details
Published inThe Journal of systems and software Vol. 138; pp. 19 - 36
Main Authors Terra, Ricardo, Valente, Marco Tulio, Miranda, Sergio, Sales, Vitor
Format Journal Article
LanguageEnglish
Published Elsevier Inc 01.04.2018
Subjects
Online AccessGet full text
ISSN0164-1212
1873-1228
DOI10.1016/j.jss.2017.11.073

Cover

Abstract •A novel heuristic to detect Move Method refactoring opportunities based on static dependencies.•The implementation of the proposed heuristic as an Eclipse plug-in, named JMove.•Two evaluations including (i) 10 open-source systems and (ii) two industrial-strength systems.•A comparative study with three state-of-the-art techniques (JDeodorant, inCode, and Methodbook).•JMove overcomes state-of-the-art techniques when providing recommendations for large methods. This paper presents a recommendation approach that suggests Move Method refactorings using the static dependencies established by methods. This approach, implemented in a publicly available tool called JMove, compares the similarity of the dependencies established by a method with the dependencies established by the methods in possible target classes. We first evaluate JMove using 195 Move Method refactoring opportunities, synthesized in 10 open-source systems. In this evaluation, JMove precision ranges from 21% (small methods) to 32% (large methods) and its median recall ranges from 21% (small methods) to 60% (large methods). In the same scenario, JDeodorant, which is a state-of-the-art Move Method recommender, has a maximal precision of 15% (large methods) and a maximal median recall of 40% (small methods). Therefore, we claim that JMove is specially useful to provide recommendations for large methods. We reinforce this claim by means of two other studies. First, by investigating the overlapping of the recommendations provided by JMove and three other recommenders (JDeodorant, inCode, and Methodbook). Second, by validating JMove and JDeodorant recommendations with experts in two industrial-strength systems.
AbstractList •A novel heuristic to detect Move Method refactoring opportunities based on static dependencies.•The implementation of the proposed heuristic as an Eclipse plug-in, named JMove.•Two evaluations including (i) 10 open-source systems and (ii) two industrial-strength systems.•A comparative study with three state-of-the-art techniques (JDeodorant, inCode, and Methodbook).•JMove overcomes state-of-the-art techniques when providing recommendations for large methods. This paper presents a recommendation approach that suggests Move Method refactorings using the static dependencies established by methods. This approach, implemented in a publicly available tool called JMove, compares the similarity of the dependencies established by a method with the dependencies established by the methods in possible target classes. We first evaluate JMove using 195 Move Method refactoring opportunities, synthesized in 10 open-source systems. In this evaluation, JMove precision ranges from 21% (small methods) to 32% (large methods) and its median recall ranges from 21% (small methods) to 60% (large methods). In the same scenario, JDeodorant, which is a state-of-the-art Move Method recommender, has a maximal precision of 15% (large methods) and a maximal median recall of 40% (small methods). Therefore, we claim that JMove is specially useful to provide recommendations for large methods. We reinforce this claim by means of two other studies. First, by investigating the overlapping of the recommendations provided by JMove and three other recommenders (JDeodorant, inCode, and Methodbook). Second, by validating JMove and JDeodorant recommendations with experts in two industrial-strength systems.
Author Terra, Ricardo
Sales, Vitor
Miranda, Sergio
Valente, Marco Tulio
Author_xml – sequence: 1
  givenname: Ricardo
  surname: Terra
  fullname: Terra, Ricardo
  email: terra@dcc.ufla.br
  organization: Department of Computer Science, Federal University of Lavras, Lavras, Brazil
– sequence: 2
  givenname: Marco Tulio
  surname: Valente
  fullname: Valente, Marco Tulio
  email: mtov@dcc.ufmg.br
  organization: Department of Computer Science, Federal University of Minas Gerais, Belo Horizonte, Brazil
– sequence: 3
  givenname: Sergio
  surname: Miranda
  fullname: Miranda, Sergio
  email: sergio.miranda@dcc.ufmg.br
  organization: Department of Computer Science, Federal University of Minas Gerais, Belo Horizonte, Brazil
– sequence: 4
  givenname: Vitor
  surname: Sales
  fullname: Sales, Vitor
  email: vitormsales@dcc.ufmg.br
  organization: Department of Computer Science, Federal University of Minas Gerais, Belo Horizonte, Brazil
BookMark eNp9kM9OAyEQh4mpiW31AbzxArsy7B-onppGq6bGmOiZUGAtmy00QJv49tLUk4deGCDzTeb3TdDIeWcQugVSAoH2ri_7GEtKgJUAJWHVBRoDZ1UBlPIRGueeOt-BXqFJjD0hhFFCx-jj9c0fzD2eY5frgDdmH2xMVmHpNE7eD_nA2iSjEt7mFrw1aeM1DqaTKvlg3Tf2u50Pae9ssiZeo8tODtHc_NUp-np6_Fw8F6v35ctivipU1VapkLwBwglQrmrCgbecQdMwKdU6_zQVrfWs5o1ULde6I3Xd6dm6Ob4lzzF0NUVwmquCjzGvI3bBbmX4EUDE0YnoRXYijk4EgMhOMsP-Mcommax3KUg7nCUfTqTJkQ7WBBGVNU4ZbUNWI7S3Z-hfmcR-TA
CitedBy_id crossref_primary_10_1080_08874417_2023_2203088
crossref_primary_10_1016_j_jss_2020_110610
crossref_primary_10_1016_j_infsof_2021_106539
crossref_primary_10_1016_j_jss_2019_110420
crossref_primary_10_1109_TSE_2019_2936376
crossref_primary_10_1007_s10664_020_09809_8
crossref_primary_10_1002_smr_2395
crossref_primary_10_1007_s11432_023_4127_5
crossref_primary_10_1007_s10515_023_00400_1
crossref_primary_10_1016_j_ins_2024_121753
crossref_primary_10_1007_s10664_020_09871_2
crossref_primary_10_1002_cpe_7531
crossref_primary_10_1016_j_infsof_2024_107515
crossref_primary_10_1007_s10664_023_10438_0
crossref_primary_10_1007_s11771_020_4576_7
crossref_primary_10_1002_smr_2403
crossref_primary_10_1007_s10664_023_10287_x
crossref_primary_10_1007_s10664_021_10023_3
crossref_primary_10_1109_TSE_2021_3117023
crossref_primary_10_1007_s42979_024_02956_5
crossref_primary_10_1007_s10515_024_00476_3
crossref_primary_10_1109_ACCESS_2018_2868990
crossref_primary_10_1016_j_swevo_2022_101101
crossref_primary_10_1155_2022_7960610
crossref_primary_10_1145_3715110
crossref_primary_10_1109_TR_2022_3159851
Cites_doi 10.1109/MS.2009.161
10.1145/2559935
10.1109/TSE.2004.1265817
10.1111/j.1365-2929.2004.02012.x
10.1109/TSE.2006.31
10.1109/TSE.2012.19
10.1145/2507288.2507314
10.1214/09-AOAS309
10.1016/j.jss.2012.04.013
10.1109/TSE.2007.1019
10.1109/TSE.2009.1
10.1016/j.jss.2011.05.016
ContentType Journal Article
Copyright 2017 Elsevier Inc.
Copyright_xml – notice: 2017 Elsevier Inc.
DBID AAYXX
CITATION
DOI 10.1016/j.jss.2017.11.073
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 1873-1228
EndPage 36
ExternalDocumentID 10_1016_j_jss_2017_11_073
S0164121217302960
GroupedDBID --K
--M
-~X
.DC
.~1
0R~
1B1
1~.
1~5
29L
4.4
457
4G.
5GY
5VS
7-5
71M
8P~
9JN
9M8
AABNK
AACTN
AAEDT
AAEDW
AAIKJ
AAKOC
AALRI
AAOAW
AAQFI
AAQXK
AAXUO
AAYFN
AAYOK
ABBOA
ABEFU
ABFNM
ABFRF
ABFSI
ABJNI
ABMAC
ABTAH
ABXDB
ABYKQ
ACDAQ
ACGFO
ACGFS
ACGOD
ACNNM
ACRLP
ACZNC
ADBBV
ADEZE
ADHUB
ADJOM
ADMUD
AEBSH
AEFWE
AEKER
AENEX
AFKWA
AFTJW
AGHFR
AGUBO
AGYEJ
AHHHB
AHZHX
AI.
AIALX
AIEXJ
AIKHN
AITUG
AJBFU
AJOXV
ALMA_UNASSIGNED_HOLDINGS
AMFUW
AMRAJ
AOUOD
ASPBG
AVWKF
AXJTR
AZFZN
BKOJK
BKOMP
BLXMC
CS3
DU5
E.L
EBS
EFJIC
EFLBG
EJD
EO8
EO9
EP2
EP3
FDB
FEDTE
FGOYB
FIRID
FNPLU
FYGXN
G-Q
G8K
GBLVA
GBOLZ
HLZ
HVGLF
HZ~
IHE
J1W
KOM
LG9
M41
MO0
MS~
N9A
O-L
O9-
OAUVE
OZT
P-8
P-9
P2P
PC.
PQQKQ
Q38
R2-
RIG
RNS
ROL
RPZ
RXW
SBC
SDF
SDG
SDP
SES
SEW
SPC
SPCBC
SSV
SSZ
T5K
TAE
TN5
TWZ
UHS
UNMZH
VH1
WUQ
XPP
ZMT
ZY4
~G-
AATTM
AAXKI
AAYWO
AAYXX
ABDPE
ABWVN
ACRPL
ACVFH
ADCNI
ADNMO
AEIPS
AEUPX
AFJKZ
AFPUW
AFXIZ
AGCQF
AGQPQ
AGRNS
AIGII
AIIUN
AKBMS
AKRWK
AKYEP
ANKPU
APXCP
BNPGV
CITATION
SSH
ID FETCH-LOGICAL-c363t-a851080128c408186871557aacb8c45324d9485ac68ddf044fd9b55ac6a8212d3
IEDL.DBID AIKHN
ISSN 0164-1212
IngestDate Thu Apr 24 23:10:51 EDT 2025
Tue Jul 01 03:45:07 EDT 2025
Fri Feb 23 02:33:18 EST 2024
IsPeerReviewed true
IsScholarly true
Keywords Recommendation systems
Methodbook
JMove
JDeodorant
Dependency sets
Move method refactorings
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-c363t-a851080128c408186871557aacb8c45324d9485ac68ddf044fd9b55ac6a8212d3
PageCount 18
ParticipantIDs crossref_primary_10_1016_j_jss_2017_11_073
crossref_citationtrail_10_1016_j_jss_2017_11_073
elsevier_sciencedirect_doi_10_1016_j_jss_2017_11_073
ProviderPackageCode CITATION
AAYXX
PublicationCentury 2000
PublicationDate April 2018
2018-04-00
PublicationDateYYYYMMDD 2018-04-01
PublicationDate_xml – month: 04
  year: 2018
  text: April 2018
PublicationDecade 2010
PublicationTitle The Journal of systems and software
PublicationYear 2018
Publisher Elsevier Inc
Publisher_xml – name: Elsevier Inc
References Tsantalis, Chatzigeorgiou (bib0043) 2011; 84
Seng, Stammel, Burkhart (bib0031) 2006
Robillard, Walker, Zimmermann (bib0028) 2010; 27
Moghadam, Ó Cinnéide (bib0021) 2012
Tsantalis, Chatzigeorgiou (bib0042) 2009; 36
Bavota, Gethers, Oliveto, Poshyvanyk, Lucia (bib0002) 2014; 23
Baxter, Frean, Noble, Rickerby, Smith, Visser, Melton, Tempero (bib0004) 2006
Marinescu, Marinescu, Mihancea, Wettel (bib0015) 2005
Yamashita, Moonen (bib0044) 2012
O’Keeffe, Cinnéide (bib0022) 2006
Chang, Blei (bib0005) 2010; 4
Oliveira, Valente, Lima (bib0023) 2014
Silva, Terra, Valente (bib0032) 2014
Terra, Valente, Czarnecki, Bigonha (bib0040) 2015; 45
Mens, Tourwé (bib0017) 2004; 30
Opdyke (bib0025) 1992
Dit, Revelle, Gethers, Poshyvanyk (bib0007) 2013
Terra, Miranda, Valente, Bigonha (bib0037) 2013; 38
Sales, Terra, Miranda, Valente (bib0029) 2013
Fokaefs, Tsantalis, Chatzigeorgiou (bib0008) 2007
Oliveto, Gethers, Bavota, Poshyvanyk, De Lucia (bib0024) 2011
Steimann, Thies (bib0035) 2009
Marinescu (bib0016) 2004
Trifu, Marinescu (bib0041) 2005
Jamieson (bib0011) 2004; 38
Terra, Valente (bib0039) 2009; 32
Riehle (bib0027) 1992
Moghadam, Ó Cinnéide (bib0020) 2011
Fowler (bib0010) 1999
Simon, Steinbrückner, Lewerentz (bib0033) 2001
Bavota, Oliveto, Gethers, Poshyvanyk, Lucia (bib0003) 2014; 99
Kataoka, Notkin, Ernst, Griswold (bib0012) 2001
Terra, Valente (bib0038) 2008
Lanza, Marinescu (bib0013) 2006
Soares, Gheyi, Massoni (bib0034) 2013; 39
Anquetil, Lethbridge (bib0001) 1999
Tempero, Anslow, Dietrich, Han, Li, Lumpe, Melton, Noble (bib0036) 2010
Fokaefs, Tsantalis, Stroulia, Chatzigeorgiou (bib0009) 2012; 85
Mihancea, Marinescu (bib0018) 2005
Schäefer, de Moor (bib0030) 2010
Concas, Marchesi, Pinna, Serra (bib0006) 2007; 33
Mitchell, Mancoridis (bib0019) 2006; 32
Lanza, Marinescu, Ducasse (bib0014) 2005
Palomba, Bavota, Penta, Oliveto, de Lucia, Poshyvanyk (bib0026) 2013
Marinescu (10.1016/j.jss.2017.11.073_bib0015) 2005
Mitchell (10.1016/j.jss.2017.11.073_bib0019) 2006; 32
Palomba (10.1016/j.jss.2017.11.073_bib0026) 2013
Tempero (10.1016/j.jss.2017.11.073_bib0036) 2010
Terra (10.1016/j.jss.2017.11.073_bib0039) 2009; 32
Yamashita (10.1016/j.jss.2017.11.073_bib0044) 2012
Anquetil (10.1016/j.jss.2017.11.073_bib0001) 1999
Robillard (10.1016/j.jss.2017.11.073_bib0028) 2010; 27
Terra (10.1016/j.jss.2017.11.073_bib0037) 2013; 38
Dit (10.1016/j.jss.2017.11.073_bib0007) 2013
Silva (10.1016/j.jss.2017.11.073_bib0032) 2014
O’Keeffe (10.1016/j.jss.2017.11.073_bib0022) 2006
Steimann (10.1016/j.jss.2017.11.073_bib0035) 2009
Concas (10.1016/j.jss.2017.11.073_bib0006) 2007; 33
Fokaefs (10.1016/j.jss.2017.11.073_bib0008) 2007
Seng (10.1016/j.jss.2017.11.073_bib0031) 2006
Bavota (10.1016/j.jss.2017.11.073_bib0003) 2014; 99
Moghadam (10.1016/j.jss.2017.11.073_bib0021) 2012
Schäefer (10.1016/j.jss.2017.11.073_bib0030) 2010
Tsantalis (10.1016/j.jss.2017.11.073_bib0042) 2009; 36
Opdyke (10.1016/j.jss.2017.11.073_bib0025) 1992
Terra (10.1016/j.jss.2017.11.073_bib0040) 2015; 45
Mens (10.1016/j.jss.2017.11.073_bib0017) 2004; 30
Jamieson (10.1016/j.jss.2017.11.073_bib0011) 2004; 38
Chang (10.1016/j.jss.2017.11.073_bib0005) 2010; 4
Riehle (10.1016/j.jss.2017.11.073_bib0027) 1992
Trifu (10.1016/j.jss.2017.11.073_bib0041) 2005
Tsantalis (10.1016/j.jss.2017.11.073_bib0043) 2011; 84
Sales (10.1016/j.jss.2017.11.073_bib0029) 2013
Lanza (10.1016/j.jss.2017.11.073_bib0013) 2006
Soares (10.1016/j.jss.2017.11.073_bib0034) 2013; 39
Baxter (10.1016/j.jss.2017.11.073_bib0004) 2006
Marinescu (10.1016/j.jss.2017.11.073_bib0016) 2004
Simon (10.1016/j.jss.2017.11.073_bib0033) 2001
Bavota (10.1016/j.jss.2017.11.073_bib0002) 2014; 23
Terra (10.1016/j.jss.2017.11.073_bib0038) 2008
Kataoka (10.1016/j.jss.2017.11.073_bib0012) 2001
Fowler (10.1016/j.jss.2017.11.073_bib0010) 1999
Fokaefs (10.1016/j.jss.2017.11.073_bib0009) 2012; 85
Lanza (10.1016/j.jss.2017.11.073_bib0014) 2005
Oliveira (10.1016/j.jss.2017.11.073_bib0023) 2014
Oliveto (10.1016/j.jss.2017.11.073_bib0024) 2011
Moghadam (10.1016/j.jss.2017.11.073_bib0020) 2011
Mihancea (10.1016/j.jss.2017.11.073_bib0018) 2005
References_xml – volume: 23
  start-page: 1
  year: 2014
  end-page: 33
  ident: bib0002
  article-title: Improving software modularization via automated analysis of latent topics and dependencies
  publication-title: ACM Trans. Softw. Eng. Methodol.
– start-page: 519
  year: 2007
  end-page: 520
  ident: bib0008
  article-title: JDeodorant: identification and removal of feature envy bad smells
  publication-title: Proceedings of the 23rd International Conference on Software Maintenance (ICSM)
– start-page: 92
  year: 2005
  end-page: 101
  ident: bib0018
  article-title: Towards the optimization of automatic detection of design flaws in object-oriented software systems
  publication-title: Proceedings of the 9th European Conference on Software Maintenance and Reengineering (CSMR)
– volume: 4
  start-page: 124
  year: 2010
  end-page: 150
  ident: bib0005
  article-title: Hierarchical relational models for document networks
  publication-title: Ann. Appl. Stat.
– start-page: 820
  year: 2011
  end-page: 823
  ident: bib0024
  article-title: Identifying method friendships to remove the feature envy bad smell
  publication-title: Proceedings of the 33rd International Conference on Software Engineering (ICSE), NIER track
– year: 1992
  ident: bib0025
  publication-title: Refactoring Object-Oriented Frameworks
– start-page: 286
  year: 2010
  end-page: 301
  ident: bib0030
  article-title: Specifying and implementing refactorings
  publication-title: Proceedings of the 25th Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)
– start-page: 1909
  year: 2006
  end-page: 1916
  ident: bib0031
  article-title: Search-based determination of refactorings for improving the class structure of object-oriented systems
  publication-title: Proceedings of the 8th Conference on Genetic and Evolutionary Computation (GECCO)
– start-page: 77
  year: 2005
  end-page: 80
  ident: bib0015
  article-title: iPlasma: an integrated platform for quality assessment of object-oriented design
  publication-title: Proceedings of the 21st International Conference on Software Maintenance (ICSM), Industrial and Tool Volume
– volume: 45
  start-page: 315
  year: 2015
  end-page: 342
  ident: bib0040
  article-title: A recommendation system for repairing violations detected by static architecture conformance checking
  publication-title: Softw.: Pract. Exp.
– volume: 38
  start-page: 1
  year: 2013
  end-page: 4
  ident: bib0037
  article-title: Qualitas.class corpus: a compiled version of the qualitas corpus
  publication-title: Softw. Eng. Notes
– start-page: 235
  year: 1999
  end-page: 255
  ident: bib0001
  article-title: Experiments with clustering as a software remodularization method
  publication-title: Proceedings of the 6th Working Conference on Reverse Engineering (WCRE)
– start-page: 30
  year: 2001
  end-page: 38
  ident: bib0033
  article-title: Metrics based refactoring
  publication-title: Proceedings of the 5th European Conference on Software Maintenance and Reengineering (CSMR)
– start-page: 53
  year: 2013
  end-page: 95
  ident: bib0007
  article-title: Feature location in source code: a taxonomy and survey
  publication-title: J. Softw.: Evol. Process
– volume: 30
  start-page: 126
  year: 2004
  end-page: 139
  ident: bib0017
  article-title: A survey of software refactoring
  publication-title: IEEE Trans. Softw. Eng.
– volume: 39
  start-page: 147
  year: 2013
  end-page: 162
  ident: bib0034
  article-title: Automated behavioral testing of refactoring engines
  publication-title: IEEE Trans. Softw. Eng.
– volume: 85
  start-page: 2241
  year: 2012
  end-page: 2260
  ident: bib0009
  article-title: Identification and application of extract class refactorings in object-oriented systems
  publication-title: J. Syst. Softw.
– start-page: 11
  year: 2013
  end-page: 15
  ident: bib0026
  article-title: Detecting bad smells in source code using change history information
  publication-title: Proceedings of the 28th International Conference on Automated Software Engineering (ASE)
– year: 1999
  ident: bib0010
  publication-title: Refactoring: Improving the Design of Existing Code
– volume: 32
  start-page: 1073
  year: 2009
  end-page: 1094
  ident: bib0039
  article-title: A dependency constraint language to manage object-oriented software architectures
  publication-title: Softw.: Pract. Exp.
– volume: 32
  start-page: 193
  year: 2006
  end-page: 208
  ident: bib0019
  article-title: On the automatic modularization of software systems using the bunch tool
  publication-title: IEEE Trans. Softw. Eng.
– start-page: 155
  year: 2005
  end-page: 164
  ident: bib0041
  article-title: Diagnosing design problems in object oriented systems
  publication-title: Proceedings of the 12th Working Conference on Reverse Engineering (WCRE)
– start-page: 41
  year: 2011
  end-page: 44
  ident: bib0020
  article-title: Code-imp: a tool for automated search-based refactoring
  publication-title: Proceedings of the 4th Workshop on Refactoring Tools (WRT)
– start-page: 232
  year: 2013
  end-page: 241
  ident: bib0029
  article-title: Recommending move method refactorings using dependency sets
  publication-title: Proceedings of the 20th Working Conference on Reverse Engineering (WCRE)
– start-page: 350
  year: 2004
  end-page: 359
  ident: bib0016
  article-title: Detection strategies: metrics-based rules for detecting design flaws
  publication-title: Proceedings of the 20th International Conference on Software Maintenance (ICSM)
– volume: 84
  start-page: 1757
  year: 2011
  end-page: 1782
  ident: bib0043
  article-title: Identification of extract method refactoring opportunities for the decomposition of methods
  publication-title: J. Syst. Softw.
– start-page: 254
  year: 2014
  end-page: 263
  ident: bib0023
  article-title: Extracting relative thresholds for source code metrics
  publication-title: Proceedings of the IEEE Conference on Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE)
– start-page: 397
  year: 2006
  end-page: 412
  ident: bib0004
  article-title: Understanding the shape of Java software
  publication-title: Proceedings of the 21st Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)
– start-page: 336
  year: 2010
  end-page: 345
  ident: bib0036
  article-title: The Qualitas Corpus: a curated collection of Java code for empirical studies
  publication-title: Proceedings of the 17th Asia Pacific Software Engineering Conference (APSEC)
– start-page: 306
  year: 2012
  end-page: 315
  ident: bib0044
  article-title: Do code smells reflect important maintainability aspects?
  publication-title: Proceedings of the 28th IEEE International Conference on Software Maintenance (ICSM)
– volume: 33
  start-page: 687
  year: 2007
  end-page: 708
  ident: bib0006
  article-title: Power-laws in a large object-oriented software system
  publication-title: IEEE Trans. Softw. Eng.
– start-page: 43
  year: 2012
  end-page: 52
  ident: bib0021
  article-title: Automated refactoring using design differencing
  publication-title: Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR)
– start-page: 419
  year: 2009
  end-page: 443
  ident: bib0035
  article-title: From public to private to absent: refactoring Java programs under constrained accessibility
  publication-title: Proceedings of the 23rd European Conference on Object-Oriented Programming (ECOOP)
– start-page: 1
  year: 2006
  end-page: 220
  ident: bib0013
  publication-title: Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems
– start-page: 1
  year: 2014
  end-page: 11
  ident: bib0032
  article-title: Recommending automated Extract Method refactorings
  publication-title: Proceedings of the 22nd International Conference on Program Comprehension (ICPC)
– year: 2005
  ident: bib0014
  publication-title: Object-Oriented Metrics in practice
– start-page: 249
  year: 2006
  end-page: 260
  ident: bib0022
  article-title: Search-based software maintenance
  publication-title: Proceedings of the 10th European Conference on Software Maintenance and Reengineering (CSMR)
– volume: 99
  start-page: 1
  year: 2014
  end-page: 10
  ident: bib0003
  article-title: Methodbook: recommending move method refactorings via relational topic models
  publication-title: IEEE Trans. Softw. Eng.
– year: 1992
  ident: bib0027
  publication-title: Framework Design: A Role Modeling Approach
– start-page: 736
  year: 2001
  end-page: 744
  ident: bib0012
  article-title: Automated support for program refactoring using invariants
  publication-title: Proceedings of the IEEE International Conference on Software Maintenance (ICSM)
– volume: 27
  start-page: 80
  year: 2010
  end-page: 86
  ident: bib0028
  article-title: Recommendation systems for software engineering
  publication-title: IEEE Softw.
– start-page: 256
  year: 2008
  end-page: 263
  ident: bib0038
  article-title: Towards a dependency constraint language to manage software architectures
  publication-title: Proceedings of the 2nd European Conference on Software Architecture (ECSA)
– volume: 38
  start-page: 1217
  year: 2004
  end-page: 1218
  ident: bib0011
  article-title: Likert scales: how to (ab)use them
  publication-title: Med. Educ.
– volume: 36
  start-page: 347
  year: 2009
  end-page: 367
  ident: bib0042
  article-title: Identification of move method refactoring opportunities
  publication-title: IEEE Trans. Softw. Eng.
– volume: 27
  start-page: 80
  issue: 4
  year: 2010
  ident: 10.1016/j.jss.2017.11.073_bib0028
  article-title: Recommendation systems for software engineering
  publication-title: IEEE Softw.
  doi: 10.1109/MS.2009.161
– volume: 32
  start-page: 1073
  issue: 12
  year: 2009
  ident: 10.1016/j.jss.2017.11.073_bib0039
  article-title: A dependency constraint language to manage object-oriented software architectures
  publication-title: Softw.: Pract. Exp.
– start-page: 235
  year: 1999
  ident: 10.1016/j.jss.2017.11.073_bib0001
  article-title: Experiments with clustering as a software remodularization method
– start-page: 736
  year: 2001
  ident: 10.1016/j.jss.2017.11.073_bib0012
  article-title: Automated support for program refactoring using invariants
– start-page: 306
  year: 2012
  ident: 10.1016/j.jss.2017.11.073_bib0044
  article-title: Do code smells reflect important maintainability aspects?
– start-page: 43
  year: 2012
  ident: 10.1016/j.jss.2017.11.073_bib0021
  article-title: Automated refactoring using design differencing
– start-page: 155
  year: 2005
  ident: 10.1016/j.jss.2017.11.073_bib0041
  article-title: Diagnosing design problems in object oriented systems
– volume: 23
  start-page: 1
  issue: 1
  year: 2014
  ident: 10.1016/j.jss.2017.11.073_bib0002
  article-title: Improving software modularization via automated analysis of latent topics and dependencies
  publication-title: ACM Trans. Softw. Eng. Methodol.
  doi: 10.1145/2559935
– volume: 30
  start-page: 126
  issue: 2
  year: 2004
  ident: 10.1016/j.jss.2017.11.073_bib0017
  article-title: A survey of software refactoring
  publication-title: IEEE Trans. Softw. Eng.
  doi: 10.1109/TSE.2004.1265817
– start-page: 249
  year: 2006
  ident: 10.1016/j.jss.2017.11.073_bib0022
  article-title: Search-based software maintenance
– start-page: 1
  year: 2006
  ident: 10.1016/j.jss.2017.11.073_bib0013
– volume: 99
  start-page: 1
  year: 2014
  ident: 10.1016/j.jss.2017.11.073_bib0003
  article-title: Methodbook: recommending move method refactorings via relational topic models
  publication-title: IEEE Trans. Softw. Eng.
– start-page: 1
  year: 2014
  ident: 10.1016/j.jss.2017.11.073_bib0032
  article-title: Recommending automated Extract Method refactorings
– volume: 38
  start-page: 1217
  issue: 12
  year: 2004
  ident: 10.1016/j.jss.2017.11.073_bib0011
  article-title: Likert scales: how to (ab)use them
  publication-title: Med. Educ.
  doi: 10.1111/j.1365-2929.2004.02012.x
– year: 2005
  ident: 10.1016/j.jss.2017.11.073_bib0014
– start-page: 336
  year: 2010
  ident: 10.1016/j.jss.2017.11.073_bib0036
  article-title: The Qualitas Corpus: a curated collection of Java code for empirical studies
– volume: 32
  start-page: 193
  issue: 3
  year: 2006
  ident: 10.1016/j.jss.2017.11.073_bib0019
  article-title: On the automatic modularization of software systems using the bunch tool
  publication-title: IEEE Trans. Softw. Eng.
  doi: 10.1109/TSE.2006.31
– start-page: 1909
  year: 2006
  ident: 10.1016/j.jss.2017.11.073_bib0031
  article-title: Search-based determination of refactorings for improving the class structure of object-oriented systems
– start-page: 397
  year: 2006
  ident: 10.1016/j.jss.2017.11.073_bib0004
  article-title: Understanding the shape of Java software
– start-page: 53
  year: 2013
  ident: 10.1016/j.jss.2017.11.073_bib0007
  article-title: Feature location in source code: a taxonomy and survey
  publication-title: J. Softw.: Evol. Process
– start-page: 232
  year: 2013
  ident: 10.1016/j.jss.2017.11.073_bib0029
  article-title: Recommending move method refactorings using dependency sets
– start-page: 30
  year: 2001
  ident: 10.1016/j.jss.2017.11.073_bib0033
  article-title: Metrics based refactoring
– start-page: 41
  year: 2011
  ident: 10.1016/j.jss.2017.11.073_bib0020
  article-title: Code-imp: a tool for automated search-based refactoring
– volume: 39
  start-page: 147
  issue: 2
  year: 2013
  ident: 10.1016/j.jss.2017.11.073_bib0034
  article-title: Automated behavioral testing of refactoring engines
  publication-title: IEEE Trans. Softw. Eng.
  doi: 10.1109/TSE.2012.19
– start-page: 419
  year: 2009
  ident: 10.1016/j.jss.2017.11.073_bib0035
  article-title: From public to private to absent: refactoring Java programs under constrained accessibility
– volume: 38
  start-page: 1
  issue: 5
  year: 2013
  ident: 10.1016/j.jss.2017.11.073_bib0037
  article-title: Qualitas.class corpus: a compiled version of the qualitas corpus
  publication-title: Softw. Eng. Notes
  doi: 10.1145/2507288.2507314
– year: 1992
  ident: 10.1016/j.jss.2017.11.073_bib0027
– volume: 4
  start-page: 124
  issue: 1
  year: 2010
  ident: 10.1016/j.jss.2017.11.073_bib0005
  article-title: Hierarchical relational models for document networks
  publication-title: Ann. Appl. Stat.
  doi: 10.1214/09-AOAS309
– year: 1999
  ident: 10.1016/j.jss.2017.11.073_bib0010
– volume: 85
  start-page: 2241
  issue: 10
  year: 2012
  ident: 10.1016/j.jss.2017.11.073_bib0009
  article-title: Identification and application of extract class refactorings in object-oriented systems
  publication-title: J. Syst. Softw.
  doi: 10.1016/j.jss.2012.04.013
– volume: 45
  start-page: 315
  issue: 3
  year: 2015
  ident: 10.1016/j.jss.2017.11.073_bib0040
  article-title: A recommendation system for repairing violations detected by static architecture conformance checking
  publication-title: Softw.: Pract. Exp.
– year: 1992
  ident: 10.1016/j.jss.2017.11.073_bib0025
– start-page: 350
  year: 2004
  ident: 10.1016/j.jss.2017.11.073_bib0016
  article-title: Detection strategies: metrics-based rules for detecting design flaws
– volume: 33
  start-page: 687
  issue: 10
  year: 2007
  ident: 10.1016/j.jss.2017.11.073_bib0006
  article-title: Power-laws in a large object-oriented software system
  publication-title: IEEE Trans. Softw. Eng.
  doi: 10.1109/TSE.2007.1019
– volume: 36
  start-page: 347
  issue: 3
  year: 2009
  ident: 10.1016/j.jss.2017.11.073_bib0042
  article-title: Identification of move method refactoring opportunities
  publication-title: IEEE Trans. Softw. Eng.
  doi: 10.1109/TSE.2009.1
– start-page: 519
  year: 2007
  ident: 10.1016/j.jss.2017.11.073_bib0008
  article-title: JDeodorant: identification and removal of feature envy bad smells
– start-page: 92
  year: 2005
  ident: 10.1016/j.jss.2017.11.073_bib0018
  article-title: Towards the optimization of automatic detection of design flaws in object-oriented software systems
– start-page: 11
  year: 2013
  ident: 10.1016/j.jss.2017.11.073_bib0026
  article-title: Detecting bad smells in source code using change history information
– start-page: 286
  year: 2010
  ident: 10.1016/j.jss.2017.11.073_bib0030
  article-title: Specifying and implementing refactorings
– volume: 84
  start-page: 1757
  issue: 10
  year: 2011
  ident: 10.1016/j.jss.2017.11.073_bib0043
  article-title: Identification of extract method refactoring opportunities for the decomposition of methods
  publication-title: J. Syst. Softw.
  doi: 10.1016/j.jss.2011.05.016
– start-page: 256
  year: 2008
  ident: 10.1016/j.jss.2017.11.073_bib0038
  article-title: Towards a dependency constraint language to manage software architectures
– start-page: 820
  year: 2011
  ident: 10.1016/j.jss.2017.11.073_bib0024
  article-title: Identifying method friendships to remove the feature envy bad smell
– start-page: 254
  year: 2014
  ident: 10.1016/j.jss.2017.11.073_bib0023
  article-title: Extracting relative thresholds for source code metrics
– start-page: 77
  year: 2005
  ident: 10.1016/j.jss.2017.11.073_bib0015
  article-title: iPlasma: an integrated platform for quality assessment of object-oriented design
SSID ssj0007202
Score 2.410922
Snippet •A novel heuristic to detect Move Method refactoring opportunities based on static dependencies.•The implementation of the proposed heuristic as an Eclipse...
SourceID crossref
elsevier
SourceType Enrichment Source
Index Database
Publisher
StartPage 19
SubjectTerms Dependency sets
JDeodorant
JMove
Methodbook
Move method refactorings
Recommendation systems
Title JMove: A novel heuristic and tool to detect move method refactoring opportunities
URI https://dx.doi.org/10.1016/j.jss.2017.11.073
Volume 138
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV3NS8MwFH_s4-LFb3F-jBw8Cd3aNemHtzEcc7KB6GC3kiYpbsx2aOfRv92XNh0K6sFLS0IeDT_S934hL78HcCUZjXssppYSAbNo6CRWnEhqcTtMpB27uBHSF4UnU280o-M5m9dgUN2F0WmVxveXPr3w1qana9DsrheL7qMWh3LQ8zq4SHtIxOvQ7LmhxxrQ7N_dj6Zbh-z3itRDPd7SBtXhZpHmtXzTot2O39Fanr77c3j6EnKG-7BruCLpl9M5gJpKD2GvqsNAzG95BA_jSfaubkifpPhekWe1KfWXCU8lybNshQ8ilT4vIC84hJR1owl-vii3g-GLZGvNxDdpobB6DLPh7dNgZJlSCZZwPTe3OBInuwg2ghYidbgPYsznXMTYw5A1SS0Dw4UXSJnYlCYyjJlu8wARke4JNNIsVadAeCAd4fqxnejIJZEwaIkcxR0hme8LuwV2hVAkjI64LmexiqqEsWWEoEYaVNxfRAhqC663JutSROOvwbSCPfq2EiJ08r-bnf3P7Bx2sBWUuTgX0MhfN-oSaUYet6He-XDaZjF9AjtJ0Mc
linkProvider Elsevier
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV3NT8IwFG8QD3rx24ifPXgyKWyspcMbIRJEIDFCwq3pxxYhuBEFj_7tvnabH4l68LJl3Wu6_NK995r--nsIXRpGVZ0pSiIdMkKbfkxUbCiRXjM2ngpgIWQPCg-Gje6Y9iZsUkLt4iyMpVXmvj_z6c5b5y21HM3aYjqtPVhxKB88rw-TtA6J-BpapyzgltdXffvkefC6Ix5aa2LNi61NR_KavVjJbp9XrZInD34OTl8CTmcHbeWZIm5lH7OLSlGyh7aLKgw4_yn30X1vkL5G17iFE7jP8WO0ytSXsUwMXqbpHC7YRHa3AD-BCc6qRmMY3hXbgeCF04XNw1eJ01c9QOPOzajdJXmhBKKDRrAkEtImz4UaTZ1EHayCGONSagUtDHImY0VgpG6ExsQepbFpKmafZQiImOAQlZM0iY4QlqHxdcCVF9u4ZSBdsAI5kfS1YZxrr4K8AiGhcxVxW8xiLgq62EwAqMKCCqsLAaBW0NVHl0UmofGXMS1gF9_mgQAX_3u34_91u0Ab3dGgL_q3w7sTtAlvwoyVc4rKy-dVdAYJx1Kduwn1DvhO0ZI
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=JMove%3A+A+novel+heuristic+and+tool+to+detect+move+method+refactoring+opportunities&rft.jtitle=The+Journal+of+systems+and+software&rft.au=Terra%2C+Ricardo&rft.au=Valente%2C+Marco+Tulio&rft.au=Miranda%2C+Sergio&rft.au=Sales%2C+Vitor&rft.date=2018-04-01&rft.pub=Elsevier+Inc&rft.issn=0164-1212&rft.eissn=1873-1228&rft.volume=138&rft.spage=19&rft.epage=36&rft_id=info:doi/10.1016%2Fj.jss.2017.11.073&rft.externalDocID=S0164121217302960
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0164-1212&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0164-1212&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0164-1212&client=summon