Multi-Language Program Understanding Tool

Navid Rostami Ravari, Rodziah Latih, Abdullah Mohd Zin

Abstract


Open-source programs have gained popularity due to their decentralized, quick development cycles and accessibility to everyone. Program understanding is vital for open-source software developers to modify or improve the code. However, one problem open-source developers face is the difficulty in understanding the programs as the program grows large and becomes complex. The current program understanding tool is inefficient because it only supports one programming language, while open-source programs are written in various languages. This paper discusses a new program understanding technique that facilitates multi-language program understanding. The proposed technique helps developers to understand open-source programs by supporting two unique features: multimedia and additional comments. We carried out this study in four stages. First, we examined available tools and techniques in software understanding to identify their strengths and weaknesses. Second, we proposed a new technique. Third, we designed a new tool to implement the new technique. Lastly, we evaluated the tool using a survey. We invited twenty users, including students and programmers, to use the system and ask for their feedback. The evaluation of the proposed techniques shows that the respondents have a positive perception as they agree that the technique helped them better understand the program. The multimedia support and an additional comment provided by the tool significantly improve user understanding of the program. For future work, we would like to explore the possibility of utilizing some machine-learning techniques to enhance the process of program understanding.

Keywords


Program comprehension; program visualization; open-source software; source code; multimedia

Full Text:

PDF

References


S. Butler et al., “On Company Contributions to Community Open Source Software Projects,†IEEE Trans. Softw. Eng., vol. 47, no. 7, 2021.

A. Khandelwal, “Impact of Open Source Software in Research,†2020.

A. Azlen, M. Nordin, R. Latih, and N. M. Ali, “Using SaaS to Enhance Productivity for Software Developers: A Systematic Literature Review,†J. Theor. Appl. Inf. Technol., vol. 31, p. 24, 2020.

Sumandeep Kaur, “Issues in Open-Source Software ,†Int. J. Comput. Sci. Commun., vol. 11, no. 2, pp. 47–51, 2020.

G. M. Kapitsaki, N. D. Tselikas, K.-I. D. Kyriakou, and M. Papoutsoglou, “Help me with this: A categorization of open source software problems,†Inf. Softw. Technol., vol. 152, p. 107034, Dec. 2022.

A. Mohd Zin, S. Ahmad Aljunid, Z. Shukur, and M. Jan Nordin, “A Knowledge-based Automated Debugger in Learning System,†2000.

O. Levy and D. G. Feitelson, “Understanding large-scale software systems – structure and flows,†Empir. Softw. Eng., vol. 26, no. 3, p. 48, May 2021.

S. A. Aljunid, Abdullah Mohd Zin, and Zarina Shukur, “A Study on the Program Comprehension and Debugging Processes of Novice Programmers,†J. Softw. Eng., vol. 6, no. 1, pp. 1–9, 2012.

M. Hassan, “How do we Help Students ‘See the Forest from the Trees?,’†in Proceedings of the 2022 ACM Conference on International Computing Education Research - Volume 2, 2022, pp. 3–4.

Z. Ahsan, U. Obaidellah, and M. Danaee, “Is Self-Rated Confidence a Predictor for Performance in Programming Comprehension Tasks?,†APSIPA Trans. Signal Inf. Process., vol. 11, no. 1, 2022.

N. Al Madi and M. Zang, “Would a Rose by any Other Name Smell as Sweet? Examining the Cost of Similarity in Identifier Naming,†in The 33rd Psychology of Programming Interest Group (PPIG 2022), 2022.

H. Eicken et al., “Connecting Top-Down and Bottom-Up Approaches in Environmental Observing,†Bioscience, vol. 71, no. 5, pp. 467–483, May 2021.

S. Letovsky, “Cognitive processes in program comprehension,†J. Syst. Softw., vol. 7, no. 4, pp. 325–339, Dec. 1987.

A. Fekete and Z. Porkoláb, “A comprehensive review on software comprehension models,†Ann. Math. Informaticae, vol. 51, pp. 103–111, 2020.

A. A. Shargabi, S. A. Aljunid, M. Annamalai, and A. M. Zin, “Performing Tasks Can Improve Program Comprehension Mental Model of Novice Developers,†in Proceedings of the 28th International Conference on Program Comprehension, 2020, pp. 263–273.

P. Lima, J. Melegati, E. Gomes, N. S. Pereira, E. Guerra, and P. Meirelles, “CADV: A software visualization approach for code annotations distribution,†Inf. Softw. Technol., vol. 154, p. 107089, Feb. 2023.

E. Fregnan, J. Fröhlich, D. Spadini, and A. Bacchelli, “Graph-based visualization of merge requests for code review,†J. Syst. Softw., vol. 195, p. 111506, Jan. 2023.

Stephan Diehl, Software Visualization - Visualizing the Structure, Behaviour, and Evolution of Software. 2007.

N. Chotisarn et al., “A systematic literature review of modern software visualization,†J. Vis., vol. 23, no. 4, pp. 539–558, Aug. 2020.

Azila Adnan and Muhamad F B Noor Hassim, “Infographics in Teaching and Learning: An Attention Grabber,†in International University Carnival on E-Learning (IUCEL) Proceedings 2022, 2022.

M. Dias, D. Orellana, S. Vidal, L. Merino, and A. Bergel, “Evaluating a Visual Approach for Understanding JavaScript Source Code,†in Proceedings of the 28th International Conference on Program Comprehension, 2020, pp. 128–138.

M. Kargar, A. Isazadeh, and H. Izadkhah, “Improving the modularization quality of heterogeneous multi-programming software systems by unifying structural and semantic concepts,†J. Supercomput., vol. 76, no. 1, pp. 87–121, Jan. 2020.

D. Limberger, W. Scheibel, J. van Dieken, and J. Döllner, “Procedural texture patterns for encoding changes in color in 2.5D treemap visualizations,†J. Vis., Oct. 2022.

L. Bedu, O. Tinh, and F. Petrillo, “A Tertiary Systematic Literature Review on Software Visualization,†in 2019 Working Conference on Software Visualization (VISSOFT), 2019, pp. 33–44.

R. Ishizue, K. Sakamoto, H. Washizaki, and Y. Fukazawa, “PVC.js: visualizing C programs on web browsers for novices,†Heliyon, vol. 6, no. 4, p. e03806, Apr. 2020.

M. Mladenović, Ž. Žanko, and M. Aglić Čuvić, “The impact of using program visualization techniques on learning basic programming concepts at the K–12 level,†Comput. Appl. Eng. Educ., vol. 29, no. 1, 2021.

M. Altherwi, “An empirical study of programming language effect on open source software development,†in Proceedings Companion of the 2019 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity, 2019, pp. 49–51.

Mohan Krishna Kagita and Li Xiujuan, “Machine Learning Techniques for Multimedia Communications in Business Marketing,†J. Mult. Log. Soft Comput. , vol. 36, no. 1, pp. 151–167, 2021.

H. He, “Understanding source code comments at large-scale,†in Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2019, pp. 1217–1219.

S. Panthaplackel, J. J. Li, M. Gligoric, and R. J. Mooney, “Deep Just-In-Time Inconsistency Detection Between Comments and Source Code,†Proc. AAAI Conf. Artif. Intell., vol. 35, no. 1, pp. 427–435, May 2021.

X. Song, H. Sun, X. Wang, and J. Yan, “A Survey of Automatic Generation of Source Code Comments: Algorithms and Techniques,†IEEE Access, vol. 7, pp. 111411–111428, 2019.

J. Nielsen, J. Lewis, and C. Turner, “Determining Usability Test Sample Size,†in International Encyclopedia of Ergonomics and Human Factors, Second Edition - 3 Volume Set, CRC Press, 2006.




DOI: http://dx.doi.org/10.18517/ijaseit.13.4.18019

Refbacks

  • There are currently no refbacks.



Published by INSIGHT - Indonesian Society for Knowledge and Human Development