Multi-programming language software systems modularization. (December 2019) - Kargar, Masoud; Isazadeh, Ayaz; Izadkhah, Habib
Abstract: A software system evolves over time to meet the user's new requirements as well as to adapt to the environment. This causes it deviates from its original and documented structure. Hence, after a while, due to its low understandability, making new changes will not be easy. Modularization is utilized to extract the software system structure from the source code to understand it. Recently, there has been a significant increase in writing large-scale applications in collaboration with several programming languages; for example, Mozilla Firefox 3.7 is written in more than twenty programming languages. Understanding such applications for maintaining them is a challenging problem. Existing modularization methods to understand an application are only applicable to programs which are written in a programming language. This paper introduces the concept of multi-programming language modularization. It then presents a technique for modularization of applications which are written in multiple programming languages. The results on Mozilla Firefox demonstrate that the proposed approach can extract a modularization close to human experts, a capability which may help in understanding an application.