Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1109/ICSE-Companion.2019.00040acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

ENRE: a tool framework for extensible eNtity relation extraction

Published: 25 May 2019 Publication History

Abstract

Understanding the dependencies among code entities is fundamental to many software analysis tools and techniques. However, with the emergence of new programming languages and paradigms, the increasingly common practice of writing systems in multiple languages, and the increasing popularity of dynamic languages, no existing framework can reliably extract this information. That is, no tools exist to accurately extract dependencies from systems written in multiple and dynamic languages. To address this problem, we have designed and implemented the Extensible eNtity Relation Extraction (ENRE) framework. ENRE supports the extraction of entities and their dependencies from systems written in multiple languages, enables the customization of dependencies of interest to the user, and makes implicit dependencies explicit. To demonstrate feasibility of this framework, we developed two ENRE instances for analyzing Python and Golang programs. Our experiments on 12 Python and Golang projects demonstrated the effectiveness and flexibility of ENRE. By comparing with a commercial static analysis tool, we show that we can extract dependencies from Golang programs which are not supported by existing tools and we can reveal implicit dependencies in Python.
(Demo Video: https://youtu.be/BfXp5bb1yqc)

References

[1]
T. Lutellier, D. Chollak, J. Garcia, L. Tan, D. Rayside, N. Medvidovic, and R. Kroeger, "Comparing software architecture recovery techniques using accurate dependencies," in Proceedings of the 37th Intl Conference on Software Engineering, vol. 2, 2015, pp. 69--78.
[2]
R. Mo, Y. Cai, R. Kazman, L. Xiao, and Q. Feng, "Decoupling level: a new metric for architectural maintenance complexity," in Proceedings of the 38th Intl Conference on Software Engineering, 2016, pp. 499--510.
[3]
W. Jin, T. Liu, Y. Qu, Q. Zheng, D. Cui, and J. Chi, "Dynamic structure measurement for distributed software," Software Quality Journal, vol. 26, no. 3, pp. 1119--1145, 2018.
[4]
M. Fan, J. Liu, X. Luo, K. Chen, Z. Tian, Q. Zheng, and T. Liu, "Android malware familial classification and representative sample selection via frequent subgraph analysis," IEEE Transactions on Information Forensics and Security, vol. 13, no. 8, pp. 1890--1905, Aug 2018.
[5]
"Understand," https://scitools.com/features/.
[6]
G. Gharibi, R. Tripathi, and Y. Lee, "Code2graph: automatic generation of static call graphs for python source code," in Proceedings of the 33rd Intl Conference on Automated Software Engineering, 2018, pp. 880--883.
[7]
"rexdep," https://github.com/itchyny/rexdep.
[8]
"Doxygen," http://www.doxygen.nl.
[9]
T. Parr, The definitive ANTLR 4 reference. Pragmatic Bookshelf, 2013.

Cited By

View all
  • (2024)Three Heads Are Better Than One: Suggesting Move Method Refactoring Opportunities with Inter-class Code Entity Dependency Enhanced Hybrid Hypergraph Neural NetworkProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695068(745-757)Online publication date: 27-Oct-2024
  • (2024)Cross-Language Dependencies: An Empirical Study of Kotlin-JavaProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3686680(189-199)Online publication date: 24-Oct-2024
  • (2024)ERD-CQC : Enhanced Rule and Dependency Code Quality Check for JavaProceedings of the 15th Asia-Pacific Symposium on Internetware10.1145/3671016.3674820(377-386)Online publication date: 24-Jul-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '19: Proceedings of the 41st International Conference on Software Engineering: Companion Proceedings
May 2019
369 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 25 May 2019

Check for updates

Author Tags

  1. entity relation extraction
  2. golang
  3. implicit dependency
  4. python

Qualifiers

  • Research-article

Conference

ICSE '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)1
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Three Heads Are Better Than One: Suggesting Move Method Refactoring Opportunities with Inter-class Code Entity Dependency Enhanced Hybrid Hypergraph Neural NetworkProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695068(745-757)Online publication date: 27-Oct-2024
  • (2024)Cross-Language Dependencies: An Empirical Study of Kotlin-JavaProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3686680(189-199)Online publication date: 24-Oct-2024
  • (2024)ERD-CQC : Enhanced Rule and Dependency Code Quality Check for JavaProceedings of the 15th Asia-Pacific Symposium on Internetware10.1145/3671016.3674820(377-386)Online publication date: 24-Jul-2024
  • (2024)CLUE: Customizing clustering techniques using machine learning for software modularizationProceedings of the 15th Asia-Pacific Symposium on Internetware10.1145/3671016.3674816(189-198)Online publication date: 24-Jul-2024
  • (2024)HECS: A Hypergraph Learning-Based System for Detecting Extract Class Refactoring OpportunitiesProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3685307(1851-1855)Online publication date: 11-Sep-2024
  • (2024)One-to-One or One-to-Many? Suggesting Extract Class Refactoring Opportunities with Intra-class Dependency Hypergraph Neural NetworkProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680379(1529-1540)Online publication date: 11-Sep-2024
  • (2024)CoEdPilot: Recommending Code Edits with Learned Prior Edit Relevance, Project-wise Awareness, and Interactive NatureProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652142(466-478)Online publication date: 11-Sep-2024
  • (2024)PyAnalyzer: An Effective and Practical Approach for Dependency Extraction from Python CodeProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3640325(1-12)Online publication date: 20-May-2024
  • (2020)ARCADE: an extensible workbench for architecture recovery, change, and decay evaluationProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3417941(1546-1550)Online publication date: 8-Nov-2020
  • (2020)Exploring the architectural impact of possible dependencies in Python softwareProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416619(758-770)Online publication date: 21-Dec-2020

View Options

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