Technical leverage analysis in the Python']Python ecosystem

被引:0
|
作者
Paramitha, Ranindya [1 ]
Massacci, Fabio [1 ,2 ]
机构
[1] Univ Trento, Dept Informat Engn & Comp Sci, Trento, Italy
[2] Vrije Univ Amsterdam, Fdn Secur, Amsterdam, Netherlands
关键词
Dependencies; Software libraries; Technical leverage; Empirical analysis; Vulnerabilities; !text type='Python']Python[!/text] ecosystem; Security; SOFTWARE; COST;
D O I
10.1007/s10664-023-10355-2
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Context: Technical leverage is the ratio between dependencies (other people's code) and own codes of a software package. It has been shown to be useful to characterize the Java ecosystem and there are also studies on the NPM ecosystem available.Objective: By using this metric we aim to analyze the Python ecosystem, how it evolves, and how secure it is, as a developer would perceive it when deciding to adopt or update (or not) a library.Method:We collect a dataset of the top 600 Python packages (corresponding to 21,205 versions) and used a number of innovative approaches for its analysis including the use of a two-part statistical model to deal with excess zeros, a mathematical closed formulation to estimate vulnerabilities that we confirm with bootstrapping on the actual dataset.Results: Small Python package versions have a median technical leverage of 6.9x their own code, while bigger package versions rely on dependencies code a tenth of their own (median leverage of 0.1). In terms of evolution, Python packages tend to have stable technical leverage through their evolution (once highly leveraged, always leveraged). On security, the chance of getting a safe package version when choosing a package is actually better than previous research has shown based on the ratio of safe package versions in the ecosystem.Coclusions: Python packages ship a lot of other people's code and tend to keep doing so. However, developers will have a good chance to choose a safe package version.
引用
下载
收藏
页数:31
相关论文
共 50 条
  • [1] Technical leverage analysis in the Python ecosystem
    Ranindya Paramitha
    Fabio Massacci
    Empirical Software Engineering, 2023, 28
  • [2] Evolution of technical debt remediation in Python']Python: A case study on the Apache Software Ecosystem
    Tan, Jie
    Feitosa, Daniel
    Avgeriou, Paris
    Lungu, Mircea
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2021, 33 (04)
  • [3] Python']Python: An Ecosystem for Scientific Computing
    Perez, Fernando
    Granger, Brian E.
    Hunter, John D.
    COMPUTING IN SCIENCE & ENGINEERING, 2011, 13 (02) : 13 - 21
  • [4] Typosquatting and Combosquatting Attacks on the Python']Python Ecosystem
    Vu, Duc-Ly
    Pashchenko, Ivan
    Massacci, Fabio
    Plate, Henrik
    Sabetta, Antonino
    2020 IEEE EUROPEAN SYMPOSIUM ON SECURITY AND PRIVACY WORKSHOPS (EUROS&PW 2020), 2020, : 509 - 514
  • [5] PyAEM: A Python']Python toolkit for aquatic ecosystem modelling
    Huang, Jiacong
    Kong, Ming
    Zhang, Chen
    Cui, Zhen
    Tian, Feng
    Gao, Junfeng
    ECOLOGICAL INFORMATICS, 2020, 60
  • [6] What Are the Dominant Projects in the GitHub Python']Python Ecosystem?
    Ma, Wanwangying
    Chen, Lin
    Zhou, Yuming
    Xu, Baowen
    PROCEEDINGS 2016 THIRD INTERNATIONAL CONFERENCE ON TRUSTWORTHY SYSTEMS AND THEIR APPLICATIONS (TSA), 2016, : 87 - 95
  • [7] Python']Python for Data Analytics, Scientific and Technical Applications
    Nagpal, Abhinav
    Gabrani, Goldie
    PROCEEDINGS 2019 AMITY INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE (AICAI), 2019, : 140 - 145
  • [8] Explore, edit and leverage genomic annotations using Python']Python GTF toolkit
    Lopez, F.
    Charbonnier, F. G.
    Kermezli, Y.
    Belhocine, M.
    Ferre, Q.
    Zweig, N.
    Aribi, M.
    Gonzalez, A.
    Spicuglia, S.
    Puthier, D.
    BIOINFORMATICS, 2019, 35 (18) : 3487 - 3488
  • [9] Watchman: Monitoring Dependency Conflicts for Python']Python Library Ecosystem
    Wang, Ying
    Wen, Ming
    Liu, Yepang
    Wang, Yibo
    Li, Zhenming
    Wang, Chao
    Yu, Hai
    Cheung, Shing-Chi
    Xu, Chang
    Zhu, Zhiliang
    2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020), 2020, : 125 - 135
  • [10] An empirical analysis of the transition from Python']Python 2 to Python']Python 3
    Malloy, Brian A.
    Power, James F.
    EMPIRICAL SOFTWARE ENGINEERING, 2019, 24 (02) : 751 - 778