English
Related papers

Related papers: Lifestate: Event-Driven Protocols and Callback Con…

200 papers

We present lifestate rules--an approach for abstracting event-driven object protocols. Developing applications against event-driven software frameworks is notoriously difficult. One reason why is that to create functioning applications,…

Programming Languages · Computer Science 2017-01-03 Shawn Meier , Aleksandar Chakarov , Maxwell Russek , Sergio Mover , Bor-Yuh Evan Chang

Event-driven programming frameworks, such as Android, are based on components with asynchronous interfaces. The protocols for interacting with these components can often be described by finite-state machines we dub *callback typestates*.…

This paper determines if a callback can be called by an event-driven framework in an unexpected state.Event-driven programming frameworks are pervasive for creating user-interactive apps on just about every modern platform.Control flow…

Programming Languages · Computer Science 2023-09-13 Shawn Meier , Sergio Mover , Gowtham Kaki , Bor-Yuh Evan Chang

Managing stateful resources safely and expressively is a longstanding challenge in programming languages, especially in the presence of aliasing. While scope-based constructs such as Java's synchronized blocks offer ease of reasoning, they…

Programming Languages · Computer Science 2025-10-13 Songlin Jia , Craig Liu , Siyuan He , Haotian Deng , Yuyan Bao , Tiark Rompf

One of the challenges of analyzing, testing and debugging Android apps is that the potential execution orders of callbacks are missing from the apps' source code. However, bugs, vulnerabilities and refactoring transformations have been…

Software Engineering · Computer Science 2017-03-31 Danilo Dominguez Perez , Wei Le

Event-driven programming is widely used for implementing user interfaces, web applications, and non-blocking I/O. An event-driven program is organized as a collection of event handlers whose execution is triggered by events. Traditional…

Programming Languages · Computer Science 2019-10-30 Ming-Ho Yee , Ayaz Badouraly , Ondřej Lhoták , Frank Tip , Jan Vitek

Pull-stream is a JavaScript demand-driven functional design pattern based on callback functions that enables the creation and easy composition of independent modules that are used to create streaming applications. It is used in popular open…

Programming Languages · Computer Science 2018-01-19 Erick Lavoie , Laurie Hendren

Unique challenges arise when testing mobile applications due to their prevailing event-driven nature and complex contextual features (e.g. sensors, notifications). Current automated input generation approaches for Android apps are typically…

Software Engineering · Computer Science 2018-01-22 Kevin Moran , Mario Linares-Vasquez , Carlos Bernal-Cardenas , Christopher Vendome , Denys Poshyvanyk

Testing is a commonly used approach to ensure the quality of software, of which model-based testing is a hot topic to test GUI programs such as Android applications (apps). Existing approaches mainly either dynamically construct a model…

Software Engineering · Computer Science 2017-08-24 Jiwei Yan , Tianyong Wu , Jun Yan , Jian Zhang

Developing and enforcing study protocols is crucial in medical research, especially as interactions with participants become more intricate. Traditional rules-based systems struggle to provide the automation and flexibility required for…

Human-Computer Interaction · Computer Science 2025-01-23 Samuel E. Armstrong , Mitchell A. Klusty , Aaron D. Mullen , Jeffery C. Talbert , V. K. Cody Bumgardner

App quality has been shown to be the most important indicator of app adoption. To assure quality, developers mainly use testing to find bugs in app and apply structural and GUI test coverage criteria. However, mobile apps have more…

Software Engineering · Computer Science 2019-11-22 Danilo Dominguez Perez , Wei Le

Runtime enforcement can be effectively used to improve the reliability of software applications. However, it often requires the definition of ad hoc policies and enforcement strategies, which might be expensive to identify and implement.…

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

Asynchronous programming is a ubiquitous systems programming idiom to manage concurrent interactions with the environment. In this style, instead of waiting for time-consuming operations to complete, the programmer makes a non-blocking call…

Logic in Computer Science · Computer Science 2015-03-17 Pierre Ganty , Rupak Majumdar

GUI-based models extracted from Android app execution traces, events, or source code can be extremely useful for challenging tasks such as the generation of scenarios or test cases. However, extracting effective models can be an expensive…

Software Engineering · Computer Science 2018-01-22 Mario Linares-Vasquez , Martin White , Carlos Bernal-Cardenas , Kevin Moran , Denys Poshyvanyk

The ecosystem in which mobile applications run is highly heterogeneous and configurable. All layers upon which mobile apps are built offer wide possibilities of variations, from the device and the hardware, to the operating system and…

Software Engineering · Computer Science 2020-02-06 Mariano Ceccato , Davide Corradini , Luca Gazzola , Fitsum Meshesha Kifetew , Leonardo Mariani , Matteo Orrù , Paolo Tonella

As smartphones become increasingly more powerful, a new generation of highly interactive user-centric mobile apps emerge to make user's life simpler and more productive. Mobile phones applications have to sustain limited resource…

Software Engineering · Computer Science 2019-06-06 Oscar J. Romero , Sushma A. Akoju

Distributed systems have become increasingly prevalent in the software industry. Due to their intrinsic complexity, much research has focused on the verification of their behaviour. An active research line is around behaviour models that…

Programming Languages · Computer Science 2026-04-09 Francisco Parrinha , João Mota , António Ravara

The behavior of mobile devices is highly non deterministic and barely predictable due to the interaction of the user with its applications. In consequence, analyzing the correctness of applications running on a smartphone involves dealing…

Software Engineering · Computer Science 2015-04-10 Ana Rosario Espada , María del Mar Gallardo , Alberto Salmerón , Pedro Merino

With the continuous rise in the popularity of Android mobile devices, automated testing of apps has become more important than ever. Android apps are event-driven programs. Unfortunately, generating all possible types of events by…

Mobile developers face unique challenges when detecting and reporting crashes in apps due to their prevailing GUI event-driven nature and additional sources of inputs (e.g., sensor readings). To support developers in these tasks, we…

Software Engineering · Computer Science 2017-06-06 Kevin Moran , Mario Linares-Vásquez , Carlos Bernal-Cárdenas , Christopher Vendome , Denys Poshyvanyk
‹ Prev 1 2 3 10 Next ›