Arman Naeimian, Master’s candidate
David R. Cheriton School of Computer Science
Function Call Graphs (FCGs) have been used widely in different software engineering areas. Since call graphs provide us with detailed information about the structure of software elements and components and how they are connected with each other, they could be used in detecting specific structures and patterns in the code. Therefore, they are used for the detection of malwares, code clones, plagiarism, unreachable code, and many other software symptoms that could be searched by their structural features.
In this work, we have analyzed parallel paths in function call graphs in three Java open-source projects and investigated the reasons they are created and used and also the problems that result in removing parallel paths. Moreover, we have used the results of our analyses to find instances of parallel paths in the projects that we analyzed and suggest some changes to developers based on that.
200 University Avenue West
Waterloo, ON N2L 3G1