English
Related papers

Related papers: A Longitudinal Study of Dependency Reclassificatio…

200 papers

Lehman's Laws teach us that a software system will become progressively less satisfying to its users over time, unless it is continually adapted to meet new needs. Understanding software maintenance can potentially relieve many of the pains…

Software Engineering · Computer Science 2019-03-13 Stanislav Levin , Amiram Yehudai

Software and systems traceability is widely accepted as an essential element for supporting many software development tasks. Today's version control systems provide inbuilt features that allow developers to tag each commit with one or more…

Software Engineering · Computer Science 2018-04-10 Michael Rath , Jacob Rendall , Jin L. C. Guo , Jane Cleland-Huang , Patrick Maeder

Reusing third-party libraries increases productivity and saves time and costs for developers. However, the downside is the presence of vulnerabilities in those libraries, which can lead to catastrophic outcomes. For instance, Apache Log4J…

Software Engineering · Computer Science 2024-11-20 Yi Wen Heng , Zeyang Ma , Haoxiang Zhang , Zhenhao Li , Tse-Hsun , Chen

Open-source software (OSS) plays a crucial role in modern software development. Utilizing OSS code can greatly accelerate software development, reduce redundancy, and enhance reliability. Python, a widely adopted programming language, is…

Software Engineering · Computer Science 2024-08-21 Zhiqing Zhong , Shilin He , Haoxuan Wang , Boxi Yu , Haowen Yang , Pinjia He

Developers interrupting their participation in a project might slowly forget critical information about the code, such as its intended purpose, structure, the impact of external dependencies, and the approach used for implementation.…

Software Engineering · Computer Science 2023-08-29 Dario Amoroso d'Aragona , Luca Pascarella , Andrea Janes , Valentina Lenarduzzi , Rafael Penaloza , Davide Taibi

Refactoring is a well-known technique that is widely adopted by software engineers to improve the design and enable the evolution of a system. Knowing which refactoring operations were applied in a code change is a valuable information to…

Software Engineering · Computer Science 2018-08-07 Danilo Silva , Marco Tulio Valente

Build scripts for most build systems describe the actions to run, and the dependencies between those actions---but often build scripts get those dependencies wrong. Most build scripts have both too few dependencies (leading to incorrect…

Programming Languages · Computer Science 2022-02-14 Sarah Spall , Neil Mitchell , Sam Tobin-Hochstadt

Refactoring is a maintenance activity that aims to improve design quality while preserving the behavior of a system. Several (semi)automated approaches have been proposed to support developers in this maintenance activity, based on the…

Software Engineering · Computer Science 2019-05-20 Rodrigo Morales , Foutse Khomh , Giuliano Antoniol

Despite the availability of refactoring as a feature in popular IDEs, recent studies revealed that developers are reluctant to use them, and still prefer the manual refactoring of their code. At JetBrains, our goal is to fully support…

Software Engineering · Computer Science 2021-07-20 Yaroslav Golubev , Zarina Kurbatova , Eman Abdullah AlOmar , Timofey Bryksin , Mohamed Wiem Mkaouer

Breaking changes cause a lot of effort to both downstream and upstream developers: downstream developers need to adapt to breaking changes and upstream developers are responsible for identifying and documenting them. In the NPM ecosystem,…

Software Engineering · Computer Science 2024-10-15 Dezhen Kong , Jiakun Liu , Lingfeng Bao , David Lo

Pre-trained models (PTMs) are machine learning models that have been trained in advance, often on large-scale data, and can be reused for new tasks, thereby reducing the need for costly training from scratch. Their widespread adoption…

Software Engineering · Computer Science 2026-02-19 Jerin Yasmin , Wenxin Jiang , James C. Davis , Yuan Tian

Dependency solving is a hard (NP-complete) problem in all non-trivial component models due to either mutually incompatible versions of the same packages or explicitly declared package conflicts. As such, software upgrade planning needs to…

Software Engineering · Computer Science 2020-11-17 Pietro Abate , Roberto Di Cosmo , Georgios Gousios , Stefano Zacchiroli

Context: Dependency Injection (DI) is a commonly applied mechanism to decouple classes from their dependencies in order to provide higher modularization. However, bad DI practices often lead to negative consequences, such as increasing…

Software Engineering · Computer Science 2021-10-19 Rodrigo Laigner , Diogo Mendonça , Alessandro Garcia , Marcos Kalinowski

Popular adoption of third-party libraries for contemporary software development has led to the creation of large inter-dependency networks, where sustainability issues of a single library can have widespread network effects. Maintainers of…

Decision-making is a key software engineering skill. Developers constantly make choices throughout the software development process, from requirements to implementation. While prior work has studied developer decision-making, the choices…

Software Engineering · Computer Science 2023-01-25 Jenny T. Liang , Maryam Arab , Minhyuk Ko , Amy J. Ko , Thomas D. LaToza

To build secure software, developers often work together during software development and maintenance to find, fix, and prevent security vulnerabilities. Examining the nature of developer interactions during their security activities…

Software Engineering · Computer Science 2019-07-30 Song Wang , Nachi Nagappan

Developers build all the software artifacts in development. Existing work has studied the social behavior in software repositories. In one of the most important software repositories, a bug repository, developers create and update bug…

Software Engineering · Computer Science 2017-04-18 Jifeng Xuan , He Jiang , Zhilei Ren , Weiqin Zou

Maintaining software is an ongoing process that stretches beyond the initial release. Stable software versions continuously evolve to fix bugs, add improvements, address security issues, and ensure compatibility. This ongoing support…

Software Engineering · Computer Science 2025-11-13 Jarin Tasnim , Debasish Chakroborti , Chanchal K. Roy , Kevin A. Schneider

This study investigates vulnerabilities within the Maven ecosystem by analyzing a comprehensive dataset of 14,459,139 releases. Our analysis reveals the most critical weaknesses that pose significant threats to developers and their projects…

Software Engineering · Computer Science 2025-03-31 Costain Nachuma , Md Mosharaf Hossan , Asif Kamal Turzo , Minhaz F. Zibran

Application Programming Interfaces (APIs) facilitate the integration of third-party dependencies within the code of client applications. However, changes to an API, such as deprecation, modification of parameter names or types, or complete…

Software Engineering · Computer Science 2026-04-14 Frank Reyes , May Mahmoud , Federico Bono , Sarah Nadi , Benoit Baudry , Martin Monperrus