Table of Links
Abstract and I. Introduction
II. Approach
A. Architectural Design
B. Proof of Concept Implementation
III. Envisioned Usage Scenarios
IV. Experiment Design and Demographics
A. Participants
B. Target System and Task
C. Procedure
V. Results and Discussion
VI. Related Work
VII. Conclusions and Future Work, Acknowledgment, and References
Code proximity is often not clearly emphasized in SV publications, but follows from the mentions of code viewers in the text itself. Therefore, there are numerous research approaches that use embedded code viewers within SV such as code cities [34]. This also applies to more recent and often collaboratively usable virtual reality approaches [37]–[41]. Other publications present different use cases for embedded SV in code editors, such as dependency browsing [42] or sketching [43], [44]. Few approaches enable developers to modify source code via embedded code editors [45]. Due to space limitations, we cannot address and discuss all related approaches [8], [10], [11], but focus below on what we consider to be the most comparable work.
In 2015, Balogh et. al presented a refined version of their tool CodeMetropolis [9]. Their approach uses static analysis of a software systems’ source code and visualizes the result as 3D code city. The related rendering is achieved using a modded version of the video game Minecraft. Thanks to the multiplayer mode of Minecraft, the code city can also be explored collaboratively. Overall, CodeMetropolis and ExplorViz share the aspects of collaboration and code editor integration. However, these features are implemented differently in each case. For example, in CodeMetropolis users navigate through the same instance of a given code city using the first-person perspective. They can see the avatars of collaborators and interact based on Minecraft’s limitations. In ExplorViz, the collaboration is achieved using collaborative SV features, e.g., shared popups. Regarding the code editor integration, both CodeMetropolis and ExplorViz provide an extension than can be installed in Eclipse and VS Code, respectively. In this context, both extensions provide a comparable set of features, e.g., open Java class in the SV. However, our extension is also able to embed the SV in the actual code editor, whereas the Metropolis approach can only be used as external SV that links to the code editor (see Section II-A).
VII. CONCLUSIONS & FUTURE WORK
In this paper, we presented the architectural design of our approach for collaborative, code-proximal dynamic software cities within code editors. The main idea is to link collaborative SVs directly to the source code that is under development within a code editor and vice versa. We have prototyped this approach within our SV tool ExplorViz. The result is a VS Code extension that either embeds three-dimensional software cities in the code editor or acts as gateway between code editor and external SV. Therefore, we directly link runtime behavior with the related program elements, for example, Java methods. Users can collaboratively explore the SV from within their code editor using synchronized software cities and collaborative SV features, e.g., shared popups. In addition to the implementation, we sketched three envisioned usage scenarios.
We conducted an initial user study to collect first-time feedback regarding the perceived usefulness and perceived usability of our approach. The results show that the majority of participants generally perceive the approach as useful and usable. In this context, participants rated code editor and SV as equally useful in solving the given program comprehension tasks. The measured time spent in each tool, i.e., SV and code editor, indicates that the participants indeed use the SV as supplementary tool.
In the future, we will implement useful features and refinements. Additionally, we plan to repeat the experiment with professional developers.
ACKNOWLEDGMENT
The authors would like to thank Malte Hansen and Lennart Ideler for their contributions with implementing and evaluating some of the features presented in this paper.
REFERENCES
[1] X. Xia, L. Bao, D. Lo, Z. Xing, A. E. Hassan, and S. Li, “Measuring program comprehension: A large-scale field study with professionals,” IEEE Transactions on Software Engineering, vol. 44, no. 10, pp. 951– 976, 2018. DOI: 10.1109/TSE.2017.2734091
[2] R. Tiarks, “What maintenance programmers really do: An observational study,” Softwaretechnik-Trends, vol. 31, no. 2, 2011. [Online]. Available: https://dl.gi.de/handle/20.500.12116/40982
[3] A. J. Ko, B. A. Myers, M. J. Coblenz, and H. H. Aung, “An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks,” IEEE Transactions on Software Engineering, vol. 32, no. 12, pp. 971–987, 2006. DOI: 10.1109/TSE.2006.116
[4] M. Sensalire and P. Ogao, “Visualizing object oriented software: Towards a point of reference for developing tools for industry,” in Proceedings of the 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis, 2007. DOI: 10.1109/VISSOF.2007.4290696 pp. 26–29.
[5] S. Bassil and R. Keller, “Software visualization tools: survey and analysis,” in Proceedings of the 9th International Workshop on Program Comprehension (IWPC 2001), 2001. DOI: 10.1109/WPC.2001.921708 pp. 7–17.
[6] H. M. Kienle and H. A. Muller, “Requirements of software visualization tools: A literature survey,” in Proceedings of the 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis, 2007. DOI: 10.1109/VISSOF.2007.4290693 pp. 2–9.
[7] M. Lanza and S. Ducasse, “Polymetric views – A lightweight visual approach to reverse engineering,” IEEE Transactions on Software Engineering, vol. 29, no. 9, pp. 782–795, Sep. 2003. DOI: 10.1109/tse.2003.1232284
[8] R. Lintern, J. Michaud, M.-A. Storey, and X. Wu, “Plugging-in visualization: Experiences integrating a visualization tool with eclipse,” in Proceedings of the 1st ACM Symposium on Software Visualization (SoftVis 2003), ser. SoftVis ’03. Association for Computing Machinery, 2003. DOI: 10.1145/774833.774840 p. 47–ff.
[9] G. Balogh, A. Szabolics, and A. Beszedes, “CodeMetropolis: Eclipse over the city of source code,” in Proceedings of the 15th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2015), 2015, pp. 271–276.
[10] M. Sul´ır, M. Bacˇ´ıkova, S. Chodarev, and J. Porub ´ an, “Visual augmen- ¨ tation of source code editors: A systematic mapping study,” Journal of Visual Languages & Computing, vol. 49, pp. 46–59, 2018. DOI: 10.1016/j.jvlc.2018.10.001
[11] Z. Kurbatova, Y. Golubev, V. Kovalenko, and T. Bryksin, “The intellij platform: A framework for building plugins and mining software data,” in Proceedings of the 36th IEEE/ACM International Conference on Automated Software Engineering Workshops (ASEW 2021), 2021. DOI: 10.1109/ASEW52652.2021.00016 pp. 14–17.
[12] C. Knight and M. Munro, “Comprehension with[in] virtual environment visualisations,” in Proceedings of the 7th International Workshop on Program Comprehension, 1999. DOI: 10.1109/WPC.1999.777733 pp. 4–11.
[13] R. Wettel and M. Lanza, “Visualizing software systems as cities,” in Proceedings of the 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis, 2007. DOI: 10.1109/VISSOF.2007.4290706 pp. 92–99.
[14] A. Krause-Glau and W. Hasselbring, “Scalable collaborative software visualization as a service: Short industry and experience paper,” in Proceedings of the 10th IEEE International Conference on Cloud Engineering (IC2E 2022), 2022. DOI: 10.1109/IC2E55432.2022.00026 pp. 182–187.
[15] M. Sensalire, P. Ogao, and A. Telea, “Classifying desirable features of software visualization tools for corrective maintenance,” in Proceedings of the 4th ACM Symposium on Software Visualization (SoftVis 2008), ser. SoftVis ’08. New York, NY, USA: Association for Computing Machinery, 2008. DOI: 10.1145/1409720.1409734 p. 87–90.
[16] A. Krause-Glau, M. Bader, and W. Hasselbring, “Collaborative software visualization for program comprehension,” in Proceedings of the 10th IEEE Working Conference on Software Visualization (VISSOFT 2022), 2022. DOI: 10.1109/VISSOFT55257.2022.00016 pp. 75–86.
[17] W. Hasselbring, A. Krause, and C. Zirkelbach, “ExplorViz: Research on software visualization, comprehension and collaboration,” Software Impacts, vol. 6, Nov. 2020. DOI: 10.1016/j.simpa.2020.100034
[18] C. Zirkelbach, A. Krause, and W. Hasselbring, “Modularization of research software for collaborative open source development,” in Proceedings of the 9th International Conference on Advanced Collaborative Networks, Systems and Applications (COLLA 2019), Juni 2019, pp. 1–7. [Online]. Available: https://www.thinkmind.org/index. php?view=article&articleid=colla 2019 1 10 50005
[19] A. Krause, C. Zirkelbach, W. Hasselbring, S. Lenga, and D. Kroger, ¨ “Microservice decomposition via static and dynamic analysis of the monolith,” in Companion Proceedings of the 17th IEEE International Conference on Software Architecture (ICSA-C 2020), 2020. DOI: 10.1109/ICSA-C50368.2020.00011 pp. 9–16.
[20] F. Fittkau, A. Krause, and W. Hasselbring, “Exploring software cities in virtual reality,” in Proceedings of the 3rd IEEE Working Conference on Software Visualization (VISSOFT 2015), 2015. DOI: 10.1109/VISSOFT.2015.7332423 pp. 130–134.
[21] A. Krause-Glau, M. Hansen, and W. Hasselbring, “Collaborative program comprehension via software visualization in extended reality,” Information and Software Technology, vol. 151, p. 107007, 2022. DOI: 10.1016/j.infsof.2022.107007
[22] J. Buchan, S. G. MacDonell, and J. Yang, “Effective team onboarding in agile software development: techniques and goals,” in Proceeedings of the 13th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM 2019), 2019. DOI: 10.1109/ESEM.2019.8870189 pp. 1–11.
[23] P. Rodeghero, T. Zimmermann, B. Houck, and D. Ford, “Please turn your cameras on: Remote onboarding of software developers during a pandemic,” in Proceedings of the 43rd IEEE/ACM International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP 2021), 2021. DOI: 10.1109/ICSE-SEIP52600.2021.00013 pp. 41–50.
[24] A. Ju, H. Sajnani, S. Kelly, and K. Herzig, “A case study of onboarding in software teams: Tasks and strategies,” in Proceedings of the 43rd IEEE/ACM International Conference on Software Engineering (ICSE 2021), 2021. DOI: 10.1109/ICSE43902.2021.00063 pp. 613–623.
[25] T. Baum, H. Leßmann, and K. Schneider, “The Choice of Code Review Process: A Survey on the State of the Practice,” in Product-Focused Software Process Improvement, vol. 10611. Springer, 2017. DOI: 10.1007/978-3-319-69926-4 9 pp. 111–127.
[26] L. Dong, H. Zhang, L. Yang, Z. Weng, X. Yang, X. Zhou, and Z. Pan, “Survey on pains and best practices of code review,” in Proceedings of the 28th Asia-Pacific Software Engineering Conference (APSEC 2021), 2021. DOI: 10.1109/APSEC53868.2021.00055 pp. 482–491.
[27] L. Merino, M. Ghafari, C. Anslow, and O. Nierstrasz, “A systematic literature review of software visualization evaluation,” Journal of Systems and Software, vol. 144, no. C, p. 165–180, oct 2018. DOI: 10.1016/j.jss.2018.06.027
[28] D. Feitelson, “Considerations and pitfalls for reducing threats to the validity of controlled experiments on code comprehension,” Empirical Software Engineering, vol. 27, 11 2022. DOI: 10.1007/s10664-022- 10160-3
[29] M. D. Gall, W. R. Borg, and J. P. Gall, Education research, an introduction. Longman, 1996.
[30] A. Krause-Glau and W. Hasselbring, “Supplementary data for: Collaborative, code-proximal dynamic software visualization within code editors,” 2023. [Online]. Available: https://doi.org/10.5281/zenodo. 8111133
[31] D. Falessi, N. Juristo, C. Wohlin, B. Turhan, J. Munch, A. Jedlitschka, ¨ and M. Oivo, “Empirical software engineering experts on the use of students and professionals in experiments,” Empirical Softw. Engg., vol. 23, no. 1, p. 452–489, feb 2018. DOI: 10.1007/s10664-017-9523-3
[32] C. F. Camerer and R. M. Hogarth, “The effects of financial incentives in experiments: A review and capital-labor-production framework,” Journal of Risk and Uncertainty, vol. 19, no. 1, pp. 7–42, 1999. DOI: 10.1023/A:1007850605129
[33] L. Cohen, L. Manion, and K. Morrison, Research Methods in Education. Routledge, 2017.
[34] R. Wettel, M. Lanza, and R. Robbes, “Software systems as cities: a controlled experiment,” in Proceedings of the 33rd International Conference on Software Engineering (ICSE 2011), 2011. DOI: 10.1145/1985793.1985868 pp. 551–560.
[35] F. Galperin, R. Koschke, and M. Steinbeck, “Visualizing code smells: Tables or code cities? a controlled experiment,” in Proceedings of the 10th IEEE Working Conference on Software Visualization (VISSOFT 2022), 2022. DOI: 10.1109/VISSOFT55257.2022.00014 pp. 51–62.
[36] J. Siegmund, “Program comprehension: Past, present, and future,” in Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016), vol. 5, 2016. DOI: 10.1109/SANER.2016.35 pp. 13–20.
[37] R. Koschke and M. Steinbeck, “See your clones with your teammates,” in Proceedings of the 15th IEEE International Workshop on Software Clones (IWSC 2021), 2021. DOI: 10.1109/IWSC53727.2021.00009 pp. 15–21.
[38] R. Oberhauser and C. Lecon, “Gamified virtual reality for program code structure comprehension,” International Journal of Virtual Reality, vol. 17, no. 2, p. 79–88, Jan. 2017. DOI: 10.20870/IJVR.2017.17.2.2894
[39] P. Khaloo, M. Maghoumi, E. Taranta, D. Bettner, and J. Laviola, “Code Park: A new 3D code visualization tool,” in Proceedings of the 5th IEEE Working Conference on Software Visualization (VISSOFT 2017), 2017. DOI: 10.1109/VISSOFT.2017.10 pp. 43–53.
[40] A. Hori, M. Kawakami, and M. Ichii, “CodeHouse: VR code visualization tool,” in Proceedings of the 7th Working Conference on Software Visualization (VISSOFT 2019), 2019. DOI: 10.1109/VISSOFT.2019.00018 pp. 83–87.
[41] L. Merino, M. Ghafari, C. Anslow, and O. Nierstrasz, “CityVR: Gameful software visualization,” in Proceedings of the 33rd IEEE International Conference on Software Maintenance and Evolution (ICSME 2017), 2017. DOI: 10.1109/ICSME.2017.70 pp. 633–637.
[42] K. Borowski, B. Balis, and T. Orzechowski, “Graph Buddy — an interactive code dependency browsing and visualization tool,” in Proceedings of the 10th IEEE Working Conference on Software Visualization (VISSOFT 2022), 2022. DOI: 10.1109/VISSOFT55257.2022.00023 pp. 152–156.
[43] L. Lichtschlag, L. Spychalski, and J. Bochers, “CodeGraffiti: Using hand-drawn sketches connected to code bases in navigation tasks,” in Proceedings of the 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2014. DOI: 10.1109/VLHCC.2014.6883024 pp. 65–68.
[44] C. Kurtz, “Code gestalt: A software visualization tool for human beings,” in Extended Abstracts on Human Factors in Computing Systems (CHI 2011). New York, NY, USA: Association for Computing Machinery, 2011. DOI: 10.1145/1979742.1979518 p. 929–934.
[45] J. Dominic, B. Tubre, C. Ritter, J. Houser, C. Smith, and P. Rodeghero, “Remote pair programming in virtual reality,” in Proceedings of the 36th IEEE International Conference on Software Maintenance and Evolution (ICSME 2020), 2020. DOI: 10.1109/ICSME46990.2020.00046 pp. 406– 417.
Authors:
(1) Alexander Krause-Glau, Software Engineering Group, Kiel University, Kiel, Germany ([email protected]);
(2) Wilhelm Hasselbring, Software Engineering Group, Kiel University, Kiel, Germany ([email protected]).