{"id":"https://openalex.org/W4399317165","doi":"https://doi.org/10.1145/3663529.3663803","title":"EM-Assist: Safe Automated ExtractMethod Refactoring with LLMs","display_name":"EM-Assist: Safe Automated ExtractMethod Refactoring with LLMs","publication_year":2024,"publication_date":"2024-07-10","ids":{"openalex":"https://openalex.org/W4399317165","doi":"https://doi.org/10.1145/3663529.3663803"},"language":"en","primary_location":{"id":"doi:10.1145/3663529.3663803","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3663529.3663803","pdf_url":null,"source":null,"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering","raw_type":"proceedings-article"},"type":"preprint","indexed_in":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://doi.org/10.1145/3663529.3663803","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5093835356","display_name":"Dorin Pomian","orcid":"https://orcid.org/0009-0006-5621-1394"},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Dorin Pomian","raw_affiliation_strings":["University of Colorado Boulder, Boulder, USA","University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia"],"raw_orcid":"https://orcid.org/0009-0006-5621-1394","affiliations":[{"raw_affiliation_string":"University of Colorado Boulder, Boulder, USA","institution_ids":["https://openalex.org/I188538660"]},{"raw_affiliation_string":"University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia","institution_ids":["https://openalex.org/I188538660"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5093835357","display_name":"Abhiram Bellur","orcid":null},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Abhiram Bellur","raw_affiliation_strings":["University of Colorado Boulder, Boulder, USA","University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia"],"raw_orcid":"https://orcid.org/0009-0008-7048-4406","affiliations":[{"raw_affiliation_string":"University of Colorado Boulder, Boulder, USA","institution_ids":["https://openalex.org/I188538660"]},{"raw_affiliation_string":"University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia","institution_ids":["https://openalex.org/I188538660"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5062659210","display_name":"Malinda Dilhara","orcid":null},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Malinda Dilhara","raw_affiliation_strings":["University of Colorado Boulder, Boulder, USA","University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia"],"raw_orcid":"https://orcid.org/0000-0001-5471-7179","affiliations":[{"raw_affiliation_string":"University of Colorado Boulder, Boulder, USA","institution_ids":["https://openalex.org/I188538660"]},{"raw_affiliation_string":"University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia","institution_ids":["https://openalex.org/I188538660"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5018007618","display_name":"Zarina Kurbatova","orcid":"https://orcid.org/0009-0004-0367-6636"},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]},{"id":"https://openalex.org/I4210141763","display_name":"Institut Agama Islam Negeri Manado","ror":"https://ror.org/04b33kk47","country_code":"ID","type":"education","lineage":["https://openalex.org/I4210141763"]}],"countries":["ID","US"],"is_corresponding":false,"raw_author_name":"Zarina Kurbatova","raw_affiliation_strings":["JetBrains Research, NA, Serbia","University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia"],"raw_orcid":"https://orcid.org/0009-0004-0367-6636","affiliations":[{"raw_affiliation_string":"JetBrains Research, NA, Serbia","institution_ids":["https://openalex.org/I4210141763"]},{"raw_affiliation_string":"University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia","institution_ids":["https://openalex.org/I188538660"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5088461870","display_name":"Egor Bogomolov","orcid":"https://orcid.org/0000-0002-3499-2402"},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]},{"id":"https://openalex.org/I56409017","display_name":"Nahrain University","ror":"https://ror.org/05v2p9075","country_code":"IQ","type":"education","lineage":["https://openalex.org/I56409017"]}],"countries":["IQ","US"],"is_corresponding":false,"raw_author_name":"Egor Bogomolov","raw_affiliation_strings":["JetBrains Research, NA, Netherlands","University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia"],"raw_orcid":"https://orcid.org/0000-0002-3499-2402","affiliations":[{"raw_affiliation_string":"JetBrains Research, NA, Netherlands","institution_ids":["https://openalex.org/I56409017"]},{"raw_affiliation_string":"University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia","institution_ids":["https://openalex.org/I188538660"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5030740495","display_name":"Andrey Sokolov","orcid":"https://orcid.org/0009-0008-2428-9124"},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]},{"id":"https://openalex.org/I56409017","display_name":"Nahrain University","ror":"https://ror.org/05v2p9075","country_code":"IQ","type":"education","lineage":["https://openalex.org/I56409017"]}],"countries":["IQ","US"],"is_corresponding":false,"raw_author_name":"Andrey Sokolov","raw_affiliation_strings":["JetBrains Research, NA, Netherlands","University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia"],"raw_orcid":"https://orcid.org/0009-0008-2428-9124","affiliations":[{"raw_affiliation_string":"JetBrains Research, NA, Netherlands","institution_ids":["https://openalex.org/I56409017"]},{"raw_affiliation_string":"University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia","institution_ids":["https://openalex.org/I188538660"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5065316896","display_name":"Timofey Bryksin","orcid":"https://orcid.org/0000-0001-9022-3563"},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Timofey Bryksin","raw_affiliation_strings":["JetBrains Research, Limassol, Cyprus","University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia"],"raw_orcid":"https://orcid.org/0000-0001-9022-3563","affiliations":[{"raw_affiliation_string":"JetBrains Research, Limassol, Cyprus","institution_ids":[]},{"raw_affiliation_string":"University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia","institution_ids":["https://openalex.org/I188538660"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5019404521","display_name":"Danny Dig","orcid":"https://orcid.org/0000-0001-5046-2017"},"institutions":[{"id":"https://openalex.org/I188538660","display_name":"University of Colorado Boulder","ror":"https://ror.org/02ttsq026","country_code":"US","type":"education","lineage":["https://openalex.org/I188538660"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Danny Dig","raw_affiliation_strings":["University of Colorado Boulder, Boulder, USA","University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia"],"raw_orcid":"https://orcid.org/0000-0001-5046-2017","affiliations":[{"raw_affiliation_string":"University of Colorado Boulder, Boulder, USA","institution_ids":["https://openalex.org/I188538660"]},{"raw_affiliation_string":"University of Colorado Boulder, JetBrains Research USA, Cyprus, the Netherlands, Serbia","institution_ids":["https://openalex.org/I188538660"]}]}],"institutions":[],"countries_distinct_count":3,"institutions_distinct_count":8,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":35.4128,"has_fulltext":true,"cited_by_count":52,"citation_normalized_percentile":{"value":0.99793512,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":100},"biblio":{"volume":null,"issue":null,"first_page":"582","last_page":"586"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9997000098228455,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9997000098228455,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12423","display_name":"Software Reliability and Analysis Research","score":0.992900013923645,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9860000014305115,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/code-refactoring","display_name":"Code refactoring","score":0.9774760007858276},{"id":"https://openalex.org/keywords/debugging","display_name":"Debugging","score":0.7845594882965088},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6729379296302795},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.657751202583313},{"id":"https://openalex.org/keywords/plug-in","display_name":"Plug-in","score":0.6348320841789246},{"id":"https://openalex.org/keywords/reuse","display_name":"Reuse","score":0.6117929220199585},{"id":"https://openalex.org/keywords/usability","display_name":"Usability","score":0.588308572769165},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.44998738169670105},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.41539785265922546},{"id":"https://openalex.org/keywords/world-wide-web","display_name":"World Wide Web","score":0.3573307394981384},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3436148762702942},{"id":"https://openalex.org/keywords/human\u2013computer-interaction","display_name":"Human\u2013computer interaction","score":0.2422226071357727},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.23117628693580627},{"id":"https://openalex.org/keywords/engineering","display_name":"Engineering","score":0.19297638535499573},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.18145081400871277},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.07888895273208618}],"concepts":[{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.9774760007858276},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.7845594882965088},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6729379296302795},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.657751202583313},{"id":"https://openalex.org/C4924752","wikidata":"https://www.wikidata.org/wiki/Q184148","display_name":"Plug-in","level":2,"score":0.6348320841789246},{"id":"https://openalex.org/C206588197","wikidata":"https://www.wikidata.org/wiki/Q846574","display_name":"Reuse","level":2,"score":0.6117929220199585},{"id":"https://openalex.org/C170130773","wikidata":"https://www.wikidata.org/wiki/Q216378","display_name":"Usability","level":2,"score":0.588308572769165},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.44998738169670105},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.41539785265922546},{"id":"https://openalex.org/C136764020","wikidata":"https://www.wikidata.org/wiki/Q466","display_name":"World Wide Web","level":1,"score":0.3573307394981384},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3436148762702942},{"id":"https://openalex.org/C107457646","wikidata":"https://www.wikidata.org/wiki/Q207434","display_name":"Human\u2013computer interaction","level":1,"score":0.2422226071357727},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.23117628693580627},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.19297638535499573},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.18145081400871277},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.07888895273208618},{"id":"https://openalex.org/C548081761","wikidata":"https://www.wikidata.org/wiki/Q180388","display_name":"Waste management","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3663529.3663803","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3663529.3663803","pdf_url":null,"source":null,"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering","raw_type":"proceedings-article"},{"id":"pmh:oai:arXiv.org:2405.20551","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2405.20551","pdf_url":"https://arxiv.org/pdf/2405.20551","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"}],"best_oa_location":{"id":"doi:10.1145/3663529.3663803","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3663529.3663803","pdf_url":null,"source":null,"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering","raw_type":"proceedings-article"},"sustainable_development_goals":[{"display_name":"Industry, innovation and infrastructure","score":0.5600000023841858,"id":"https://metadata.un.org/sdg/9"}],"awards":[{"id":"https://openalex.org/G1002410640","display_name":null,"funder_award_id":"1941898","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G3325768550","display_name":null,"funder_award_id":"2213763","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":20,"referenced_works":["https://openalex.org/W2007504957","https://openalex.org/W2025902616","https://openalex.org/W2046276611","https://openalex.org/W2069737467","https://openalex.org/W2099194364","https://openalex.org/W2103015420","https://openalex.org/W2159118518","https://openalex.org/W2275949219","https://openalex.org/W2476494490","https://openalex.org/W2566214410","https://openalex.org/W2787379525","https://openalex.org/W3021091026","https://openalex.org/W3040728396","https://openalex.org/W3088281844","https://openalex.org/W3195113909","https://openalex.org/W4212909689","https://openalex.org/W4247572414","https://openalex.org/W4284709363","https://openalex.org/W4312761314","https://openalex.org/W4391800812"],"related_works":["https://openalex.org/W4313549863","https://openalex.org/W2395465245","https://openalex.org/W2072205733","https://openalex.org/W2101762871","https://openalex.org/W3176957927","https://openalex.org/W4296534969","https://openalex.org/W4312761314","https://openalex.org/W2476494490","https://openalex.org/W3194667890","https://openalex.org/W4247632010"],"abstract_inverted_index":{"Excessively":[0],"long":[1],"methods,":[2],"loaded":[3],"with":[4,66,156],"multiple":[5],"responsibilities,":[6],"are":[7],"challenging":[8],"to":[9,40,54,90,107,137],"understand,":[10],"debug,":[11],"reuse,":[12],"and":[13,94,98,160],"maintain.":[14],"The":[15],"solution":[16],"lies":[17],"in":[18,33,60,73,124],"the":[19,26,44,104,109,140],"widely":[20],"recognized":[21],"Extract":[22],"Method":[23],"refactoring.":[24],"While":[25],"application":[27],"of":[28,46,116],"this":[29,78],"refactoring":[30,92],"is":[31],"supported":[32],"modern":[34],"IDEs,":[35],"recommending":[36],"which":[37],"code":[38],"fragments":[39],"extract":[41],"has":[42],"been":[43],"topic":[45],"many":[47],"research":[48],"tools.":[49],"However,":[50],"they":[51],"often":[52],"struggle":[53],"replicate":[55],"real-world":[56,118],"developer":[57,70],"practices,":[58],"resulting":[59],"recommendations":[61],"that":[62,87,120,144],"do":[63,72],"not":[64],"align":[65],"what":[67],"a":[68,153,163],"human":[69],"would":[71],"real":[74],"life.":[75],"To":[76],"address":[77],"issue,":[79],"we":[80,151],"introduce":[81],"EM-Assist,":[82],"an":[83],"IntelliJ":[84,105],"IDEA":[85],"plugin":[86],"uses":[88,103],"LLMs":[89],"generate":[91],"suggestions":[93],"subsequently":[95],"validates,":[96],"enhances,":[97],"ranks":[99],"them.":[100],"Finally,":[101],"EM-Assist":[102],"IDE":[106],"apply":[108],"user-selected":[110],"recommendation.":[111],"In":[112],"our":[113],"extensive":[114],"evaluation":[115],"1,752":[117],"refactorings":[119],"actually":[121],"took":[122],"place":[123],"open-source":[125],"projects,":[126],"EM-Assist\u2019s":[127],"recall":[128],"rate":[129],"was":[130],"53.4%":[131],"among":[132],"its":[133],"top-5":[134],"recommendations,":[135],"compared":[136],"39.4%":[138],"for":[139],"previous":[141],"best-in-class":[142],"tool":[143],"relies":[145],"solely":[146],"on":[147],"static":[148],"analysis.":[149],"Moreover,":[150],"conducted":[152],"usability":[154],"survey":[155],"18":[157],"industrial":[158],"developers":[159],"94.4%":[161],"gave":[162],"positive":[164],"rating.":[165]},"counts_by_year":[{"year":2026,"cited_by_count":34},{"year":2025,"cited_by_count":16},{"year":2024,"cited_by_count":2}],"updated_date":"2026-06-19T17:40:00.097472","created_date":"2025-10-10T00:00:00"}
