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...
Saved in:
Published in | The Journal of systems and software Vol. 138; pp. 19 - 36 |
---|---|
Main Authors | , , , |
Format | Journal Article |
Language | English |
Published |
Elsevier Inc
01.04.2018
|
Subjects | |
Online Access | Get full text |
ISSN | 0164-1212 1873-1228 |
DOI | 10.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 |