Extending Refactoring Detection to Kotlin: A Dataset and Comparative Study

Refactoring, as one of the best practices in software development, has been also the centre of attention of much research. Particularly, a plethora of studies have been performed to understand the impact of refactorings on different dimensions of software development including software quality, prog...

Full description

Saved in:
Bibliographic Details
Published inProceedings of the European Conference on Software Maintenance and Reengineering pp. 267 - 271
Main Authors Moghadam, Iman Hemati, Afkhami, Mohammad Mehdi, Kamalipour, Parsa, Zaytsev, Vadim
Format Conference Proceeding
LanguageEnglish
Published IEEE 12.03.2024
Subjects
Online AccessGet full text
ISSN2640-7574
DOI10.1109/SANER60148.2024.00034

Cover

Abstract Refactoring, as one of the best practices in software development, has been also the centre of attention of much research. Particularly, a plethora of studies have been performed to understand the impact of refactorings on different dimensions of software development including software quality, program comprehension, fault-proneness, and non-functional requirements, among others. Among the employed approaches, analysing refactorings applied previously in real-world scenarios has been used by many researchers and proves to be a valuable way to delve deeper into the subject. The results of these research studies not only enhance our understanding of the advantages and potential drawbacks of refactorings but also guide us in developing more efficient automated refactoring tools based on how developers actually use refactorings in practice. However, the majority of studies in this regard have focused on refactorings applied in Java programs, and the other programming languages have received significantly less attention. In reality, the lack of comprehensive datasets of real-world applied refactorings makes it challenging for researchers to conduct comprehensive studies in programming languages other than Java. The primary obstacle can be the lack of automated tool support for identifying refactorings applied in programs implemented in other languages. To mitigate this limitation, we extended a previously available refactoring detection tool, Refdetect, to be able to identify refactorings applied in Kotlin programs. We conducted an experiment on 200 commits of 10 Kotlin repositories sourced on GitHub and compared the performance of our tool with an existing Kotlin refactoring detection tool called Ko T L I Nrmi Ne R. We found that our tool has a precision of 90% and a recall of 82 %, achieving an average F -score of 84 % which is 17 % better than the one achieved by KOTLINRMINER. We also provide the resulting dataset containing 2,043 true refactoring instances detected by at least one of Refdetect or Kotlinrminer and validated by one up to three refactoring experts. By releasing this initial dataset, we aim to address the existing gap in the availability of Kotlin refactoring datasets.
AbstractList Refactoring, as one of the best practices in software development, has been also the centre of attention of much research. Particularly, a plethora of studies have been performed to understand the impact of refactorings on different dimensions of software development including software quality, program comprehension, fault-proneness, and non-functional requirements, among others. Among the employed approaches, analysing refactorings applied previously in real-world scenarios has been used by many researchers and proves to be a valuable way to delve deeper into the subject. The results of these research studies not only enhance our understanding of the advantages and potential drawbacks of refactorings but also guide us in developing more efficient automated refactoring tools based on how developers actually use refactorings in practice. However, the majority of studies in this regard have focused on refactorings applied in Java programs, and the other programming languages have received significantly less attention. In reality, the lack of comprehensive datasets of real-world applied refactorings makes it challenging for researchers to conduct comprehensive studies in programming languages other than Java. The primary obstacle can be the lack of automated tool support for identifying refactorings applied in programs implemented in other languages. To mitigate this limitation, we extended a previously available refactoring detection tool, Refdetect, to be able to identify refactorings applied in Kotlin programs. We conducted an experiment on 200 commits of 10 Kotlin repositories sourced on GitHub and compared the performance of our tool with an existing Kotlin refactoring detection tool called Ko T L I Nrmi Ne R. We found that our tool has a precision of 90% and a recall of 82 %, achieving an average F -score of 84 % which is 17 % better than the one achieved by KOTLINRMINER. We also provide the resulting dataset containing 2,043 true refactoring instances detected by at least one of Refdetect or Kotlinrminer and validated by one up to three refactoring experts. By releasing this initial dataset, we aim to address the existing gap in the availability of Kotlin refactoring datasets.
Author Zaytsev, Vadim
Moghadam, Iman Hemati
Afkhami, Mohammad Mehdi
Kamalipour, Parsa
Author_xml – sequence: 1
  givenname: Iman Hemati
  surname: Moghadam
  fullname: Moghadam, Iman Hemati
  email: iman.hematimoghadam@utwente.nl
  organization: University of Twente,Formal Methods and Tools,The Netherlands
– sequence: 2
  givenname: Mohammad Mehdi
  surname: Afkhami
  fullname: Afkhami, Mohammad Mehdi
  organization: Vali-e-Asr University of Rafsanjan,Iran
– sequence: 3
  givenname: Parsa
  surname: Kamalipour
  fullname: Kamalipour, Parsa
  organization: Vali-e-Asr University of Rafsanjan,Iran
– sequence: 4
  givenname: Vadim
  surname: Zaytsev
  fullname: Zaytsev, Vadim
  email: vadim@grammarware.net
  organization: University of Twente,Formal Methods and Tools,The Netherlands
BookMark eNotj11LwzAYRqMouM39A4X8gdY3H00a70pXP4fCptcjS99IZEtHG8X9eyl69Zyrw3mm5Cx2EQm5ZpAzBuZmXb00KwVMljkHLnMAEPKEzI02pShACFBKnJIJVxIyXWh5QabD8AnAQTKYkKfmJ2FsQ_ygK_TWpa4feYEJXQpdpKmjz13ahXhLK7qwyQ6YqI0trbv9wfY2hW-k6_TVHi_Jube7Aef_OyPvd81b_ZAtX-8f62qZBaZVyoqx01ntOC-xNMIVnCOqrZfSoPatdoyD2TJbMm-9B8mFg5YLyY0zyoOYkas_b0DEzaEPe9sfNwyKcrwsfgEnhk9G
CODEN IEEPAD
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1109/SANER60148.2024.00034
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Xplore POP ALL
IEEE Xplore All Conference Proceedings
IEEE Xplore
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Xplore : IEEE Electronic Library (IEL) [unlimited simultaenous users]
  url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 9798350330663
EISSN 2640-7574
EndPage 271
ExternalDocumentID 10589835
Genre orig-research
GroupedDBID 6IE
6IF
6IK
6IL
6IN
AAWTH
ABLEC
ADZIZ
ALMA_UNASSIGNED_HOLDINGS
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
CHZPO
IEGSK
IPLJI
M43
OCL
RIE
RIL
RNS
ID FETCH-LOGICAL-i176t-52024ca7c228e893c522ee6bf449e7fd7c1209b1a81faff0423c0d23429c96f03
IEDL.DBID RIE
IngestDate Wed Aug 27 02:03:18 EDT 2025
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-i176t-52024ca7c228e893c522ee6bf449e7fd7c1209b1a81faff0423c0d23429c96f03
PageCount 5
ParticipantIDs ieee_primary_10589835
PublicationCentury 2000
PublicationDate 2024-March-12
PublicationDateYYYYMMDD 2024-03-12
PublicationDate_xml – month: 03
  year: 2024
  text: 2024-March-12
  day: 12
PublicationDecade 2020
PublicationTitle Proceedings of the European Conference on Software Maintenance and Reengineering
PublicationTitleAbbrev SANER
PublicationYear 2024
Publisher IEEE
Publisher_xml – name: IEEE
SSID ssj0020410
Score 1.8650552
Snippet Refactoring, as one of the best practices in software development, has been also the centre of attention of much research. Particularly, a plethora of studies...
SourceID ieee
SourceType Publisher
StartPage 267
SubjectTerms automated refactoring mining
Best practices
Computer languages
dataset
Java
Kotlin
refactoring
RefDetect
Software development management
Software quality
Title Extending Refactoring Detection to Kotlin: A Dataset and Comparative Study
URI https://ieeexplore.ieee.org/document/10589835
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1JSwMxFA62J091qbiTg9epyTSZmXgrXSgVilQLvZWsIMKMSHrQX-9LZtqKIHgLYWDCm2Teku_7HkJ3qbbESa0SqgqeME5VIoShieA6CJSZ3LiI8p1n0yWbrfiqIatHLoy1NoLPbC8M412-qfQmlMrghPNCQMjQQi3YZzVZa5ddEUZJQ9GhRNw_D-bjRRbqZZAEpkEim4TmyD9aqEQPMumg-fbdNXDkrbfxqqe_fsky_ntxR6i7J-vhp50bOkYHtjxBnW23Btwc3lM0G8d6NzyDF7ZusxPGI-sjGqvEvsKPlYew8wEP8Eh68G8ey9Lg4V4hHAfc4WcXLSfjl-E0aTopJK80zzxkm2ACLXOdpoWFCEVD1GVtphxjwubO5DpQaBWVBXXSuYCV0cSkfXBWWmSO9M9Qu6xKe46w4RJ-SYwLiEtYbnMldMaFE6QwCpIxeYG6wTbr91osY701y-Uf81foMCwuwLpoeo3a_mNjb8DPe3Ubv-83rNynCg
linkProvider IEEE
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1bS8MwFA46H_RpXibezYOvnUmXtI1vYxfmNofMDfY2cgURWpHsQX-9SdptIgi-hVJoOCX9zjn9vu8AcBdLjQyXIsIioxGhWESMKRwxKr1BmUqVCSzfSTKYk-GCLiqxetDCaK0D-Uw3_TL8y1eFXPlWmTvhNGMuZdgFew74CS3lWpv6ChGMKpEORuz-pT3pTRPfMXNlYOxNspEfj_xjiErAkH4dTNZPL6kjb82VFU359cuY8d_bOwSNrVwPPm-A6Ajs6PwY1NfzGmB1fE_AsBc63u4eONXloB2_7mob-Fg5tAUcFdYlng-wDbvcOoSzkOcKdrYe4dAzDz8bYN7vzTqDqJqlEL3iNLGu3nQhkDyVcZxpl6NIl3dpnQhDCNOpUan0IlqBeYYNN8azZSRSccvBlWSJQa1TUMuLXJ8BqCh3HyVCmctMSKpTwWRCmWEoU8KVY_wcNHxslu-lXcZyHZaLP67fgv3B7Gm8HD9ORpfgwG_Uk7xwfAVq9mOlrx3qW3ET3vU3ndqqVw
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%3Abook&rft.genre=proceeding&rft.title=Proceedings+of+the+European+Conference+on+Software+Maintenance+and+Reengineering&rft.atitle=Extending+Refactoring+Detection+to+Kotlin%3A+A+Dataset+and+Comparative+Study&rft.au=Moghadam%2C+Iman+Hemati&rft.au=Afkhami%2C+Mohammad+Mehdi&rft.au=Kamalipour%2C+Parsa&rft.au=Zaytsev%2C+Vadim&rft.date=2024-03-12&rft.pub=IEEE&rft.eissn=2640-7574&rft.spage=267&rft.epage=271&rft_id=info:doi/10.1109%2FSANER60148.2024.00034&rft.externalDocID=10589835