Aurebesh: Detecting MVC Application Inconsistencies

The name "Aurebesh" is an homage to a writing system of the same name used in the Star Wars universe.

Conference Paper (ICSE'15): Detecting Inconsistencies in JavaScript MVC Applications

Motivation

One prominent feature of JavaScript MVC (Model-View-Controller) frameworks is that they abstract out DOM API method calls, through the use of data binding; this allows the DOM and the JavaScript code to interact with each other in the web application, without requiring the programmer to explicitly set up DOM API method calls, which are often complicated to write. While having this abstraction is useful, applications created using these JavaScript MVC frameworks are still susceptible to inconsistencies between the three main MVC entities, namely the models, the views, and the controllers. More specifically, the identifiers for variables and functions defined in one entity may not match the corresponding identifier used in another entity. In addition, inconsistencies between the expected and assigned/returned types of these variables and functions may also exist.

Methodology

To alleviate the above issue, we created a tool called Aurebesh, which statically analyzes client-side code to automatically detect these identifier and type inconsistencies.

Tool

The download link for Aurebesh is as follows: Aurebesh

Address: SAP Vancouver
E-mail: frolino AT ece DOT ubc DOT ca