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.