[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Graph-based visualization of merge requests for code review

Published: 01 January 2023 Publication History

Abstract

Code review is a software development practice aimed at assessing code quality, finding defects, and sharing knowledge among developers. Despite its wide adoption, code review is a challenging task for developers, who often struggle to understand the content of a review change-set. Visualization techniques represent a promising approach to support reviewers. In this paper we present a new visualization approach that displays classes and methods in review changes as nodes in a graph. Then, we implemented our graph-based approach in a tool (ReviewVis) and performed a two-step feedback collection phase to assess the developers’ perceptions on the tool’s benefits through (1) an in-company study with nine professional software developers and (2) an online survey with 37 participants. Given the positive results obtained by this first evaluation, we performed a second survey with 31 participants with a specific focus on supporting developers’ understanding of a review change-set.
The collected feedback showed that the developers indeed perceive that ReviewVis can help them navigate and understand the changes under review. The results achieved also indicate possible future paths to use software visualization for code review.

Highlights

A visualization approach to display review changes and their relations as a graph.
An implementation of this approach in a tool called ReviewVis.
ReviewVis is valuable to support developers’ understanding of a review change-set.
ReviewVis is valuable to support developers in navigating review changes.

References

[1]
Ackerman A.F., Buchwald L.S., Lewski F.H., Software inspections: an effective verification process, IEEE Softw. 6 (3) (1989) 31–36.
[2]
Bacchelli A., Bird C., Expectations, outcomes, and challenges of modern code review, in: Proceedings of the 2013 International Conference on Software Engineering, ICSE ’13, IEEE Press, Piscataway, NJ, USA, 2013, pp. 712–721. URL: http://dl.acm.org/citation.cfm?id=2486788.2486882.
[3]
Barnett M., Bird C., Brunet J., Lahiri S.K., Helping developers help themselves: Automatic decomposition of code review changesets, in: Proceedings of the 37th International Conference on Software Engineering-Volume 1, IEEE Press, 2015, pp. 134–144.
[4]
Baum, T., Liskin, O., Niklas, K., Schneider, K., 2016a. Factors influencing code review processes in industry. In: Proceedings of the 2016 24th Acm Sigsoft International Symposium on Foundations of Software Engineering. pp. 85–96.
[5]
Baum T., Liskin O., Niklas K., Schneider K., A faceted classification scheme for change-based industrial code review processes, in: 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS, 2016, pp. 74–85,.
[6]
Baum T., Schneider K., On the need for a new generation of code review tools, in: International Conference on Product-Focused Software Process Improvement, Springer, 2016, pp. 301–308.
[7]
Baum T., Schneider K., Bacchelli A., On the optimal order of reading source code changes for review, in: 2017 IEEE International Conference on Software Maintenance and Evolution, ICSME, 2017, pp. 329–340,.
[8]
Baum T., Schneider K., Bacchelli A., Associating working memory capacity and code change ordering with code review performance, Empir. Softw. Eng. 24 (4) (2019) 1762–1798,.
[9]
Beckwith, L., Kissinger, C., Burnett, M., Wiedenbeck, S., Lawrance, J., Blackwell, A., Cook, C., 2006. Tinkering and gender in end-user programmers’ debugging. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. pp. 231–240.
[10]
Bedu L., Tinh O., Petrillo F., A tertiary systematic literature review on Software Visualization, in: 2019 Working Conference on Software Visualization, VISSOFT, IEEE, 2019, pp. 33–44.
[11]
Benomar O., Sahraoui H., Poulin P., Visualizing software dynamicities with heat maps, in: 2013 First IEEE Working Conference on Software Visualization, VISSOFT, IEEE, 2013, pp. 1–10.
[12]
Bergel A., Peña V., Increasing test coverage with hapao, Sci. Comput. Program. (2014),.
[13]
Biffl S., Analysis of the impact of reading technique and inspector capability on individual inspection performance, in: Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000, IEEE, 2000, pp. 136–145.
[14]
Blincoe K., Sheoran J., Goggins S., Petakovic E., Damian D., Understanding the popular users: Following, affiliation influence and leadership on GitHub, Inf. Softw. Technol. 70 (2016) 30–39.
[15]
Borges H., Hora A., Valente M.T., Understanding the factors that impact the popularity of GitHub repositories, in: 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME, IEEE, 2016, pp. 334–344.
[16]
Bragdon A., Zeleznik R., Reiss S.P., Karumuri S., Cheung W., Kaplan J., Coleman C., Adeputra F., Laviola J.J., Code bubbles: A working set-based interface for code understanding and maintenance, in: Conference on Human Factors in Computing Systems - Proceedings, 2010,.
[17]
Brooke J., SUS: a “quick and dirty’usability, in: Usability Evaluation in Industry, CRC Press, 1996, p. 189.
[18]
Burnett M.M., Beckwith L., Wiedenbeck S., Fleming S.D., Cao J., Park T.H., Grigoreanu V., Rector K., Gender pluralism in problem-solving software, Interact. Comput. 23 (5) (2011) 450–460.
[19]
D’Ambros M., Lanza M., Lungu M., Visualizing co-change information with the evolution radar, IEEE Trans. Softw. Eng. 35 (5) (2009) 720–735.
[20]
D’Ambros, M., Lanza, M., Robbes, R., 2010. Commit 2.0. In: Proceedings of the 1st Workshop on Web 2.0 for Software Engineering. pp. 14–19.
[21]
Davis F.D., Perceived usefulness, perceived ease of use, and user acceptance of information technology, MIS Q. (1989) 319–340.
[22]
Dias M., Bacchelli A., Gousios G., Cassou D., Ducasse S., Untangling fine-grained code changes, in: 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering, SANER, IEEE, 2015, pp. 341–350.
[23]
Diehl S., Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software, Springer Science & Business Media, 2007.
[24]
[25]
Eick S.G., Steffen J.L., Sumner E.E., Seesoft—A tool for visualizing line oriented software statistics, IEEE Trans. Softw. Eng. (1992),.
[26]
Fagan M.E., Design and code inspections to reduce errors in program development, IBM Syst. J. 15 (3) (1976) 182–211,.
[27]
Francel M.A., Rugaber S., The value of slicing while debugging, Sci. Comput. Program. 40 (2–3) (2001) 151–169.
[28]
Fregnan E., Automatic ordering of code changes for review, 2018.
[29]
Fregnan E., Fröhlich J., Spadini D., Bacchelli A., Replication package, 2020, https://doi.org/10.5281/zenodo.7047993.
[30]
Fruchterman T.M., Reingold E.M., Graph drawing by force-directed placement, Softw. - Pract. Exp. 21 (11) (1991) 1129–1164.
[31]
Gasparini L., Fregnan E., Braz L., Baum T., Bacchelli A., ChangeViz: Enhancing the GitHub pull request interface with method call information, in: 2021 IEEE Working Conference on Software Visualization, VISSOFT, IEEE, 2021.
[32]
Gómez V.U., Ducasse S., D’Hondt T., Visually characterizing source code changes, Sci. Comput. Program. 98 (2015) 376–393.
[33]
Gonçalves, P.W., Fregnan, E., Baum, T., Schneider, K., Bacchelli, A., 2020. Do explicit review strategies improve code review performance? In: Proceedings of the 17th International Conference on Mining Software Repositories.
[34]
Gousios, G., Pinzger, M., Deursen, A.v., 2014. An exploratory study of the pull-based software development model. In: Proceedings of the 36th International Conference on Software Engineering. pp. 345–355.
[35]
Guzzi A., Begel A., Miller J.K., Nareddy K., Facilitating enterprise software developer communication with CARES, in: 2012 28th IEEE International Conference on Software Maintenance, ICSM, IEEE, 2012, pp. 527–536.
[36]
Hanakawa N., Visualization for software evolution based on logical coupling and module coupling, in: 14th Asia-Pacific Software Engineering Conference (APSEC’07), IEEE, 2007, pp. 214–221.
[37]
Huang, Y., Jia, N., Chen, X., Hong, K., Zheng, Z., 2018. Salient-class location: help developers understand code change in code review. In: Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. pp. 770–774.
[38]
Jeffery C.L., The city metaphor in software visualization, 2019.
[39]
Johnson B., Song Y., Murphy-Hill E., Bowdidge R., Why don’t software developers use static analysis tools to find bugs?, in: 2013 35th International Conference on Software Engineering (ICSE), IEEE, 2013, pp. 672–681.
[40]
Khaloo P., Maghoumi M., Taranta E., Bettner D., Laviola J., Code park: A new 3D code visualization tool, in: Proceedings - 2017 IEEE Working Conference on Software Visualization, VISSOFT 2017, 2017,. arXiv:1708.02174.
[41]
LaToza T.D., Arab M., Loksa D., Ko A.J., Explicit programming strategies, Empir. Softw. Eng. (2020) 1–34.
[42]
Lewis J.R., The system usability scale: past, present, and future, Int. J. Human–Comput. Interact. 34 (7) (2018) 577–590.
[43]
MacLeod L., Greiler M., Storey M.-A., Bird C., Czerwonka J., Code reviewing in the trenches: Challenges and best practices, IEEE Softw. 35 (4) (2017) 34–42.
[44]
Mattila, A.-L., Ihantola, P., Kilamo, T., Luoto, A., Nurminen, M., Väätäjä, H., 2016. Software visualization today: Systematic literature review. In: Proceedings of the 20th International Academic Mindtrek Conference. pp. 262–271.
[45]
McConnell S., Code Complete, Pearson Education, 2004.
[46]
Munzner T., Visualization Analysis and Design, CRC Press, 2014.
[47]
Oosterwaal, S., Deursen, A.v., Coelho, R., Sawant, A.A., Bacchelli, A., 2016. Visualizing code and coverage changes for code review. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. pp. 1038–1041.
[48]
Pascarella L., Spadini D., Palomba F., Bruntink M., Bacchelli A., Information needs in contemporary code review, Proc. ACM Hum.-Comput. Interact. 2 (CSCW) (2018) 135:1–135:27,. URL: http://doi.acm.org/10.1145/3274404.
[49]
Rigby P.C., Bird C., Convergent contemporary software peer review practices, in: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, in: ESEC/FSE 2013, ACM, New York, NY, USA, 2013, pp. 202–212,. URL: http://doi.acm.org/10.1145/2491411.2491444.
[50]
Rong G., Li J., Xie M., Zheng T., The effect of checklist in code review for inexperienced students: An empirical study, in: 2012 IEEE 25th Conference on Software Engineering Education and Training, IEEE, 2012, pp. 120–124.
[51]
Sadowski C., Söderberg E., Church L., Sipko M., Bacchelli A., Modern code review: A case study at google, in: Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice, in: ICSE-SEIP ’18, ACM, New York, NY, USA, 2018, pp. 181–190,. URL: http://doi.acm.org/10.1145/3183519.3183525.
[52]
Shull F., Seaman C., Inspecting the history of inspections: An example of evidence-based technology diffusion, IEEE Softw. 25 (1) (2008) 88–90.
[53]
Spadini D., Palomba F., Baum T., Hanenberg S., Bruntink M., Bacchelli A., Test-driven code review: An empirical study, in: Proceedings of the 41st International Conference on Software Engineering, ICSE ’19, IEEE Press, Piscataway, NJ, USA, 2019, pp. 1061–1072,.
[54]
Spencer D., Card Sorting: Designing Usable Categories, Rosenfeld Media, 2009.
[55]
Tao, Y., Dang, Y., Xie, T., Zhang, D., Kim, S., 2012. 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. pp. 1–11.
[56]
Tao Y., Kim S., Partitioning composite code changes to facilitate code review, in: 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories, IEEE, 2015, pp. 180–190.
[57]
Thongtanunam P., Kula R.G., Cruz A.E.C., Yoshida N., Iida H., Improving code review effectiveness through reviewer recommendations, in: Proceedings of the 7th International Workshop on Cooperative and Human Aspects of Software Engineering, ACM, 2014, pp. 119–122.
[58]
Tymchuk Y., Mocci A., Lanza M., Code review: Veni, ViDI, Vici, in: 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering, SANER, IEEE, 2015, pp. 151–160.
[59]
Wang M., Lin Z., Zou Y., Xie B., CoRA: decomposing and describing tangled code changes for reviewer, in: 2019 34th IEEE/ACM International Conference on Automated Software Engineering, ASE, IEEE, 2019, pp. 1050–1061.
[60]
Wettel R., Lanza M., Codecity: 3d visualization of large-scale software, in: Companion of the 30th International Conference on Software Engineering, 2008, pp. 921–922.
[61]
Wettel, R., Lanza, M., Robbes, R., 2011. Software systems as cities: A controlled experiment. In: Proceedings of the 33rd International Conference on Software Engineering. pp. 551–560.
[62]
Zhang T., Song M., Pinedo J., Kim M., Interactive code review for systematic changes, in: Proceedings of the 37th International Conference on Software Engineering-Volume 1, IEEE Press, 2015, pp. 111–122.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Journal of Systems and Software
Journal of Systems and Software  Volume 195, Issue C
Jan 2023
610 pages

Publisher

Elsevier Science Inc.

United States

Publication History

Published: 01 January 2023

Author Tags

  1. Modern code review
  2. Software visualization
  3. Empirical software engineering

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media