Back to results

Virginia Tech

Investigating and Recommending Co-Changed Entities for JavaScript Programs

Abstract

dc:description.abstract

JavaScript (JS) is one of the most popular programming languages due to its flexibility and versatility, but debugging JS code is tedious and error-prone. In our research, we conducted an empirical study to characterize the relationship between co-changed software entities (e.g., functions and variables), and built a machine learning (ML)-based approach to recommend additional entity to edit given developers’ code changes. Specifically, we first crawled 14,747 commits in 10 open-source projects; for each commit, we created one or more change dependency graphs (CDGs) to model the referencer-referencee relationship between co-changed entities. Next, we extracted the common subgraphs between CDGs to locate recurring co-change patterns between entities. Finally, based on those patterns, we extracted code features from co-changed entities and trained an ML model that recommends entities-to-change given a program commit. According to our empirical investigation, (1) 50% of the crawled commits involve multi-entity edits (i.e., edits that touch multiple entities simultaneously); (2) three recurring patterns commonly exist in all projects; and (3) 80–90% of co-changed function pairs either invoke the same function(s), access the same variable(s), or contain similar statement(s); and (4) our ML-based approach CoRec recommended entity changes with high accuracy. This research will improve programmer productivity and software quality.

Degree

thesis:*
Name thesis:degree_name
M.S.
Level thesis:degree_level
masters
Discipline thesis:degree_discipline
Software Engineering
Department dc:contributor.department
Department of Computer Science
Grantor dc:publisher
Virginia Tech
Year dc:date.issued
2020

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Jiang, Zijian
Chair dc:contributor.committeechair
  • Meng, Na
Committee members dc:contributor.committeemember
  • Butt, Ali R.
  • Servant Cortes, Francisco Javier

Subjects

dc:subject × 4

Rights

dc:rights
Statement dc:rights
  • In Copyright
Language dc:language.iso
en_US

Identifiers

dc:identifier.*
Handle dc:identifier.uri
http://hdl.handle.net/10919/101102
OAI identifier oai:identifier
oai:vtechworks.lib.vt.edu:10919/101102

Chain of custody

source
Harvested from
Virginia Tech
Base URL
vtechworks.lib.vt.edu/oai/request
Last updated
2026-07-22
Source record
OAI-PMH GetRecord
citation

Jiang, Zijian. Investigating and Recommending Co-Changed Entities for JavaScript Programs. masters thesis, Virginia Tech, 2020. http://hdl.handle.net/10919/101102