Abstracting Event-Driven Systems with Lifestate Rules
Shawn Meier, Aleksandar Chakarov, Maxwell Russek, Sergio Mover, and, Bor-Yuh Evan Chang

TL;DR
This paper introduces lifestate rules as a unified approach to abstract and understand complex event-driven object protocols, specifically applied to Android framework types, aiding developers in managing intricate callback and API call sequences.
Contribution
It presents a novel model for event-driven systems and a specification mining method to derive lifestate rules from Android framework behavior.
Findings
Successfully derived rules characterizing Android framework behavior
Lifestate rules unify lifecycle and typestate constraints
Enhanced understanding of event-driven object protocols
Abstract
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, developers must know about and understand the complex protocols that abstract the internal behavior of the framework. Such protocols intertwine the proper registering of callbacks to receive control from the framework with appropriate application programming interface (API) calls to delegate back to it. Lifestate rules unify lifecycle and typestate constraints in one common specification language. Our primary contribution is a model of event-driven systems from which lifestate rules can be derived. We then apply specification mining techniques to learn lifestate specifications for Android framework types. In the end, our implementation is able to find…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Advanced Malware Detection Techniques · Advanced Software Engineering Methodologies
