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/24/189/30/25

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.