Collaborative Research: SHF: Medium: Precise Static Analysis of Event-based Systems

Project: Research project

Project Details

Description

Event-based programming is used to construct software systems with billions of users, including mobile apps, Web clients and servers, and Internet-of-Things devices. Despite their popularity, event-based systems are poorly understood and prone to errors because the underlying platform, not the program, generates and invokes events. These difficulties have wide-ranging consequences such as losing users' work in mobile apps, silent errors or downtime in Web services, and unexpected Internet-of-Things device behavior. This project is (1) making event-based systems easier to analyze, (2) constructing an approach for extracting order between certain key events before the program runs, to prevent ordering errors, and (3) allowing rigorous reasoning about event-induced volatility, to prevent errors such as state loss and state inconsistency. The project is introducing students to new approaches to event-based system reliability, as well as providing researchers and software developers with models and infrastructure for analyzing such systems. End-users are expected to benefit from more reliable event-based systems, whether mobile, browser/server, or Internet-of-Things. The project is increasing the participation of underrepresented groups in computing via outreach, mentoring, and research involvement. Event-based systems continue to surge in popularity. The relative novelty of this paradigm, coupled with essential programming difficulties (such as non-deterministic event processing, asynchronous state manipulation, and state destruction) complicate the construction of robust, reliable applications. Furthermore, there is a shortage of program-analysis approaches and tools for this space. To address these issues, this project is introducing program-analysis foundations and practical tools such as event sensitivity, making event creation/initiation a first-class object of program analysis, and allowing precise analysis via path-based event ordering. The project is intended to result in: static analyses that incorporate the aforementioned advances, enabling analysis of event-based applications; as well as automatically-constructed platform models (which address deficiencies in current, manual/ad-hoc platform models, and are intended to be usable in other contexts, e.g., to facilitate program understanding). The project is targeting the Android mobile platform, JavaScript client and server programs, as well as Internet-of-Things applications. Using these tools, developers and researchers are able to gain effective insights into event-based applications facilitating the construction of reliable applications as well as exposing incorrect behavior in existing programs; this, in turn is benefiting event-based ecosystems' users. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
StatusActive
Effective start/end date9/30/189/30/26

Funding

  • National Science Foundation: $600,000.00

Fingerprint

Explore the research topics touched on by this project. These labels are generated based on the underlying awards/grants. Together they form a unique fingerprint.