Using Active Learning to Synthesize Models of Applications That Access Databases

We present a new technique that uses active learning to infer models of applications that manipulate relational databases. This technique comprises a domain-specific language for modeling applications that access databases (each model is a program in this language) and an associated inferenc...

Full description

Bibliographic Details
Main Authors: Shen, Jiasi, Rinard, Martin
Format: Article
Published: 2018
Online Access:http://hdl.handle.net/1721.1/117593
_version_ 1826188060060024832
author Shen, Jiasi
Rinard, Martin
author_facet Shen, Jiasi
Rinard, Martin
author_sort Shen, Jiasi
collection MIT
description We present a new technique that uses active learning to infer models of applications that manipulate relational databases. This technique comprises a domain-specific language for modeling applications that access databases (each model is a program in this language) and an associated inference algorithm that infers models of applications whose behavior can be expressed in this language. The inference algorithm generates test inputs and database configurations, runs the application, then observes the resulting database traffic and outputs to progressively refine its current model hypothesis. The end result is a model that completely captures the behavior of the application. Because the technique works only with the externally observable inputs, outputs, and databases, it can infer the behavior of applications written in arbitrary languages using arbitrary coding styles (as long as the behavior of the application is expressible in the domain-specific language). We also present a technique for automatically regenerating an implementation from the inferred model. The regenerator can produce a translated implementation in a different language and systematically include relevant security and error checks.
first_indexed 2024-09-23T07:53:59Z
format Article
id mit-1721.1/117593
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T07:53:59Z
publishDate 2018
record_format dspace
spelling mit-1721.1/1175932019-04-09T15:25:11Z Using Active Learning to Synthesize Models of Applications That Access Databases Shen, Jiasi Rinard, Martin We present a new technique that uses active learning to infer models of applications that manipulate relational databases. This technique comprises a domain-specific language for modeling applications that access databases (each model is a program in this language) and an associated inference algorithm that infers models of applications whose behavior can be expressed in this language. The inference algorithm generates test inputs and database configurations, runs the application, then observes the resulting database traffic and outputs to progressively refine its current model hypothesis. The end result is a model that completely captures the behavior of the application. Because the technique works only with the externally observable inputs, outputs, and databases, it can infer the behavior of applications written in arbitrary languages using arbitrary coding styles (as long as the behavior of the application is expressible in the domain-specific language). We also present a technique for automatically regenerating an implementation from the inferred model. The regenerator can produce a translated implementation in a different language and systematically include relevant security and error checks. 2018-08-28T17:22:15Z 2018-08-28T17:22:15Z 2018-08-28 Article http://hdl.handle.net/1721.1/117593 application/pdf
spellingShingle Shen, Jiasi
Rinard, Martin
Using Active Learning to Synthesize Models of Applications That Access Databases
title Using Active Learning to Synthesize Models of Applications That Access Databases
title_full Using Active Learning to Synthesize Models of Applications That Access Databases
title_fullStr Using Active Learning to Synthesize Models of Applications That Access Databases
title_full_unstemmed Using Active Learning to Synthesize Models of Applications That Access Databases
title_short Using Active Learning to Synthesize Models of Applications That Access Databases
title_sort using active learning to synthesize models of applications that access databases
url http://hdl.handle.net/1721.1/117593
work_keys_str_mv AT shenjiasi usingactivelearningtosynthesizemodelsofapplicationsthataccessdatabases
AT rinardmartin usingactivelearningtosynthesizemodelsofapplicationsthataccessdatabases