Improving component coupling information with dynamic profiling
George Kakarontzas, Christina Pardalidou · 2018
Software engineers can use reverse engineering as a helpful tool during program comprehension. Various programs, for example, allow the generation of UML diagrams that depict the program's components visually. However, these diagrams are produced using static analysis alone and do not differentiate between the various degrees of coupling between components. In this work, we use program profiling to identify coupling intensity between the various program components. In addition, our approach is able to identify hidden coupling, not produced through reverse engineering and highlight the most important components in a large system. We have created an open source software analysis tool, named COMPOSITOR, that analyzes program traces produced through program profiling and we discuss here the application of our approach in a small and a larger Java program to draw conclusions on how these two different scenarios can be approached.