If you want to analyze a program statically, you probably will need to use call graphs. “A call graph is a control flow graph, which represents calling relationships between subroutines in a computer program.” according to Wikipedia. For Java, the nodes of a call graph are methods, and edges represent method calls. Call graphs have various applications from security analysis such as malware detection or simplest applications such as finding unused methods — a method is unused if there is no path from the app's entry point to that method. You may have seen this feature in an IDE like…

Navid Salehnamadi

I’m a Ph.D. student in Software Engineering at UCI. I like to automate things and play music.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store