Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3305160.3305173acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicsimConference Proceedingsconference-collections
research-article

JavaRelationshipGraphs (JRG): Transforming Java Projects into Graphs using Neo4j Graph Databases

Published: 10 January 2019 Publication History

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.

References

[1]
Arora, R,. and Goel, S. 2015. Investigating Syntactic and Semantic Inconsistencies in Collaborative Software Development. In Proceedings of the 2015 Eighth International Conference on Contemporary Computing (IC3). IEEE, 2015, 509--515.
[2]
Arora, R., Goel, S., and Mittal, R. K. 2016. Using Dependency Graphs to Support Collaboration Over GitHub: The Neo4j Graph Database Approach. In Proceedings of the 2016 Ninth International Conference on Contemporary Computing (IC3). IEEE, 2016, 1--7.
[3]
Arora, R., Goel, S., and Mittal, R. K. 2016. Supporting Collaborative Software Development over GitHub. Software: Practice and Experience, John Wiley & Sons. 2016, 1393--1416.
[4]
Arora, R. 2016. A Framework and Tool for Supporting Collaborative Work in Software Development. Doctoral Thesis. BITS, Pilani.
[5]
Ferrante, J., Ottenstein, K. J., and Warren, J. D. 1987. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems (TOPLAS), 9, no. 3, 1987, ACM, 319--349.
[6]
GitHub, Inc. (US), "Build software better, together," GitHub, 2016. Available: https://github.com/.
[7]
Harrold, M. J., and Rothermel, G. 1996. A coherent family of analyzable graphical representations for object-oriented software. Dept. of CS&IS, The Ohio State University, Technical Report OSU-CISRC-11/96-TR60.
[8]
Henderson, T. A. D, and Podgurski, A. 2016. Sampling code clones from program dependence graphs with GRAPLE. In Proceedings of the 2nd International Workshop on Software Analytics. ACM. 2016. 47--53.
[9]
Horwitz, S., Reps, T., and Binkley, D. 1990. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems (TOPLAS), 12, no. 1, 1990, ACM, 26--60.
[10]
Larsen, L., Harrold, M. J. 1996. Slicing object-oriented software. In Proceedings of the 18th International Conference on Software Engineering. IEEE, 1996, 495--505.
[11]
Malloy, B., McGregor, J. D., Krishnaswamy, A., and Medikonda, M. 1994. An extensible program representation for object-oriented software. SIGPLAN. Notices 29, no. 12 (1994): 38--47.
[12]
Najumudheen, E. S. F., Mall, R., and Samanta D. 2009. A dependence graph-based representation for test coverage analysis of object-oriented programs, ACM SIGSOFT Software Engineering Notes, 34(2), 2009, 1--8.
[13]
Najumudheen, E. S. F., Mall, R., and Samanta D. 2010. A Dependence Representation for Coverage Testing of Object-Oriented Programs. Journal of Object Technology. 9, no. 4, 2010, 1--23.
[14]
Neo Technology, Inc., "Neo4j: The world's leading graph database," Neo4j Graph Database, 2016. {http://neo4j.com/}.
[15]
Rothermel, G., and Harrold, M. J. 1994. Selecting Regression Tests for Object-Oriented Software. In ICSM. vol. 94, 1994, 14--25.
[16]
Ryder, B. G. 1979. Constructing the call graph of a program. IEEE Transactions on Software Engineering. 3, 1979, IEEE, 216--226.
[17]
Sarma, A., Bortis, G., and Hoek, A. 2007. Towards supporting awareness of indirect conflicts across software configuration management workspaces. In Proceedings of IEEE/ACM international conference on Automated software engineering. ACM, 2007, 94--103.
[18]
Shu, G., Sun B., Henderson, T. A. D., and Podgurski, A. 2013. JavaPDG: A new platform for program dependence analysis. In 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation (ICST), IEEE, 2013, 408--415.
[19]
Walkinshaw, N., Roper, M., and Wood M. 2003. The Java system dependence graph. In Proceedings of Third IEEE International Workshop on Source Code Analysis and Manipulation. IEEE, 2003, 55--64.
[20]
Zhao, J. 1998. Applying program dependence analysis to Java software. In Proceedings of International Computer Workshop on Software Engineering and Database Systems. 1998, 162--169.

Cited By

View all
  • (2024)Semantic Code Graph—An Information Model to Facilitate Software ComprehensionIEEE Access10.1109/ACCESS.2024.335184512(27279-27310)Online publication date: 2024
  • (2022)An Automated Graph Construction Approach from Relational Databases to Neo4j2022 IEEE 22nd International Symposium on Computational Intelligence and Informatics and 8th IEEE International Conference on Recent Achievements in Mechatronics, Automation, Computer Science and Robotics (CINTI-MACRo)10.1109/CINTI-MACRo57952.2022.10029438(000131-000136)Online publication date: 21-Nov-2022
  • (2020)Speeding up the data extraction of machine learning approaches: a distributed frameworkProceedings of the 4th ACM SIGSOFT International Workshop on Machine-Learning Techniques for Software-Quality Evaluation10.1145/3416505.3423562(13-18)Online publication date: 13-Nov-2020

Index Terms

  1. JavaRelationshipGraphs (JRG): Transforming Java Projects into Graphs using Neo4j Graph Databases

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    ICSIM '19: Proceedings of the 2nd International Conference on Software Engineering and Information Management
    January 2019
    293 pages
    ISBN:9781450366427
    DOI:10.1145/3305160
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 10 January 2019

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Dependency Analysis in Java Programs
    2. Dependency graphs
    3. Neo4j Graph Databases
    4. Object-oriented languages

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    ICSIM 2019

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)10
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 09 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Semantic Code Graph—An Information Model to Facilitate Software ComprehensionIEEE Access10.1109/ACCESS.2024.335184512(27279-27310)Online publication date: 2024
    • (2022)An Automated Graph Construction Approach from Relational Databases to Neo4j2022 IEEE 22nd International Symposium on Computational Intelligence and Informatics and 8th IEEE International Conference on Recent Achievements in Mechatronics, Automation, Computer Science and Robotics (CINTI-MACRo)10.1109/CINTI-MACRo57952.2022.10029438(000131-000136)Online publication date: 21-Nov-2022
    • (2020)Speeding up the data extraction of machine learning approaches: a distributed frameworkProceedings of the 4th ACM SIGSOFT International Workshop on Machine-Learning Techniques for Software-Quality Evaluation10.1145/3416505.3423562(13-18)Online publication date: 13-Nov-2020

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media