skip to main content
10.5555/2886444.2886466dlproceedingsArticle/Chapter ViewAbstractPublication PagescasconConference Proceedingsconference-collections
research-article

An empirical study on change recommendation

Published: 02 November 2015 Publication History

Abstract

Recommending changes to programmers by exploiting their repetition tendencies during system evolution has been investigated by a number of studies. In our research we perform a change type (additions, deletions, and modifications) based analysis of the efficiency of change recommendation. We also investigate the programmer sensitivity of the repeated changes (i.e., the extent the same changes are repeated by the same programmers) of different change types. The existing studies did not perform such investigations. However, these investigations can be important for efficient ranking (i.e., prioritizing) and filtering of recommendations. According to our investigation on thousands of commits of five diverse subject systems we observe that modifications have a very low tendency (around 1.3%) of being repeated. We should primarily focus on recommending additions, and deletions. More importantly, overall 71% of the repeated changes are programmer sensitive. We believe that a change recommendation system that prioritizes recommendations considering programmer sensitivity can help programmers reuse previous changes in a time-efficient manner.

References

[1]
A. Alali, B. Bartman, C. D. Newman, J. I. Maletic, "A Preliminary Investigation of Using Age and Distance Measures in the Detection of Evolutionary Couplings", Proc. MSR, 2013, pp. 169--172.
[2]
M. Asaduzzaman, C. K. Roy, K. Schneider, D. Hou, "CSCC: Simple, Efficient, Context Sensitive Code Completion", Proc. ICSME, 2014, pp. 71--80.
[3]
M. Asaduzzaman, C. K. Roy, K. Schneider, M. Di Penta, "LHDiff: A Language-Independent Hybrid Approach for Tracking Source Code Lines", Proc. ICSM, 2013, pp. 230--239.
[4]
M. Bruch, M. Monperrus, M. Mezini, "Learning from examples to improve code completion systems", Proc. FSE, 2009, pp. 213--222.
[5]
CCFinderX: http://www.ccfinder.net/ccfinderx.html
[6]
J. R. Cordy, C. K. Roy, "The NiCad Clone Detector", Proc. ICPC Tool Demo, 2011, pp. 219--220.
[7]
Y. Dang, D. Zhang, S. Ge, C. Chu, Y. Qiu, T. Xie, "XIAO: Tuning Code Clones at Hands of Engineers in Practice", Proc. ACSAC, 2012, pp. 369--378.
[8]
E. Duala-Ekoko, M. P. Robillard, "Tracking Code Clones in Evolving Software", Proc. ICSE, 2007, pp. 158--167.
[9]
E. Duala-Ekoko, M. P. Robillard, "CloneTracker: Tool Support for Code Clone Management", Proc. ICSE, 2008, pp.
[10]
Effect Size: http://en.wikipedia.org/wiki/Effect_size
[11]
Effect Size Calculation for Mann-Whitney-Wilcoxon Test: http://www.let.rug.nl/~heeringa/statistics/stat03_2013/lect09.pdf
[12]
M. Gabel, Z. Su, "A study of the uniqueness of source code", Proc. FSE, 2010, pages 147--156.
[13]
C. L. Goues, T. Nguyen, S. Forrest, and W. Weimer. Genprog: A generic method for automatic software repair. IEEE Trans. Software Eng., 2012, 38(1): 54--72.
[14]
R. Hill, J. Rideout, "Automatic method completion", Proc. ASE, 2004, pp. 228--235.
[15]
A. Hindle, E. T. Barr, Z. Su, M. Gabel, P. T. Devanbu, "On the naturalness of software", Proc. ICSE, 2012, pp. 837--847.
[16]
D. Hou, D. M. Pletcher, "An evaluation of the strategies of sorting, filtering, and grouping API methods for Code Completion", Proc. ICSM, 2011, pp. 233--242.
[17]
H. Kagdi, M. Gethers, D. Poshyvanyk, M. L. Collard, "Blending Conceptual and Evolutionary Couplings to Support Change Impact Analysis in Source Code", Proc. WCRE, 2010, pp. 119--128.
[18]
M. Kim, D. Notkin, "Discovering and Representing Systematic Code Changes", Proc. ICSE, 2009, pp. 309--319.
[19]
D. Kim, J. Nam, J. Song, S. Kim, "Automatic patch generation learned from human-written patches", Proc. ICSE, 2013, pp. 802--811.
[20]
Mann-Whitney-Wilcoxon Test: http://en.wikipedia.org/wiki/Mann%E2%80%93Whitney_U_test
[21]
Mann-Whitney-Wilcoxon Test Online: http://www.socscistatistics.com/tests/mannwhitney/Default2.aspx
[22]
N. Meng, M. Kim, K. S. McKinley, "Sydit: Creating and applying a program transformation from an example", Proc. ESEC/FSE, 2011, pp. 440--443.
[23]
N. Meng, M. Kim, K. S. McKinley, "Lase: Locating and applying systematic edits by learning from examples", Proc. ICSE, 2013, pp. 502--511.
[24]
M. Mondal, C. K. Roy, K. A. Schneider, "Connectivity of Co-change Method Groups: A Case Study on Open-Source Systems", Proc. CASCON, 2012, pp. 205--219.
[25]
M. Mondal, C. K. Roy, K. A. Schneider, "Insight into a method co-change pattern to identify highly coupled methods: An empirical study", Proc. ICPC, 2013, pp. 103--112.
[26]
M. Mondal, C. K. Roy, K. A. Schneider, "A Fine-Grained Analysis on the Evolutionary Coupling of Cloned Code", Proc. ICSME, 2014, pp. 51--60.
[27]
M. Mondal, C. K. Roy, K. A. Schneider. "Prediction and Ranking of Co-change Candidates for Clones", Proc. MSR 2014, pp. 32--41.
[28]
M. Mondal, C. K. Roy, K. A. Schneider, "Automatic Identification of Important Clones for Refactoring and Tracking", Proc. SCAM, 2014, pp. 11--20.
[29]
A. T. Nguyen, T. T. Nguyen, H. A. Nguyen, A. Tamrawi, H. V. Nguyen, J. Al-Kofahi, T. N. Nguyen, "Graph-based pattern-oriented, context sensitive source code completion", Proc. ICSE, 2012, pp. 69--79.
[30]
H. A. Nguyen, T. T. Nguyen, G. Wilson Jr, A. T. Nguyen, M. Kim, T. N. Nguyen, "A graph-based approach to API usage adaptation", ACM Sigplan Notices, 45(10): 302--321.
[31]
T. T. Nguyen, H. A. Nguyen, N. H. Pham, J. Al-Kofahi, T. N. Nguyen, "Recurring bug fixes in object-oriented programs", Proc. ICSE, 2010, pp. 315--324.
[32]
H. A. Nguyen, A. T. Nguyen, T. T. Nguyen, T. N. Nguyen, H. Rajan, "A Study of Repetitiveness of Code Changes in Software Evolution", Proc. ASE, 2013, pp. 180--190.
[33]
Nonparametric Tests: http://sphweb.bumc.bu.edu/otlt/MPH-Modules/BS/BS704_Nonparametric/mobile_pages/BS704_Nonparametric4.html
[34]
T. Omori, H. Kuwabara, K. Maruyama, "A study on repetitiveness of code completion operations", Proc. ICSM, 2012, pp. 584--587.
[35]
On-line SVN Repository: http://sourceforge.net/
[36]
D. M. Pletcher, D. Hou, "BCC: Enhancing code completion for better API usability", Proc. ICSM, 2009, pp. 393--394.
[37]
B. Ray, M. Nagappan, C. Bird, N. Nagappan, T. Zimmermann, "The Uniqueness of Changes: Characteristics and Applications", Microsoft Research Technical Report, 2014, pp. 1--10.
[38]
C. K. Roy, J. R. Cordy, R. Koschke, "Comparison and Evaluation of Code Clone Detection Techniques and Tools: A Qualitative Approach", Science of Computer Programming, 2009, 74 (2009): 470--495.
[39]
C. K. Roy, J. R. Cordy, "A Mutation / Injection-based Automatic Framework for Evaluating Code Clone Detection Tools", Proc. Mutation, 2009, pp. 157--166.
[40]
C. K. Roy, J. R. Cordy, "Scenario-based Comparison of Clone Detection Techniques", Proc. ICPC, 2008, pp. 153--162.
[41]
R. Robbes, M. Lanza, "How Program History Can Improve Code Completion", Proc. ASE, 2008, pp. 317--326.
[42]
J. Svajlenko, C. K. Roy, "Evaluating Modern Clone Detection Tools", Proc. ICSME, 2014, pp. 321--330.
[43]
W. Takuya, H. Masuhara, "A Spontaneous Code Recommendation Tool Based on Associative Search", Proc. SUITE, 2011, pp. 17--20.
[44]
M. Toomim, A. Begel, S. L. Graham, "Managing Duplicated Code with Linked Editing", Proc. VL/HCC, 2004, pp. 173--180.
[45]
T. Wang, M. Harman, Y. Jia, J. Krinke, "Searching for better configurations: a rigorous approach to clone evaluation", Proc. ESEC/FSE, 2013, pp. 455--465.
[46]
C. Zhang, J. Yang, Y. Zhang, J. Fan, X. Zhang, J. Zhao, P. Ou, "Automatic parameter recommendation for practical API usage", Proc. ICSE, 2012, pp. 826--836.
[47]
T. Zimmermann, P. Weisgerber, S. Diehl, A. Zeller, "Mining version histories to guide software changes", Proc. ICSE, 2004, pp. 563--572.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image DL Hosted proceedings
CASCON '15: Proceedings of the 25th Annual International Conference on Computer Science and Software Engineering
November 2015
409 pages

Publisher

IBM Corp.

United States

Publication History

Published: 02 November 2015

Qualifiers

  • Research-article

Acceptance Rates

Overall Acceptance Rate 24 of 90 submissions, 27%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 51
    Total Downloads
  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Sep 2024

Other Metrics

Citations

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media