SlideShare a Scribd company logo
Rename Chains:
An Exploratory Study on the Occurrence and Characteristics of
Identifiers Undergoing Multiple Renamings
Anthony Peruma & Christian Newman
Overview
We explore the phenomenon of a single
identifier undergoing multiple renames (i.e., a
rename chain) through a large-scale empirical
study of 800 open-source Java systems
Introduction
• Research shows that developers spend 58% of their time on program
comprehension activities
• Identifier names account for 70% of the characters in the code base
• Identifier names help developers understand the purpose of the
identifier – essential that names should be high-quality
• Names must be unambiguous and intent reveling in communicating the purpose
and behavior of the code
• Developers correct poor-quality names via rename refactoring
operations – over 40% of refactoring operations are renames
• Not all renames result in a high-quality name
• An identifier can undergo multiple renaming's throughout its lifetime (i.e., a chain
of renaming's – a rename chain)
Rename Chain Examples
A method rename chain resulting in a more
descriptive method name in the final rename
A rename chain resulting in a weak
method name; it is just a copy of the
statement within the method
Related Work on Identifier Renaming
• Empirical Studies
• Arnoudova et al. – Rename taxonomy to classify the semantics updates to a name;
developer study showing renaming is not always straightforward
• Peruma et al. – Multiple studies that examine the structure and meaning of names →
developers frequently narrow the meaning of the name; grammar patterns;
contextualization; taxonomy for digits in a name
• Recommendation Models
• Allamanis et al. – utilizes statistical NLP to learn the coding style of a codebase
• Suzuki et al. – An n-gram-based approach for assessing the comprehensibility of method
names and recommending intelligible method names
• Liu et al. – Deep learning techniques to provide recommendations based on the overlap
between method bodies and names that are close in a vector space
• …
While there are studies that investigate (or involve) rename refactoring’s, this is the first
study that examines a chain of rename operations for an identifier
Goal & Impact
Understand the evolution of identifier
names by constructing and studying the
characteristics of a chain of renames
for identifiers (i.e., a rename chain)
Facilitate the research and development
of tools to aid in name appraisal and
recommendations
Research Questions
• RQ1: To what extent do identifiers undergo multiple rename
refactoring operations?
• Understand the volume and types of identifiers that undergo multiple renames
• RQ2: How frequently do renames occur within a rename chain, and
who is responsible for their creation?
• Gain insight into the developers performing the renames in the chain
• RQ3: How do the semantics of an identifier's name evolve in a
rename chain?
• Determine the lexical-semantic properties of names in the rename chain
• RQ4: To what extent can commit log messages help contextualize the
occurrence of rename chains?
• Identify the specific causes for developers to create rename chains
Contributions
A publicly available dataset of
rename chains for replication
or extension studies
An understanding of identifier
name evolution and a discussion
on avenues for future research
Experiment Design
Source dataset of rename refactorings and commit details Dataset of rename chains and their characteristics
Source Dataset: Used in prior refactoring research studies; renames mined using RefactoringMiner
Rename Chain Construction: For each project: sort renames using the author commit date; compare the
identifier’s old and new name by their fully qualified name
Part-of-Speech Tagging: Utilize a specialized identifier name part-of-speech tagger; tags for only the original and
last name in the rename chain
Topic Modeling: Commit messages associated with rename chains; preprocessing; Latent Dirichlet Allocation
RQ Analysis: Supplement our quantitative findings with qualitative examples from our dataset
Results
RQ 1: To what extent do identifiers undergo multiple
rename refactoring operations?
• Identifier renaming is a common operation developers perform
• 285,786 operations: Methods: 26.50%; Parameters: 25.53%; Variables: 21.75%
• Most identifiers undergo a single rename in their lifetime
• 17,404 detected rename chains – Methods are likely to have a chain
• Methods: 30.73%; Variables: 23.47%; Classes: 16.85%
• A rename chain is usually short – composed of a median of 2 rename
instances; variables typically undergo around 3 renamings
• Rename chains tend to occur in projects frequently
• 83.71% of projects have rename chains
• Projects have a median of 9 identifiers undergoing multiple renames
RQ 2: How frequently do renames occur within a
rename chain, and who is responsible for their
creation?
Interval Analysis – duration between renames in the chain
• Median duration between renames is 2 days
• Attributes: 25 days; Classes: 19 days; Methods: 14 days; Variables: 7 days; Parameters:
2 days
• Duration between the first and last rename:
• Parameters have the lowest interval: 17 days
• Variables have the highest interval: 357 days
Developer Analysis – developers performing the renames
• Most chains have the same developer performing all renames: 62.05%
• Multi-developer chains have around 2 developers involved
• Attribute chains have the most number of developers: 4
• 11.51% of chains have different developers for the first and last rename
RQ 3: How do the semantics of an identifier's name
evolve in a rename chain?
Analysis of the lexical-semantic structure (i.e., part-of-speech tags) of
names in the rename chain
Analysis is limited to only the first and last names in the chain
• The same part-of-speech tags are used for the original and new name
• TestServlet → TheTestServlet → TestServlet : NM-N → DT-NM-N → NM-N
• Developers utilize standard naming structures:
• Class: NM-NM-N → NM-NM-N
• Attribute: NM-N → NM-N
• Method: V-NM-N → V-NM-N
• Parameter & Variable: N → N
• Usually, the original and new names are not identical – 78%
RQ 4: To what extent can commit log messages help
contextualize the occurrence of rename chains?
An automated analysis of rename chain commit log messages
using Latent Dirichlet Allocation
3 high-level topics associated with these messages:
• Code Cleanup – developer improving code style quality by
adhering to standards – ‘naming’, ‘convention’, ‘whitespace’
• “Lots of fixes using Checkstyle - Fixed some names to follow conventions...”
• Refactoring – developers updating the code related to the
behavior and design of the system – ‘refactor’, ‘updated’, ‘revert’
• “Major refactor to start process of eventually moving content manager classes…”
• Bug Fix/Testing – renames are part of either a bug fix or unit
testing – ‘fix’, ‘bug’, ‘test’, ‘testcase’
• “fixed bug with searching for transitive dependencies + added test for it…”
Discussion & Conclusion
Overall Findings
Renaming is a common activity in software implementation
• Most identifiers typically undergo a single rename
• However, rename chains frequently occur in projects – methods are frequently associated
with rename chains
• Renames in a chain occur days apart – variables typically having the shortest duration
(approx. two days) and attributes the longest
• Renames in a rename chain are usually performed by the same developer
• Multi-developer chains usually involve two developers
• The grammatical structure of the initial and last name in the chain remains the same
• Code Cleanup, Refactoring, and Bug Fix/Testing are the cause for rename chains –
However, these topics are at a high-level due to the nature of commit messages
Key Takeaways
• Part-of-speech tags are an efficient means of studying the semantic
updates a name undergoes when renamed
• Academia and practitioners should not limit their focus to only the words in a name
• Improvements to name recommendations and appraisal techniques
• These techniques should consider the historical evolution of an identifier’s name in
their evaluation process
• Emphasis on the importance of using high-quality names
• Academia should instill in students the importance high-quality names in the source
code; practitioners should incorporate naming quality into code reviews
• Challenges with automated contextualization of rename chains
• Current NLP techniques are not adequate for analyzing software engineering artifacts
Conclusion & Future Work
• Interpreting identifier names form the backbone of any code
comprehension task
• Developers perform renames to correct poor-quality names
• This can continue throughout the system’s lifetime
• We analyze multiple renames applied to a single identifier (i.e., rename
chain)
• Almost all projects exhibit this phenomenon, with an average chain size of two
renames
• We report on characteristics such as the interval between renames, developers
responsible for chain construction, grammatical changes, and motivation
• Future work: Human subject study
• Validate our empirical findings with developers of varying experience and skills
Thank You!
Anthony Peruma
https://www.peruma.me

More Related Content

PPTX
CHEST X-RAY MEDIASTINUM AND HILUMpptx.pptx
PDF
Paparan Demonstrasi Kontekstual Modul 3.3.pdf
PDF
Modul 1.1. Refleksi Filosofis Pendidikan Nasional - Final.pdf
DOCX
notulen Kelompok 1.docx
PPTX
PPT Materi Gambaran Umum dan Panduan Diskusi Komunitas Praktisi.pptx
PPTX
Add eclipse project with git lab
PPT
SAFe 101 no TDC de Florianópolis em mai-2015
PPT
Gall bladder Ultrasound
CHEST X-RAY MEDIASTINUM AND HILUMpptx.pptx
Paparan Demonstrasi Kontekstual Modul 3.3.pdf
Modul 1.1. Refleksi Filosofis Pendidikan Nasional - Final.pdf
notulen Kelompok 1.docx
PPT Materi Gambaran Umum dan Panduan Diskusi Komunitas Praktisi.pptx
Add eclipse project with git lab
SAFe 101 no TDC de Florianópolis em mai-2015
Gall bladder Ultrasound

What's hot (20)

PPT
Eus talk.novato.march 2010 converted to ppt
PDF
Jurnal Refleksi Dwi Mingguan Modul 3.3.pdf
PDF
LK 08 KOMUNITAS BELAJAR.pdf
PDF
Align, Inform, Inspire: Measuring Business Agility and SAFe® with Flow Metrics
PDF
375 poklic sauka
PPT
Abdomen xray signs
PDF
536847494 1-4-budaya-positif (1)
PDF
Implementing End-To-End Tracing With Roman Kolesnev and Antony Stubbs | Curre...
PPTX
Tantangan pendidikan di era revolusi 4.0
KEY
Git and GitHub
PPTX
Membangun kombel dalam sekolah.pptx
PDF
Aksi Nyata Topik 6.pdf
DOCX
Silabus profesi kependidikan
PDF
Agile cevik yaklasim ile scrum yontemi
PDF
SEMA No. 4 tahun 2010
PDF
Scrum Agile Playbook Powerpoint Presentation Slides
PPTX
Scrum training
PPTX
Coaching and Celebrating Accessibility Champions
PPTX
Python qgis advanced
Eus talk.novato.march 2010 converted to ppt
Jurnal Refleksi Dwi Mingguan Modul 3.3.pdf
LK 08 KOMUNITAS BELAJAR.pdf
Align, Inform, Inspire: Measuring Business Agility and SAFe® with Flow Metrics
375 poklic sauka
Abdomen xray signs
536847494 1-4-budaya-positif (1)
Implementing End-To-End Tracing With Roman Kolesnev and Antony Stubbs | Curre...
Tantangan pendidikan di era revolusi 4.0
Git and GitHub
Membangun kombel dalam sekolah.pptx
Aksi Nyata Topik 6.pdf
Silabus profesi kependidikan
Agile cevik yaklasim ile scrum yontemi
SEMA No. 4 tahun 2010
Scrum Agile Playbook Powerpoint Presentation Slides
Scrum training
Coaching and Celebrating Accessibility Champions
Python qgis advanced
Ad

Similar to Rename Chains: An Exploratory Study on the Occurrence and Characteristics of Identifiers Undergoing Multiple Renamings (20)

PDF
Supporting the Maintenance of Identifier Names: A Holistic Approach to High-Q...
PDF
Thesis+of+laleh+eshkevari.ppt
PDF
Contextualizing Rename Decisions using Refactorings and Commit Messages
DOCX
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
PDF
Understanding Digits in Identifier Names: An Exploratory Study
DOC
Naming in Distributed System
PDF
Naming Things Book : Simple Book Review!
PPTX
Naming Entities and Locating Mobile Entities
PDF
A Primer on High-Quality Identifier Naming [ASE 2022]
PPTX
DS_Unit_05.pptx
PDF
IDEAL: An Open-Source Identifier Name Appraisal Tool
PDF
Using Grammar Patterns to Interpret Test Method Name Evolution
PDF
A Primer on High-Quality Identifier Naming
PDF
MSR11.ppt
PDF
Dipenta msr2011-renaming
PPTX
Naming Standards, Clean Code
PPTX
Mining Code Examples with Descriptive Text from Software Artifacts
PDF
Git intermediate workshop slides v1.4
PPTX
DN 2017 | Big Data / Microservice Versioning | Thomas Pötter | Compris Techno...
Supporting the Maintenance of Identifier Names: A Holistic Approach to High-Q...
Thesis+of+laleh+eshkevari.ppt
Contextualizing Rename Decisions using Refactorings and Commit Messages
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
Understanding Digits in Identifier Names: An Exploratory Study
Naming in Distributed System
Naming Things Book : Simple Book Review!
Naming Entities and Locating Mobile Entities
A Primer on High-Quality Identifier Naming [ASE 2022]
DS_Unit_05.pptx
IDEAL: An Open-Source Identifier Name Appraisal Tool
Using Grammar Patterns to Interpret Test Method Name Evolution
A Primer on High-Quality Identifier Naming
MSR11.ppt
Dipenta msr2011-renaming
Naming Standards, Clean Code
Mining Code Examples with Descriptive Text from Software Artifacts
Git intermediate workshop slides v1.4
DN 2017 | Big Data / Microservice Versioning | Thomas Pötter | Compris Techno...
Ad

More from University of Hawai‘i at Mānoa (20)

PDF
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
PDF
Exploring Accessibility Trends and Challenges in Mobile App Development: A St...
PDF
The Impact of Generative AI-Powered Code Generation Tools on Software Enginee...
PDF
Mobile App Security Trends and Topics: An Examination of Questions From Stack...
PDF
On the Rationale and Use of Assertion Messages in Test Code: Insights from So...
PDF
A Developer-Centric Study Exploring Mobile Application Security Practices and...
PDF
Building Hawaii’s IT Future Together CIO Council & UH Manoa ICS Collaboration
PDF
Impostor Syndrome in Final Year Computer Science Students: An Eye Tracking an...
PDF
An Exploratory Study on the Occurrence of Self-Admitted Technical Debt in And...
PDF
Performance Comparison of Binary Machine Learning Classifiers in Identifying ...
PDF
Preparing for the Academic Job Market: Experience and Tips from a Recent F...
PDF
Refactoring Debt: Myth or Reality? An Exploratory Study on the Relationship B...
PDF
Test Anti-Patterns: From Definition to Detection
PDF
Refactoring Debt: Myth or Reality? An Exploratory Study on the Relationship B...
PDF
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
PDF
On the Distribution of "Simple Stupid Bugs" in Unit Test Files: An Explorator...
PDF
An Exploratory Study on the Refactoring of Unit Test Files in Android Applica...
PDF
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
PDF
A Preliminary Study of Android Refactorings
PDF
Permission Issues in Open-Source Android Apps: An Exploratory Study
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Accessibility Trends and Challenges in Mobile App Development: A St...
The Impact of Generative AI-Powered Code Generation Tools on Software Enginee...
Mobile App Security Trends and Topics: An Examination of Questions From Stack...
On the Rationale and Use of Assertion Messages in Test Code: Insights from So...
A Developer-Centric Study Exploring Mobile Application Security Practices and...
Building Hawaii’s IT Future Together CIO Council & UH Manoa ICS Collaboration
Impostor Syndrome in Final Year Computer Science Students: An Eye Tracking an...
An Exploratory Study on the Occurrence of Self-Admitted Technical Debt in And...
Performance Comparison of Binary Machine Learning Classifiers in Identifying ...
Preparing for the Academic Job Market: Experience and Tips from a Recent F...
Refactoring Debt: Myth or Reality? An Exploratory Study on the Relationship B...
Test Anti-Patterns: From Definition to Detection
Refactoring Debt: Myth or Reality? An Exploratory Study on the Relationship B...
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
On the Distribution of "Simple Stupid Bugs" in Unit Test Files: An Explorator...
An Exploratory Study on the Refactoring of Unit Test Files in Android Applica...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
A Preliminary Study of Android Refactorings
Permission Issues in Open-Source Android Apps: An Exploratory Study

Recently uploaded (20)

PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
medical staffing services at VALiNTRY
PDF
top salesforce developer skills in 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Transform Your Business with a Software ERP System
PPT
Introduction Database Management System for Course Database
PDF
System and Network Administration Chapter 2
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Digital Strategies for Manufacturing Companies
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
ManageIQ - Sprint 268 Review - Slide Deck
How to Choose the Right IT Partner for Your Business in Malaysia
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PTS Company Brochure 2025 (1).pdf.......
Upgrade and Innovation Strategies for SAP ERP Customers
medical staffing services at VALiNTRY
top salesforce developer skills in 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Navsoft: AI-Powered Business Solutions & Custom Software Development
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Online Work Permit System for Fast Permit Processing
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Transform Your Business with a Software ERP System
Introduction Database Management System for Course Database
System and Network Administration Chapter 2
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Digital Strategies for Manufacturing Companies
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx

Rename Chains: An Exploratory Study on the Occurrence and Characteristics of Identifiers Undergoing Multiple Renamings

  • 1. Rename Chains: An Exploratory Study on the Occurrence and Characteristics of Identifiers Undergoing Multiple Renamings Anthony Peruma & Christian Newman
  • 2. Overview We explore the phenomenon of a single identifier undergoing multiple renames (i.e., a rename chain) through a large-scale empirical study of 800 open-source Java systems
  • 3. Introduction • Research shows that developers spend 58% of their time on program comprehension activities • Identifier names account for 70% of the characters in the code base • Identifier names help developers understand the purpose of the identifier – essential that names should be high-quality • Names must be unambiguous and intent reveling in communicating the purpose and behavior of the code • Developers correct poor-quality names via rename refactoring operations – over 40% of refactoring operations are renames • Not all renames result in a high-quality name • An identifier can undergo multiple renaming's throughout its lifetime (i.e., a chain of renaming's – a rename chain)
  • 4. Rename Chain Examples A method rename chain resulting in a more descriptive method name in the final rename A rename chain resulting in a weak method name; it is just a copy of the statement within the method
  • 5. Related Work on Identifier Renaming • Empirical Studies • Arnoudova et al. – Rename taxonomy to classify the semantics updates to a name; developer study showing renaming is not always straightforward • Peruma et al. – Multiple studies that examine the structure and meaning of names → developers frequently narrow the meaning of the name; grammar patterns; contextualization; taxonomy for digits in a name • Recommendation Models • Allamanis et al. – utilizes statistical NLP to learn the coding style of a codebase • Suzuki et al. – An n-gram-based approach for assessing the comprehensibility of method names and recommending intelligible method names • Liu et al. – Deep learning techniques to provide recommendations based on the overlap between method bodies and names that are close in a vector space • … While there are studies that investigate (or involve) rename refactoring’s, this is the first study that examines a chain of rename operations for an identifier
  • 6. Goal & Impact Understand the evolution of identifier names by constructing and studying the characteristics of a chain of renames for identifiers (i.e., a rename chain) Facilitate the research and development of tools to aid in name appraisal and recommendations
  • 7. Research Questions • RQ1: To what extent do identifiers undergo multiple rename refactoring operations? • Understand the volume and types of identifiers that undergo multiple renames • RQ2: How frequently do renames occur within a rename chain, and who is responsible for their creation? • Gain insight into the developers performing the renames in the chain • RQ3: How do the semantics of an identifier's name evolve in a rename chain? • Determine the lexical-semantic properties of names in the rename chain • RQ4: To what extent can commit log messages help contextualize the occurrence of rename chains? • Identify the specific causes for developers to create rename chains
  • 8. Contributions A publicly available dataset of rename chains for replication or extension studies An understanding of identifier name evolution and a discussion on avenues for future research
  • 9. Experiment Design Source dataset of rename refactorings and commit details Dataset of rename chains and their characteristics Source Dataset: Used in prior refactoring research studies; renames mined using RefactoringMiner Rename Chain Construction: For each project: sort renames using the author commit date; compare the identifier’s old and new name by their fully qualified name Part-of-Speech Tagging: Utilize a specialized identifier name part-of-speech tagger; tags for only the original and last name in the rename chain Topic Modeling: Commit messages associated with rename chains; preprocessing; Latent Dirichlet Allocation RQ Analysis: Supplement our quantitative findings with qualitative examples from our dataset
  • 11. RQ 1: To what extent do identifiers undergo multiple rename refactoring operations? • Identifier renaming is a common operation developers perform • 285,786 operations: Methods: 26.50%; Parameters: 25.53%; Variables: 21.75% • Most identifiers undergo a single rename in their lifetime • 17,404 detected rename chains – Methods are likely to have a chain • Methods: 30.73%; Variables: 23.47%; Classes: 16.85% • A rename chain is usually short – composed of a median of 2 rename instances; variables typically undergo around 3 renamings • Rename chains tend to occur in projects frequently • 83.71% of projects have rename chains • Projects have a median of 9 identifiers undergoing multiple renames
  • 12. RQ 2: How frequently do renames occur within a rename chain, and who is responsible for their creation? Interval Analysis – duration between renames in the chain • Median duration between renames is 2 days • Attributes: 25 days; Classes: 19 days; Methods: 14 days; Variables: 7 days; Parameters: 2 days • Duration between the first and last rename: • Parameters have the lowest interval: 17 days • Variables have the highest interval: 357 days Developer Analysis – developers performing the renames • Most chains have the same developer performing all renames: 62.05% • Multi-developer chains have around 2 developers involved • Attribute chains have the most number of developers: 4 • 11.51% of chains have different developers for the first and last rename
  • 13. RQ 3: How do the semantics of an identifier's name evolve in a rename chain? Analysis of the lexical-semantic structure (i.e., part-of-speech tags) of names in the rename chain Analysis is limited to only the first and last names in the chain • The same part-of-speech tags are used for the original and new name • TestServlet → TheTestServlet → TestServlet : NM-N → DT-NM-N → NM-N • Developers utilize standard naming structures: • Class: NM-NM-N → NM-NM-N • Attribute: NM-N → NM-N • Method: V-NM-N → V-NM-N • Parameter & Variable: N → N • Usually, the original and new names are not identical – 78%
  • 14. RQ 4: To what extent can commit log messages help contextualize the occurrence of rename chains? An automated analysis of rename chain commit log messages using Latent Dirichlet Allocation 3 high-level topics associated with these messages: • Code Cleanup – developer improving code style quality by adhering to standards – ‘naming’, ‘convention’, ‘whitespace’ • “Lots of fixes using Checkstyle - Fixed some names to follow conventions...” • Refactoring – developers updating the code related to the behavior and design of the system – ‘refactor’, ‘updated’, ‘revert’ • “Major refactor to start process of eventually moving content manager classes…” • Bug Fix/Testing – renames are part of either a bug fix or unit testing – ‘fix’, ‘bug’, ‘test’, ‘testcase’ • “fixed bug with searching for transitive dependencies + added test for it…”
  • 16. Overall Findings Renaming is a common activity in software implementation • Most identifiers typically undergo a single rename • However, rename chains frequently occur in projects – methods are frequently associated with rename chains • Renames in a chain occur days apart – variables typically having the shortest duration (approx. two days) and attributes the longest • Renames in a rename chain are usually performed by the same developer • Multi-developer chains usually involve two developers • The grammatical structure of the initial and last name in the chain remains the same • Code Cleanup, Refactoring, and Bug Fix/Testing are the cause for rename chains – However, these topics are at a high-level due to the nature of commit messages
  • 17. Key Takeaways • Part-of-speech tags are an efficient means of studying the semantic updates a name undergoes when renamed • Academia and practitioners should not limit their focus to only the words in a name • Improvements to name recommendations and appraisal techniques • These techniques should consider the historical evolution of an identifier’s name in their evaluation process • Emphasis on the importance of using high-quality names • Academia should instill in students the importance high-quality names in the source code; practitioners should incorporate naming quality into code reviews • Challenges with automated contextualization of rename chains • Current NLP techniques are not adequate for analyzing software engineering artifacts
  • 18. Conclusion & Future Work • Interpreting identifier names form the backbone of any code comprehension task • Developers perform renames to correct poor-quality names • This can continue throughout the system’s lifetime • We analyze multiple renames applied to a single identifier (i.e., rename chain) • Almost all projects exhibit this phenomenon, with an average chain size of two renames • We report on characteristics such as the interval between renames, developers responsible for chain construction, grammatical changes, and motivation • Future work: Human subject study • Validate our empirical findings with developers of varying experience and skills