English

Abstracting Event-Driven Systems with Lifestate Rules

Programming Languages 2017-01-03 v1

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 several rules that characterize actual behavior of the Android framework.

Keywords

Cite

@article{arxiv.1701.00161,
  title  = {Abstracting Event-Driven Systems with Lifestate Rules},
  author = {Shawn Meier and Aleksandar Chakarov and Maxwell Russek and Sergio Mover and Bor-Yuh Evan Chang},
  journal= {arXiv preprint arXiv:1701.00161},
  year   = {2017}
}
R2 v1 2026-06-22T17:38:31.295Z