Systematic comparison of six open-source Java call graph construction tools

Judit Jász, István Siket, Edit Pengo, Zoltán Ságodi, R. Ferenc

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Call graphs provide the groundwork for numerous analysis algorithms and tools. However, in practice, their construction may have several ambiguities, especially for object-oriented programming languages like Java. The characteristics of the call graphs - which are influenced by building requirements such as scalability, efficiency, completeness, and precision - can greatly affect the output of the algorithms utilizing them. Therefore, it is important for developers to know a well-defined set of criteria based on which they can choose the most appropriate call graph builder tool for their static analysis applications. In this paper, we studied and compared six static call graph creator tools for Java. Our aim was to identify linguistic and technical properties that might induce differences in the generated call graphs besides the obvious differences caused by the various call graph construction algorithms. We evaluated the tools on multiple real-life open-source Java systems and performed a quantitative and qualitative assessment of the resulting graphs. We have shown how different outputs could be generated by the different tools. By manually analyzing the differences found on larger programs, we also found differences that we did not expect based on our preliminary assumptions.

Original languageEnglish
Title of host publicationICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies
EditorsMarten van Sinderen, Leszek Maciaszek, Leszek Maciaszek
PublisherSciTePress
Pages117-128
Number of pages12
ISBN (Electronic)9789897583797
Publication statusPublished - Jan 1 2019
Event14th International Conference on Software Technologies, ICSOFT 2019 - Prague, Czech Republic
Duration: Jul 26 2019Jul 28 2019

Publication series

NameICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies

Conference

Conference14th International Conference on Software Technologies, ICSOFT 2019
CountryCzech Republic
CityPrague
Period7/26/197/28/19

Fingerprint

Object oriented programming
Static analysis
Linguistics
Computer programming languages
Scalability

Keywords

  • Call graph
  • Java
  • Static analysis
  • Tool comparison

ASJC Scopus subject areas

  • Information Systems
  • Computer Science Applications
  • Software

Cite this

Jász, J., Siket, I., Pengo, E., Ságodi, Z., & Ferenc, R. (2019). Systematic comparison of six open-source Java call graph construction tools. In M. van Sinderen, L. Maciaszek, & L. Maciaszek (Eds.), ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies (pp. 117-128). (ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies). SciTePress.

Systematic comparison of six open-source Java call graph construction tools. / Jász, Judit; Siket, István; Pengo, Edit; Ságodi, Zoltán; Ferenc, R.

ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies. ed. / Marten van Sinderen; Leszek Maciaszek; Leszek Maciaszek. SciTePress, 2019. p. 117-128 (ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Jász, J, Siket, I, Pengo, E, Ságodi, Z & Ferenc, R 2019, Systematic comparison of six open-source Java call graph construction tools. in M van Sinderen, L Maciaszek & L Maciaszek (eds), ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies. ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies, SciTePress, pp. 117-128, 14th International Conference on Software Technologies, ICSOFT 2019, Prague, Czech Republic, 7/26/19.
Jász J, Siket I, Pengo E, Ságodi Z, Ferenc R. Systematic comparison of six open-source Java call graph construction tools. In van Sinderen M, Maciaszek L, Maciaszek L, editors, ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies. SciTePress. 2019. p. 117-128. (ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies).
Jász, Judit ; Siket, István ; Pengo, Edit ; Ságodi, Zoltán ; Ferenc, R. / Systematic comparison of six open-source Java call graph construction tools. ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies. editor / Marten van Sinderen ; Leszek Maciaszek ; Leszek Maciaszek. SciTePress, 2019. pp. 117-128 (ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies).
@inproceedings{4d1bbaa2d90247aeabc5d78aa2bdc7e5,
title = "Systematic comparison of six open-source Java call graph construction tools",
abstract = "Call graphs provide the groundwork for numerous analysis algorithms and tools. However, in practice, their construction may have several ambiguities, especially for object-oriented programming languages like Java. The characteristics of the call graphs - which are influenced by building requirements such as scalability, efficiency, completeness, and precision - can greatly affect the output of the algorithms utilizing them. Therefore, it is important for developers to know a well-defined set of criteria based on which they can choose the most appropriate call graph builder tool for their static analysis applications. In this paper, we studied and compared six static call graph creator tools for Java. Our aim was to identify linguistic and technical properties that might induce differences in the generated call graphs besides the obvious differences caused by the various call graph construction algorithms. We evaluated the tools on multiple real-life open-source Java systems and performed a quantitative and qualitative assessment of the resulting graphs. We have shown how different outputs could be generated by the different tools. By manually analyzing the differences found on larger programs, we also found differences that we did not expect based on our preliminary assumptions.",
keywords = "Call graph, Java, Static analysis, Tool comparison",
author = "Judit J{\'a}sz and Istv{\'a}n Siket and Edit Pengo and Zolt{\'a}n S{\'a}godi and R. Ferenc",
year = "2019",
month = "1",
day = "1",
language = "English",
series = "ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies",
publisher = "SciTePress",
pages = "117--128",
editor = "{van Sinderen}, Marten and Leszek Maciaszek and Leszek Maciaszek",
booktitle = "ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies",

}

TY - GEN

T1 - Systematic comparison of six open-source Java call graph construction tools

AU - Jász, Judit

AU - Siket, István

AU - Pengo, Edit

AU - Ságodi, Zoltán

AU - Ferenc, R.

PY - 2019/1/1

Y1 - 2019/1/1

N2 - Call graphs provide the groundwork for numerous analysis algorithms and tools. However, in practice, their construction may have several ambiguities, especially for object-oriented programming languages like Java. The characteristics of the call graphs - which are influenced by building requirements such as scalability, efficiency, completeness, and precision - can greatly affect the output of the algorithms utilizing them. Therefore, it is important for developers to know a well-defined set of criteria based on which they can choose the most appropriate call graph builder tool for their static analysis applications. In this paper, we studied and compared six static call graph creator tools for Java. Our aim was to identify linguistic and technical properties that might induce differences in the generated call graphs besides the obvious differences caused by the various call graph construction algorithms. We evaluated the tools on multiple real-life open-source Java systems and performed a quantitative and qualitative assessment of the resulting graphs. We have shown how different outputs could be generated by the different tools. By manually analyzing the differences found on larger programs, we also found differences that we did not expect based on our preliminary assumptions.

AB - Call graphs provide the groundwork for numerous analysis algorithms and tools. However, in practice, their construction may have several ambiguities, especially for object-oriented programming languages like Java. The characteristics of the call graphs - which are influenced by building requirements such as scalability, efficiency, completeness, and precision - can greatly affect the output of the algorithms utilizing them. Therefore, it is important for developers to know a well-defined set of criteria based on which they can choose the most appropriate call graph builder tool for their static analysis applications. In this paper, we studied and compared six static call graph creator tools for Java. Our aim was to identify linguistic and technical properties that might induce differences in the generated call graphs besides the obvious differences caused by the various call graph construction algorithms. We evaluated the tools on multiple real-life open-source Java systems and performed a quantitative and qualitative assessment of the resulting graphs. We have shown how different outputs could be generated by the different tools. By manually analyzing the differences found on larger programs, we also found differences that we did not expect based on our preliminary assumptions.

KW - Call graph

KW - Java

KW - Static analysis

KW - Tool comparison

UR - http://www.scopus.com/inward/record.url?scp=85073103290&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85073103290&partnerID=8YFLogxK

M3 - Conference contribution

AN - SCOPUS:85073103290

T3 - ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies

SP - 117

EP - 128

BT - ICSOFT 2019 - Proceedings of the 14th International Conference on Software Technologies

A2 - van Sinderen, Marten

A2 - Maciaszek, Leszek

A2 - Maciaszek, Leszek

PB - SciTePress

ER -