Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
126 tokens/sec
GPT-4o
47 tokens/sec
Gemini 2.5 Pro Pro
43 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
47 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Help Me to Understand this Commit! -- A Vision for Contextualized Code Reviews (2402.09528v1)

Published 14 Feb 2024 in cs.SE

Abstract: Background: Modern Code Review (MCR) is a key component for delivering high-quality software and sharing knowledge among developers. Effective reviews require an in-depth understanding of the code and demand from the reviewers to contextualize the change from different perspectives. Aim: While there is a plethora of research on solutions that support developers to understand changed code, we have observed that many provide only narrow, specialized insights and very few aggregate information in a meaningful manner. Therefore, we aim to provide a vision of improving code understanding in MCR. Method: We classified 53 research papers suggesting proposals to improve MCR code understanding. We use this classification, the needs expressed by code reviewers from previous research, and the information we have not found in the literature for extrapolation. Results: We identified four major types of support systems and suggest an environment for contextualized code reviews. Furthermore, we illustrate with a set of scenarios how such an environment would improve the effectiveness of code reviews. Conclusions: Current research focuses mostly on providing narrow support for developers. We outline a vision for how MCR can be improved by using context and reducing the cognitive load on developers. We hope our vision can foster future advancements in development environments.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (41)
  1. Alberto Bacchelli and Christian Bird. 2013. Expectations, Outcomes, and Challenges of Modern Code Review. In Proceedings International Conference on Software Engineering (San Francisco, CA, USA) (ICSE). IEEE, 712–721.
  2. Modern Code Reviews-A Survey of Literature and Practice. ACM Transactions on Software Engineering and Methodology (2023).
  3. Grounded Copilot: How Programmers Interact with Code-Generating Models. Proceedings of the ACM on Programming Languages 7, OOPSLA1 (April 2023), 78:85–78:111. https://doi.org/10.1145/3586030
  4. Tobias Baum and Kurt Schneider. 2016. On the need for a new generation of code review tools. In 17th International Conference on Product-Focused Software Process Improvement (PROFES) (Trondheim, Norway). Springer, 301–308.
  5. Gabriele Bavota and Barbara Russo. 2015. Four eyes are better than two: On the impact of code reviews on software quality. In International Conference on Software Maintenance and Evolution (ICSME). IEEE, 81–90.
  6. Process aspects and social dynamics of contemporary code review: Insights from open source development and industrial practice at microsoft. IEEE Transactions on Software Engineering 43, 1 (2016), 56–75.
  7. Clone refactoring inspection by summarizing clone refactorings and detecting inconsistent changes during software evolution. Journal of Software: Evolution and Process 30, 10 (2018), e1951.
  8. DiffSearch: A Scalable and Precise Search Engine for Code Changes. IEEE Transactions on Software Engineering (2022).
  9. Survey on Pains and Best Practices of Code Review. In 28th Asia-Pacific Software Engineering Conference (APSEC) (Taipei, Taiwan). IEEE, 482–491.
  10. The Role of Comprehension in Software Inspection. Journal of Systems and Software 52, 2 (June 2000), 121–129.
  11. An exploratory study on confusion in code reviews. Empirical Software Engineering 26, 1 (2021), 1–48.
  12. Richard Eckart de Castilho and Iryna Gurevych. 2014. A Broad-Coverage Collection of Portable NLP Components for Building Shareable Analysis Pipelines. In Workshop on Open Infrastructures and Analysis Frameworks for HLT. Association for Computational Linguistics and Dublin City University, Dublin, Ireland, 1–11. https://doi.org/10.3115/v1/W14-5201
  13. A Systematic Literature Review on Automated Log Abstraction Techniques. Information and Software Technology 122 (June 2020), 106276. https://doi.org/10.1016/j.infsof.2020.106276
  14. M. E. Fagan. 1976. Design and code inspections to reduce errors in program development. IBM Systems Journal 15, 3 (1976), 182–211.
  15. Breaking the Vicious Circle: A Case Study on Why AI for Software Analytics and Business Intelligence Does Not Take off in Practice. Journal of Systems and Software 184 (Feb. 2022), 111135. https://doi.org/10.1016/j.jss.2021.111135
  16. Graph-based visualization of merge requests for code review. Journal of Systems and Software 195 (2023), 111506.
  17. A context model for IDE-based recommendation systems. Journal of Systems and Software 128 (2017), 200–219.
  18. The WEKA data mining software: an update. ACM SIGKDD explorations newsletter 11, 1 (2009), 10–18.
  19. Code review knowledge perception: Fusing multi-features for salient-class location. IEEE Transactions on Software Engineering 48, 5 (2020), 1463–1479.
  20. Webcam-Based Eye Tracking to Detect Mind Wandering and Comprehension Errors. Behavior Research Methods (Jan. 2023). https://doi.org/10.3758/s13428-022-02040-x
  21. Mik Kersten and Gail C Murphy. 2006. Using task context to improve programmer productivity. In Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering. 1–11.
  22. Sami Kollanus and Jussi Koskinen. 2009. Survey of software inspection research. The Open Software Engineering Journal 3, 1 (2009).
  23. Change Impact Analysis: A Systematic Mapping Study. Journal of Systems and Software 174 (April 2021), 110892. https://doi.org/10.1016/j.jss.2020.110892
  24. Refactorinsight: Enhancing ide representation of changes in git with refactorings information. In 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, 1276–1280.
  25. Comparing code explanations created by students and large language models. arXiv preprint arXiv:2304.03938 (2023).
  26. UTANGO: untangling commits with context-aware, graph-based, code change clustering learning model. In Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 221–232.
  27. The Scope of ChatGPT in Software Engineering: A Thorough Investigation. https://doi.org/10.48550/arXiv.2305.12138 arXiv:2305.12138 [cs]
  28. Code reviewing in the trenches: Challenges and best practices. IEEE Software 35, 4 (2017), 34–42.
  29. Towards Automated Data Integration in Software Analytics. In Proceedings of the International Workshop on Real-Time Business Intelligence and Analytics (BIRTE ’18). Association for Computing Machinery, New York, NY, USA, 1–5. https://doi.org/10.1145/3242153.3242159
  30. Semantics-assisted code review: An efficient tool chain and a user study. In 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, 554–565.
  31. An Exploratory Study of Bug Prediction at the Method Level. Information and Software Technology 144 (April 2022), 106794. https://doi.org/10.1016/j.infsof.2021.106794
  32. Semantic slicing of architectural change commits: Towards semantic design review. In Proceedings of the 15th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). 1–6.
  33. Gail C Murphy. 2019. Beyond integrated development environments: adding context to software development. In 2019 IEEE/ACM 41st international conference on software engineering: new ideas and emerging results (ICSE-NIER). IEEE, 73–76.
  34. Information needs in contemporary code review. Proceedings of the ACM on Human-Computer Interaction 2, CSCW (2018), 1–27.
  35. Language Models as Knowledge Bases?. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). Association for Computational Linguistics.
  36. SmartCommit: a graph-based interactive assistant for activity-oriented commits. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 379–390.
  37. Topic Modeling in Software Engineering Research. Empirical Software Engineering 26, 6 (Sept. 2021), 120. https://doi.org/10.1007/s10664-021-10026-0
  38. Understanding the Experience of Code Review: Misalignments, Attention, and Units of Analysis. In Proceedings of the International Conference on Evaluation and Assessment in Software Engineering 2022. 170–179.
  39. Help Me to Understand this Commit! - A Vision for Contextualized Code Reviews: data set. https://doi.org/10.5281/zenodo.7889591
  40. Claes Wohlin. 2014. Guidelines for snowballing in systematic literature studies and a replication in software engineering. In Proceedings of the 18th international conference on evaluation and assessment in software engineering. 1–10.
  41. Process Metrics for Software Defect Prediction in Object-Oriented Programs. IET Software 14, 3 (2020), 283–292. https://doi.org/10.1049/iet-sen.2018.5439

Summary

We haven't generated a summary for this paper yet.

X Twitter Logo Streamline Icon: https://streamlinehq.com