TY - GEN
T1 - ENRE
T2 - 41st IEEE/ACM International Conference on Software Engineering: Companion, ICSE-Companion 2019
AU - Jin, Wuxia
AU - Cai, Yuanfang
AU - Kazman, Rick
AU - Zheng, Qinghua
AU - Cui, Di
AU - Liu, Ting
N1 - Publisher Copyright:
© 2019 IEEE.
PY - 2019/5
Y1 - 2019/5
N2 - 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).
AB - 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).
KW - Entity relation extraction
KW - Golang
KW - Implicit dependency
KW - Python
UR - https://www.scopus.com/pages/publications/85071873576
U2 - 10.1109/ICSE-Companion.2019.00040
DO - 10.1109/ICSE-Companion.2019.00040
M3 - 会议稿件
AN - SCOPUS:85071873576
T3 - Proceedings - 2019 IEEE/ACM 41st International Conference on Software Engineering: Companion, ICSE-Companion 2019
SP - 67
EP - 70
BT - Proceedings - 2019 IEEE/ACM 41st International Conference on Software Engineering
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 25 May 2019 through 31 May 2019
ER -