UCL Discovery
UCL home » Library Services » Electronic resources » UCL Discovery

Charting the API minefield using software telemetry data

Kechagia, M; Mitropoulos, D; Spinellis, D; (2015) Charting the API minefield using software telemetry data. Empirical Software Engineering , 20 pp. 1785-1830. 10.1007/s10664-014-9343-7. Green open access

[thumbnail of kechagia_emse_15.pdf]
kechagia_emse_15.pdf - Accepted Version

Download (1MB) | Preview


Programs draw significant parts of their functionality through the use of Application Programming Interfaces (APIs). Apart from the way developers incorporate APIs in their software, the stability of these programs depends on the design and implementation of the APIs. In this work, we report how we used software telemetry data to analyze the causes of API failures in Android applications. Specifically, we got 4.9 GB worth of crash data that thousands of applications sent to a centralized crash report management service. We processed that data to extract approximately a million stack traces, stitching together parts of chained exceptions, and established heuristic rules to draw the border between applications and the API calls. We examined a set of more than a half million stack traces associated with risky API calls to map the space of the most common application failure reasons. Our findings show that the top ones can be attributed to memory exhaustion, race conditions or deadlocks, and missing or corrupt resources. Given the classes of the crash causes we identified, we recommend API design and implementation choices, such as specific exceptions, default resources, and non-blocking algorithms, that can eliminate common failures. In addition, we argue that development tools like memory analyzers, thread debuggers, and static analyzers can prevent crashes through early code testing and analysis. Finally, some execution platform and framework designs for process and memory management can also eliminate some application crashes.

Type: Article
Title: Charting the API minefield using software telemetry data
Open access status: An open access version is available from UCL Discovery
DOI: 10.1007/s10664-014-9343-7
Publisher version: https://doi.org/10.1007/s10664-014-9343-7
Language: English
Additional information: This version is the author accepted manuscript. For information on re-use, please refer to the publisher’s terms and conditions.
Keywords: Application programming interfaces, Stack traces, Reliability, Mobile applications
UCL classification: UCL
UCL > Provost and Vice Provost Offices > UCL BEAMS
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science
URI: https://discovery.ucl.ac.uk/id/eprint/10102135
Downloads since deposit
Download activity - last month
Download activity - last 12 months
Downloads by country - last 12 months

Archive Staff Only

View Item View Item