English
Related papers

Related papers: Why and How Java Developers Break APIs

200 papers

Complex software systems have a network of dependencies. Developers often configure package managers (e.g., npm) to automatically update dependencies with each publication of new releases containing bug fixes and new features. When a…

Software Engineering · Computer Science 2024-01-24 Daniel Venturini , Filipe Roseiro Cogo , Ivanilton Polato , Marco A Gerosa , Igor Scaliante Wiese

Aspects of frameworks, such as inversion of control and the structure of framework applications, require developers to adjust their debugging strategies as compared to debugging sequential programs. However, the benefits and challenges of…

Software Engineering · Computer Science 2018-01-17 Zack Coker , David Gray Widder , Claire Le Goues , Christopher Bogart , Joshua Sunshine

Context: Web APIs are one of the most used ways to expose application functionality on the Web, and their understandability is important for efficiently using the provided resources. While many API design rules exist, empirical evidence for…

Software Engineering · Computer Science 2024-09-12 Justus Bogner , Sebastian Kotstein , Timo Pfaff

To avoid software vulnerabilities, organizations are shifting security to earlier stages of the software development, such as at code review time. In this paper, we aim to understand the developers' perspective on assessing software…

Software Engineering · Computer Science 2022-08-09 Larissa Braz , Alberto Bacchelli

The Android framework provides a rich set of APIs that can be exploited by developers to build their apps. However, the rapid evolution of these APIs jointly with the specific characteristics of the lifecycle of the Android components…

Software Engineering · Computer Science 2022-02-25 Oliviero Riganelli , Ionut Daniel Fagadau , Daniela Micucci , Leonardo Mariani

In the past decades, integrated development environments (IDEs) have been largely advanced to facilitate common software engineering tasks. Yet, with growing information needs driven by increasing complexity in developing modern…

Software Engineering · Computer Science 2021-11-02 Haipeng Cai

With over 500,000 commits and more than 700 contributors, the Android platform is undoubtedly one of the largest industrial-scale software projects. This project provides the Android API, and developers heavily rely on this API to develop…

Software Engineering · Computer Science 2022-06-01 Pei Liu , Li Li , Yichun Yan , Mattia Fazzini , John Grundy

Hyrum's law states a common observation in the software industry: "With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody".…

Software Engineering · Computer Science 2021-10-20 Nicolas Harrand , Amine Benelallam , César Soto-Valero , François Bettega , Olivier Barais , Benoit Baudry

Software is infamous for its poor quality and frequent occurrence of bugs. While there is no doubt that thorough testing is an appropriate answer to ensure sufficient quality, the poor state of software generally suggests that developers…

Software Engineering · Computer Science 2023-09-06 Philipp Straubinger , Gordon Fraser

Background. Pull requests are a common practice for contributing and reviewing contributions, and are employed both in open-source and industrial contexts. One of the main goals of code reviews is to find defects in the code, allowing…

Software Engineering · Computer Science 2019-08-27 Valentina Lenarduzzi , Vili Nikkola , Nyyti Saarimäki , Davide Taibi

Software libraries implement APIs that deliver reusable functionalities. To correctly use these functionalities, software applications must satisfy certain correctness policies, for instance policies about the order some API methods can be…

Software Engineering · Computer Science 2020-10-14 Oliviero Riganelli , Daniela Micucci , Leonardo Mariani

To ensure that Large Language Models (LLMs) effectively support user productivity, they need to be adjusted. Existing Code Readability (CR) models can guide this alignment. However, there are concerns about their relevance in modern…

Software Engineering · Computer Science 2024-01-29 Agnia Sergeyuk , Olga Lvova , Sergey Titov , Anastasiia Serova , Farid Bagirov , Evgeniia Kirillova , Timofey Bryksin

Research has shown that cryptographic APIs are hard to use. Consequently, developers resort to using code examples available in online information sources that are often not secure. We have developed a web platform, named CryptoExplorer,…

Software Engineering · Computer Science 2020-01-06 Mohammadreza Hazhirpasand , Mohammad Ghafari , Oscar Nierstrasz

As a codebase expands over time, its library dependencies can become outdated and require updates to maintain innovation and security. However, updating a library can introduce breaking changes in the code, necessitating significant…

Software Engineering · Computer Science 2025-11-25 Vali Tawosi , Salwa Alamir , Xiaomo Liu , Manuela Veloso

Third-party libraries (TPLs) have become an essential component of software, accelerating development and reducing maintenance costs. However, breaking changes often occur during the upgrades of TPLs and prevent client programs from moving…

Software Engineering · Computer Science 2023-09-19 Wenke Li , Feng Wu , Cai Fu , Fan Zhou

Software design debt aims to elucidate the rectification attempts of the present design flaws and studies the influence of those to the cost and time of the software. Design smells are a key cause of incurring design debt. Although the…

Software Engineering · Computer Science 2023-10-24 Asif Imran , Tevfik Kosar

Web communication has become an indispensable characteristic of mobile apps. However, it is not clear what data the apps transmit, to whom, and what consequences such transmissions have. We analyzed the web communications found in mobile…

Cryptography and Security · Computer Science 2020-06-03 Pascal Gadient , Mohammad Ghafari , Marc-Andrea Tarnutzer , Oscar Nierstrasz

Open source projects are adopting faster release cycles that reflect various changes. Therefore, comprehending the effects of these changes on software's architecture over the releases becomes necessary. However, it is challenging to keep…

Software Engineering · Computer Science 2020-12-23 A Eashaan Rao , Dheeraj Vagavolu , Sridhar Chimalakonda

Software development is getting changed so rapidly. It will be highly benefited if we can accelerate software development process by guiding developers. Appropriate guidelines and accurate recommendations to developers during development…

Software Engineering · Computer Science 2020-06-24 Ratul Uddin Ashraf , Anujoy Das , Ziaur Rahman , Ali Newaz Bahar , Husne Ara Rubaiyeat

Dealing with the evolution of operating systems is challenging for developers of mobile apps, who have to deal with frequent upgrades that often include backward incompatible changes of the underlying API framework. As a consequence of…

Software Engineering · Computer Science 2019-11-22 Marco Mobilio , Oliviero Riganelli , Daniela Micucci , Leonardo Mariani