Live Software Development Environment Using Virtual Reality: A Prototype and Experiment

Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 1172)


Successful software systems tend to grow considerably, ending up suffering from essential complexity, and very hard to understand as a whole. Software visualization techniques have been explored as one approach to ease software understanding. This work presents a novel approach and environment for software development that explores the use of liveness and virtual reality (VR) as a way to shorten the feedback loop between developers and their software systems in an interactive and immersive way. As a proof-of-concept, the authors developed a prototype that uses a visual city metaphor and allows developers to visit and dive into the system, in a live way. To assess the usability and viability of the approach, the authors carried on experiments to evaluate the effectiveness of the approach, and how to best support a live approach for software development.


Software engineering Virtual reality Live Software Development Live programming Software visualization 


  1. 1.
    Aguiar, A., Restivo, A., Figueiredo Correia, F., Ferreira, H.S., Dias, J.P.: Live software development – tightening the feedback loops. In: Conference Companion of the 3rd International Conference on Art, Science, and Engineering of Programming. Programming 2019 Companion (2019)Google Scholar
  2. 2.
    Alam, S., Dugerdil, P.: EvoSpaces: 3D visualization of software architecture. In: 19th International Conference on Software Engineering and Knowledge Engineering, vol. 7, pp. 500–505. IEEE (2007)Google Scholar
  3. 3.
    Amaral, D., Domingues, G., Dias, J.P., Ferreira, H.S., Aguiar, A., Nóbrega, R.: Live software development: an environment for Java using virtual reality. In: Proceedings of the 14th International Conference on Evaluation of Novel Approaches to Software Engineering, ENASE, vol. 1, pp. 37–46. INSTICC, SciTePress (2019).
  4. 4.
    Bartoszuk, C., Timoszuk, G., Dabrowski, R., Stencel, K.: Magnify - a new tool for software visualization. In: 2013 Federated Conference on Computer Science and Information Systems, pp. 1485–1488, September 2013Google Scholar
  5. 5.
    Bassil, S., Keller, R.K.: Software visualization tools: survey and analysis. In: Proceedings of the 9th International Workshop on Program Comprehension, IWPC 2001, pp. 7–17. IEEE Computer Society, Washington, DC (2001)Google Scholar
  6. 6.
    De Pauw, W., Jensen, E., Mitchell, N., Sevitsky, G., Vlissides, J., Yang, J.: Visualizing the execution of Java programs. In: Diehl, S. (ed.) Software Visualization. LNCS, vol. 2269, pp. 151–162. Springer, Heidelberg (2002). Scholar
  7. 7.
    Elliott, A., Peiris, B., Parnin, C.: Virtual reality in software engineering: affordances, applications, and challenges. In: Proceedings of the 37th International Conference on Software Engineering, ICSE 2015, vol. 2, pp. 547–550. IEEE Press, Piscataway (2015)Google Scholar
  8. 8.
    Fauzi, E., Hendradjaya, B., Sunindyo, W.D.: Reverse engineering of source code to sequence diagram using abstract syntax tree. In: 2016 International Conference on Data and Software Engineering (ICoDSE), pp. 1–6, October 2016.
  9. 9.
    Feijs, L., Krikhaar, R., Ommering, R.V.: A relational approach to support software architecture analysis. Softw. Pract. Exp. 28(4), 371–400 (1998)CrossRefGoogle Scholar
  10. 10.
    Feist, M.D., Santos, E.A., Watts, I., Hindle, A.: Visualizing project evolution through abstract syntax tree analysis. In: 2016 IEEE Working Conference on Software Visualization (VISSOFT), pp. 11–20, October 2016.
  11. 11.
    Gosain, A., Sharma, G.: A survey of dynamic program analysis techniques and tools. In: Satapathy, S.C., Biswal, B.N., Udgata, S.K., Mandal, J.K. (eds.) Proceedings of the 3rd International Conference on Frontiers of Intelligent Computing: Theory and Applications (FICTA) 2014. AISC, vol. 327, pp. 113–122. Springer, Cham (2015). Scholar
  12. 12.
    Guéhéneuc, Y.G.: A reverse engineering tool for precise class diagrams. In: Proceedings of the 2004 Conference of the Centre for Advanced Studies on Collaborative Research, CASCON 2004, pp. 28–41. IBM Press (2004)Google Scholar
  13. 13.
    Hancock, C.M.: Real-time programming and the big ideas of computational literacy. Ph.D. thesis, Massachusetts Institute of Technology (2003)Google Scholar
  14. 14.
    Jones, J.: Abstract syntax tree implementation idioms. In: Proceedings of the 10th Conference on Pattern Languages of Programs (PLoP2003) (2003)Google Scholar
  15. 15.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–354. Springer, Heidelberg (2001). Scholar
  16. 16.
    Koschke, R.: Software visualization in software maintenance, reverse engineering, and re-engineering: a research survey. J. Softw. Maint. Evol.: Res. Pract. 15(2), 87–109 (2003). Scholar
  17. 17.
    Lanza, M., Ducasse, S.: Polymetric views-a lightweight visual approach to reverse engineering. IEEE Trans. Softw. Eng. 29(9), 782–795 (2003). Scholar
  18. 18.
    Lourenço, P., Dias, J.P., Aguiar, A., Ferreira, H.S., Restivo, A.: CloudCity: a live approach and environment for the management of cloud infrastructures. Commun. Comput. Inf. Sci. (2019)Google Scholar
  19. 19.
    Maalej, W., Tiarks, R., Roehm, T., Koschke, R.: On the comprehension of program comprehension. ACM Trans. Softw. Eng. Methodol. 23(4), 31:1–31:37 (2014). Scholar
  20. 20.
    Marcus, A., Comorski, D., Sergeyev, A.: Supporting the evolution of a software visualization tool through usability studies. In: 13th International Workshop on Program Comprehension (IWPC 2005), pp. 307–316, May 2005.
  21. 21.
    McDirmid, S.: Usable live programming. In: Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software - Onward! 2013, pp. 53–62. ACM Press, New York (2013).
  22. 22.
    Merino, L., Ghafari, M., Anslow, C., Nierstrasz, O.: CityVR: gameful software visualization. In: 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 633–637, September 2017.
  23. 23.
    Panas, T., Berrigan, R., Grundy, J.: A 3D metaphor for software production visualization. In: Proceedings on Seventh International Conference on Information Visualization, IV 2003, pp. 314–319, July 2003.
  24. 24.
    Romano, S., Capece, N., Erra, U., Scanniello, G., Lanza, M.: The city metaphor in software visualization: feelings, emotions, and thinking. Multimed. Tools Appl. 78, 1–37 (2019)CrossRefGoogle Scholar
  25. 25.
    Rumbaugh, J., Jacobson, I., Booch, G.: Unified Modeling Language Reference Manual, 2nd edn. Pearson Higher Education (2004)Google Scholar
  26. 26.
    Sadar, A., Panicker, V.: DocTool - a tool for visualizing software projects using graph database. In: 2015 Eighth International Conference on Contemporary Computing (IC3), pp. 439–442, August 2015.
  27. 27.
    Sensalire, M., Ogao, P., Telea, A.: Evaluation of software visualization tools: lessons learned. In: 2009 5th IEEE International Workshop on Visualizing Software for Understanding and Analysis, pp. 19–26, September 2009.
  28. 28.
    Shi, N., Olsson, R.A.: Reverse engineering of design patterns from Java source code. In: Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering, ASE 2006, pp. 123–134. IEEE Computer Society, Washington, DC (2006).
  29. 29.
    Singh, N., Singh, S.: Virtual reality: a brief survey. In: 2017 International Conference on Information Communication and Embedded Systems (ICICES), pp. 1–6, February 2017.
  30. 30.
    Tanimoto, S.L.: A perspective on the evolution of live programming. In: Proceedings of the 1st International Workshop on Live Programming, LIVE 2013, pp. 31–34. IEEE Press, Piscataway (2013)Google Scholar
  31. 31.
    Teyseyre, A.R., Campo, M.R.: An overview of 3D software visualization. IEEE Trans. Vis. Comput. Graph. 15(1), 87–105 (2009). Scholar
  32. 32.
    Vincur, J., Navrat, P., Polasek, I.: VR city: software analysis in virtual reality environment. In: 2017 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C), pp. 509–516, July 2017.
  33. 33.
    Wettel, R.: Software systems as cities. Ph.D. thesis, Faculty of Informatics of the Università della Svizzera Italiana, September 2010Google Scholar
  34. 34.
    Wettel, R., Lanza, M., Robbes, R.: Software systems as cities: a controlled experiment. In: Proceedings of the 33rd International Conference on Software Engineering, ICSE 2011, pp. 551–560. ACM, New York (2011).
  35. 35.
    Wohlin, C.: Empirical software engineering: teaching methods and conducting studies. In: Basili, V.R., Rombach, D., Schneider, K., Kitchenham, B., Pfahl, D., Selby, R.W. (eds.) Empirical Software Engineering Issues. Critical Assessment and Future Directions. LNCS, vol. 4336, pp. 135–142. Springer, Heidelberg (2007). Scholar
  36. 36.
    Yuan, D., Park, S., Zhou, Y.: Characterizing logging practices in open-source software. In: 2012 34th International Conference on Software Engineering (ICSE), pp. 102–112, June 2012.

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  1. 1.Faculty of EngineeringUniversity of PortoPortoPortugal
  2. 2.INESC TECPortoPortugal

Personalised recommendations