Multi-Language Program Understanding Tool

Navid Rostami Ravari (1), Rodziah Latih (2), Abdullah Mohd Zin (3)
(1) Center for Software Technology and Management, Faculty of Information Science and Technology, Universiti Kebangsaan Malaysia, 43600 UKM Bangi, Malaysia
(2) Center for Software Technology and Management, Faculty of Information Science and Technology, Universiti Kebangsaan Malaysia, 43600 UKM Bangi, Malaysia
(3) Faculty of Computing and Multimedia, Universiti Poly-Tech Malaysia, Kuala Lumpur, Malaysia
Fulltext View | Download
How to cite (IJASEIT) :
Ravari, Navid Rostami, et al. “Multi-Language Program Understanding Tool”. International Journal on Advanced Science, Engineering and Information Technology, vol. 13, no. 4, Aug. 2023, pp. 1554-60, doi:10.18517/ijaseit.13.4.18019.
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.

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.

Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.

Authors who publish with this journal agree to the following terms:

    1. Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
    2. Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
    3. Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).