kirancodes.me
To Proof Maintenance & Beyond!

Understanding asynchronous interactions in full-stack JavaScript

Saba Alimadadi, Ali Mesbah, Karthik Pattabiraman

Abstract

JavaScript has become one of the most popular languages in practice. Developers now use JavaScript not only for the client-side but also for server-side programming, leading to "full-stack" applications written entirely in JavaScript. Understanding such applications is challenging for developers, due to the temporal and implicit relations of asynchronous and event-driven entities spread over the client and server side. We propose a technique for capturing a behavioural model of full-stack JavaScript applications' execution. The model is temporal and context-sensitive to accommodate asynchronous events, as well as the scheduling and execution of lifelines of callbacks. We present a visualization of the model to facilitate program understanding for developers. We implement our approach in a tool, called Sahand, and evaluate it through a controlled experiment. The results show that Sahand improves developers' performance in completing program comprehension tasks by increasing their accuracy by a factor of three.

BibTeX
@inproceedings{Alimadadi-al:ICSE16,
  author    = {Saba Alimadadi and
               Ali Mesbah and
               Karthik Pattabiraman},
  title     = {Understanding asynchronous interactions in full-stack {JavaScript}},
  booktitle = {ICSE},
  pages     = {1169--1180},
  publisher = {{ACM}},
  year      = {2016},
}

Related papers