ACKNOWLEDGEMENTS
We want to thank the anonymous reviewers for their
valuable comments and suggestions to improve this ar-
ticle. This work is part of the “Software-DNA” project,
which is funded by the European Regional Develop-
ment Fund (ERDF or EFRE in German) and the State
of Brandenburg (ILB). This work is also part of the
KMU project “KnowhowAnalyzer” (Förderkennze-
ichen 01IS20088B), which is funded by the German
Ministry for Education and Research (Bundesminis-
terium für Bildung und Forschung).
REFERENCES
Abdalkareem, R., Nourry, O., Wehaibi, S., Mujahid, S., and
Shihab, E. (2017). Why do developers use trivial pack-
ages? an empirical case study on npm. In Proc. 11th
Joint Meeting on Foundations of Software Engineering,
FSE ’17, pages 385–395. ACM.
Antal, G., Hegedus, P., Tóth, Z., Ferenc, R., and Gyimóthy,
T. (2018). Static javascript call graphs: a comparative
study. In Proc. 18th International Working Conference
on Source Code Analysis and Manipulation, SCAM
’18, pages 177–186. IEEE.
Bogar., A. M., Lyons., D. M., and Baird., D. (2018).
Lightweight call-graph construction for multilingual
software analysis. In Proc. 13th International Confer-
ence on Software Technologies, ICSOFT ’18, pages
328–337. INSTICC, SciTePress.
Bogart, C., Kästner, C., and Herbsleb, J. (2015). When it
breaks, it breaks: how ecosystem developers reason
about the stability of dependencies. In Proc. Interna-
tional Conference on Automated Software Engineering
Workshop, ASEW ’15, pages 86–89. IEEE.
Boldi, P. and Gousios, G. (2020). Fine-grained network
analysis for modern software ecosystems. ACM Trans-
actions on Internet Technology, 21(1):1–14.
Chaturvedi, K. K., Sing, V., and Singh, P. (2013). Tools in
mining software repositories. In Proc. 13th Interna-
tional Conference on Computational Science and Its
Applications, ICCSA ’13, pages 89–98. IEEE.
Collard, M. L., Decker, M. J., and Maletic, J. I. (2013).
srcML: an infrastructure for the exploration, analysis,
and manipulation of source code: a tool demonstra-
tion. In Proc. International Conference on Software
Maintenance, ICSM ’13, pages 516–519. IEEE.
De Roover, C., Lämmel, R., and Pek, E. (2013). Multi-
dimensional exploration of api usage. In Proc. 21st
International Conference on Program Comprehension,
ICPC ’13, pages 152–161. IEEE.
Decan, A., Mens, T., and Constantinou, E. (2018). On the
impact of security vulnerabilities in the npm package
dependency network. In Proc. 15th International Con-
ference on Mining Software Repositories, MSR ’18,
pages 181–191. ACM.
Goldberg, A. (1984). Smalltalk-80: the interactive pro-
gramming environment, chapter 10, pages 196–201.
Addison-Wesley Longman Publishing Co., Inc.
Hanam, Q., Mesbah, A., and Holmes, R. (2019). Aiding code
change understanding with semantic change impact
analysis. In Proc. International Conference on Soft-
ware Maintenance and Evolution, ICSME ’19, pages
202–212. IEEE.
Hejderup, J., Beller, M., Triantafyllou, K., and Gousios, G.
(2021). Präzi: from package-based to call-based de-
pendency networks. arXiv preprint arXiv:2101.09563.
Hejderup, J., van Deursen, A., and Gousios, G. (2018). Soft-
ware ecosystem call graph for dependency manage-
ment. In Proc. 40th International Conference on Soft-
ware Engineering: New Ideas and Emerging Technolo-
gies Results, ICSE ’18 – NIER Track, pages 101–104.
IEEE.
Hora, A. and Valente, M. T. (2015). apiwave: keeping track
of api popularity and migration. In Proc, International
Conference on Software Maintenance and Evolution,
ICSME ’15, pages 321–323. IEEE.
Jensen, S. H., Møller, A., and Thiemann, P. (2009).
Type analysis for javascript. In Proc. International
Static Analysis Symposium, SAS ’09, pages 238–255.
Springer.
Karrer, T., Krämer, J.-P., Diehl, J., Hartmann, B., and
Borchers, J. (2011). Stacksplorer: call graph navi-
gation helps increasing code maintenance efficiency.
In Proc. 24th Symposium on User Interface Software
and Technology, UIST ’11, pages 217–224.
Katz, J. (2020). Libraries.io open source repository and
dependency metadata.
Keshani, M. (2021). Scalable call graph constructor for
maven. In Proc. 43rd International Conference on
Software Engineering: Companion Proceedings, ICSE-
Companion ’21, pages 99–101. IEEE.
Kikas, R., Gousios, G., Dumas, M., and Pfahl, D. (2017).
Structure and evolution of package dependency net-
works. In Proc. 14th International Conference on Min-
ing Software Repositories, MSR ’17, pages 102–112.
IEEE.
Krämer, J.-P., Kurz, J., Karrer, T., and Borchers, J. (2012).
Blaze: supporting two-phased call graph navigation in
source code. In Proc. Human Factors in Computing
Systems – Extended Abstracts, CHI ’12, pages 2195–
2200. ACM.
Lämmel, R., Pek, E., and Starek, J. (2011). Large-scale, ast-
based api-usage analysis of open-source java projects.
In Proc. Symposium on Applied Computing, SAC ’11,
pages 1317–1324. ACM.
Liu, C., Xia, X., Lo, D., Gao, C., Yang, X., and Grundy, J.
(2020). Opportunities and challenges in code search
tools. arXiv preprint arXiv:2011.02297.
Mileva, Y. M., Dallmeier, V., and Zeller, A. (2010). Mining
api popularity. In Proc. 5th International Academic
and Industrial Conference on Testing – Practice and
Research Techniques, TAIC PART ’10, pages 173–180.
Springer, Springer-Verlag.
Nielsen, B. B., Torp, M. T., and Møller, A. (2021). Modular
call graph construction for security scanning of node.js
Augmenting Library Development by Mining Usage Data from Downstream Dependencies
231