Abstract:
Understanding dependency relationship between various program elements in an object-oriented system is essential for many software engineering applications. In this paper, we propose a novel approach of transforming a Java project into a connected graph comprising of program elements (represented as graph nodes) connected to each other using ownership and dependency relationships (represented as edges). These graphs, named as JavaRelationshipGraphs (JRG) are created and stored using Neo4j Graph Database. Additionally, the proposed JavaRelationshipGraphs framework provides details about the two-staged conversion process along with the algorithms involved. The JRG framework uses compiled Java project to obtain the corresponding graph, which can be effectively visualized and queried using the Neo4j browser. JRG is capable of representing most of the important object-oriented features like inheritance, encapsulation, method overloading and overriding. Hence, they are suitable for use in software engineering applications like program dependence analysis, code mining, etc.