Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2820518.2820541acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Partitioning composite code changes to facilitate code review

Published: 16 May 2015 Publication History

Abstract

Developers expend significant effort on reviewing source code changes. Hence, the comprehensibility of code changes directly affects development productivity. Our prior study has suggested that composite code changes, which mix multiple development issues together, are typically difficult to review. Unfortunately, our manual inspection of 453 open source code changes reveals a non-trivial occurrence (up to 29%) of such composite changes.
In this paper, we propose a heuristic-based approach to automatically partition composite changes, such that each subchange in the partition is more cohesive and self-contained. Our quantitative and qualitative evaluation results are promising in demonstrating the potential benefits of our approach for facilitating code review of composite code changes.

References

[1]
B. Cornelissen, A. Zaidman, A. van Deursen, L. Moonen, and R. Koschke, "A systematic survey of program comprehension through dynamic analysis," Software Engineering, IEEE Transactions on, vol. 35, no. 5, pp. 684--702, 2009.
[2]
H. C. Benestad, B. Anda, and E. Arisholm, "Understanding software maintenance and evolution by analyzing individual changes: a literature review," Journal of Software Maintenance and Evolution: Research and Practice, vol. 21, no. 6, pp. 349--378, 2009. {Online}. Available: http://dx.doi.org/10.1002/smr.412
[3]
A. Bacchelli and C. Bird, "Expectations, outcomes, and challenges of modern code review," in Proceedings of the 35th international conference on Software engineering, ser. ICSE '13, 2013.
[4]
P. C. Rigby, D. M. German, L. Cowen, and M.-A. Storey, "Peer review on open-source software projects: Parameters, statistical models, and theory," ACM Trans. Softw. Eng. Methodol., vol. 23, no. 4, pp. 35:1--35:33, Sep. 2014. {Online}. Available: http://doi.acm.org/10.1145/2594458
[5]
Y. Tao, Y. Dang, T. Xie, D. Zhang, and S. Kim, "How do software engineers understand code changes?: an exploratory study in industry," in Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, ser. FSE '12. New York, NY, USA: ACM, 2012, pp. 51:1--51:11. {Online}. Available: http://doi.acm.org/10.1145/2393596.2393656
[6]
M. Weiser, "Programmers use slices when debugging," Commun. ACM, vol. 25, no. 7, pp. 446--452, Jul. 1982. {Online}. Available: http://doi.acm.org/10.1145/358557.358577
[7]
G. Canfora, A. Cimitile, A. De Lucia, and G. Di Lucca, "Decomposing legacy programs: a first step towards migrating to client-server platforms," in Program Comprehension, 1998. IWPC '98. Proceedings., 6th International Workshop on, 1998, pp. 136--144.
[8]
K. Gallagher and J. Lyle, "Using program slicing in software maintenance," Software Engineering, IEEE Transactions on, vol. 17, no. 8, pp. 751--761, 1991.
[9]
F. Lanubile and G. Visaggio, "Extracting reusable functions by flow graph based program slicing," Software Engineering, IEEE Transactions on, vol. 23, no. 4, pp. 246--259, 1997.
[10]
A. De Lucia, A. Fasolino, and M. Munro, "Understanding function behaviors through program slicing," in Program Comprehension, 1996, Proceedings., Fourth Workshop on, 1996, pp. 9--18.
[11]
B. Fluri, M. Wuersch, M. PInzger, and H. Gall, "Change distilling: Tree differencing for fine-grained source code change extraction," IEEE Trans. Softw. Eng., vol. 33, no. 11, pp. 725--743, Nov. 2007. {Online}. Available: http://dx.doi.org/10.1109/TSE.2007.70731
[12]
T. J. Watson Libraries for Analysis. {Online}. Available: http://wala.sourceforge.net
[13]
M. Kim and D. Notkin, "Discovering and representing systematic code changes," in Proceedings of the 31st International Conference on Software Engineering, ser. ICSE '09. Washington, DC, USA: IEEE Computer Society, 2009, pp. 309--319. {Online}. Available: http://dx.doi.org/10.1109/ICSE.2009.5070531
[14]
D. Kawrykow and M. P. Robillard, "Non-essential changes in version histories," in Proceedings of the 33rd International Conference on Software Engineering, ser. ICSE '11. New York, NY, USA: ACM, 2011, pp. 351--360. {Online}. Available: http://doi.acm.org/10.1145/1985793.1985842
[15]
B. Cornelissen, A. Zaidman, and A. van Deursen, "A controlled experiment for program comprehension through trace visualization," Software Engineering, IEEE Transactions on, vol. 37, no. 3, pp. 341--355, 2011.
[16]
C. Lange and M. R. V. Chaudron, "Interactive views to improve the comprehension of uml models - an experimental validation," in Program Comprehension, 2007. ICPC '07. 15th IEEE International Conference on, 2007, pp. 221--230.
[17]
J. Quante, "Do dynamic object process graphs support program understanding? - a controlled experiment." in Program Comprehension, 2008. ICPC 2008. The 16th IEEE International Conference on, 2008, pp. 73--82.
[18]
M. Ceccato, M. Di Penta, J. Nagra, P. Falcarin, F. Ricca, M. Torchiano, and P. Tonella, "The effectiveness of source code obfuscation: An experimental assessment," in Program Comprehension, 2009. ICPC '09. IEEE 17th International Conference on, 2009, pp. 178--187.
[19]
J. Lazar, J. H. Feng, and H. Hochheiser, Research Methods in Human-Computer Interaction. John Wiley Sons, 2010.
[20]
J. Nielsen. Time budgets for usability sessions. {Online}. Available: http://www.useit.com/alertbox/usability_sessions.html
[21]
J. Sillito, G. C. Murphy, and K. De Volder, "Questions programmers ask during software evolution tasks," in Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, ser. SIGSOFT '06/FSE-14. New York, NY, USA: ACM, 2006, pp. 23--34. {Online}. Available: http://doi.acm.org/10.1145/1181775.1181779
[22]
F. E. J. M. R. W. T. Eadie, D. Drijard and B. Sadoulet, Statistical Methods in Experimental Physics.
[23]
H. Levene, Robust tests for equality of variances. Stanford University Press, 1960.
[24]
P. C. Rigby, D. M. German, and M.-A. Storey, "Open source software peer review practices: a case study of the apache server," in Proceedings of the 30th international conference on Software engineering, ser. ICSE '08. New York, NY, USA: ACM, 2008, pp. 541--550. {Online}. Available: http://doi.acm.org/10.1145/1368088.1368162
[25]
"Commit Often, Perfect Later, Publish Once: Git Best Practices," https://sethrobertson.github.io/GitBestPractices/, 2012.
[26]
R. P. Buse and W. R. Weimer, "Automatically documenting program changes," in Proceedings of the IEEE/ACM international conference on Automated software engineering, ser. ASE '10. New York, NY, USA: ACM, 2010, pp. 33--42. {Online}. Available: http://doi.acm.org/10.1145/1858996.1859005
[27]
E. Murphy-Hill, C. Parnin, and A. P. Black, "How we refactor, and how we know it," in Proceedings of the 31st International Conference on Software Engineering, ser. ICSE '09. Washington, DC, USA: IEEE Computer Society, 2009, pp. 287--297. {Online}. Available: http://dx.doi.org/10.1109/ICSE.2009.5070529
[28]
K. Herzig and A. Zeller, "The impact of tangled code changes," in Proceedings of the 10th Working Conference on Mining Software Repositories, ser. MSR '13. Piscataway, NJ, USA: IEEE Press, 2013, pp. 121--130. {Online}. Available: http://dl.acm.org/citation.cfm?id=2487085.2487113
[29]
D. Licata, C. Harris, and S. Krishnamurthi, "The feature signatures of evolving programs," in Automated Software Engineering, 2003. Proceedings. 18th IEEE International Conference on, 2003, pp. 281--285.
[30]
M. L. Collard, H. Kagdi, and J. I. Maletic, "Factoring differences for iterative change management," in Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation, ser. SCAM '06. Washington, DC, USA: IEEE Computer Society, 2006, pp. 217--226. {Online}. Available: http://dx.doi.org/10.1109/SCAM.2006.15
[31]
M. Barnett, C. Bird, J. Brunet, and S. Lahiri, "Helping developers help themselves: Automatic decomposition of code review changesets." in Proceedings of the 37th International Conference on Software Engineering, May 2015. {Online}. Available: http://research.microsoft.com/apps/pubs/default.aspx?id=238937
[32]
A. De Lucia, "Program slicing: methods and applications," in Source Code Analysis and Manipulation, 2001. Proceedings. First IEEE International Workshop on, 2001, pp. 142--149.
[33]
B. Xu, J. Qian, X. Zhang, Z. Wu, and L. Chen, "A brief survey of program slicing," SIGSOFT Softw. Eng. Notes, vol. 30, no. 2, pp. 1--36, Mar. 2005. {Online}. Available: http://doi.acm.org/10.1145/1050849.1050865
[34]
K. B. Gallagher and J. R. Lyle, "Using program slicing in software maintenance," IEEE Transactions on Software Engineering, vol. 17, pp. 751--761, 1991.
[35]
R. Komondoor and S. Horwitz, "Using slicing to identify duplication in source code," in Proceedings of the 8th International Symposium on Static Analysis, ser. SAS '01, London, UK, 2001, pp. 40--56.

Cited By

View all
  • (2023)Modern Code Reviews—Survey of Literature and PracticeACM Transactions on Software Engineering and Methodology10.1145/358500432:4(1-61)Online publication date: 26-May-2023
  • (2019)Modern code reviews - Preliminary results of a systematic mapping studyProceedings of the 23rd International Conference on Evaluation and Assessment in Software Engineering10.1145/3319008.3319354(340-345)Online publication date: 15-Apr-2019
  • (2019)Associating working memory capacity and code change ordering with code review performanceEmpirical Software Engineering10.1007/s10664-018-9676-824:4(1762-1798)Online publication date: 1-Aug-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
MSR '15: Proceedings of the 12th Working Conference on Mining Software Repositories
May 2015
542 pages
ISBN:9780769555942

Sponsors

Publisher

IEEE Press

Publication History

Published: 16 May 2015

Check for updates

Qualifiers

  • Research-article

Conference

ICSE '15
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 13 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Modern Code Reviews—Survey of Literature and PracticeACM Transactions on Software Engineering and Methodology10.1145/358500432:4(1-61)Online publication date: 26-May-2023
  • (2019)Modern code reviews - Preliminary results of a systematic mapping studyProceedings of the 23rd International Conference on Evaluation and Assessment in Software Engineering10.1145/3319008.3319354(340-345)Online publication date: 15-Apr-2019
  • (2019)Associating working memory capacity and code change ordering with code review performanceEmpirical Software Engineering10.1007/s10664-018-9676-824:4(1762-1798)Online publication date: 1-Aug-2019
  • (2018)Information Needs in Contemporary Code ReviewProceedings of the ACM on Human-Computer Interaction10.1145/32744042:CSCW(1-27)Online publication date: 1-Nov-2018
  • (2018)ClDiff: generating concise linked code differencesProceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering10.1145/3238147.3238219(679-690)Online publication date: 3-Sep-2018
  • (2018)Decision knowledge triggers in continuous software engineeringProceedings of the 4th International Workshop on Rapid Continuous Software Engineering10.1145/3194760.3194765(23-26)Online publication date: 29-May-2018
  • (2018)Addressing problems with replicability and validity of repository mining studies through a smart data platformEmpirical Software Engineering10.1007/s10664-017-9537-x23:2(1036-1083)Online publication date: 1-Apr-2018

View Options

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