Understanding Asynchronous Interactions in Full-Stack JavaScript

Saba Alimadadi, Ali Mesbah and Karthik Pattabiraman, IEEE/ACM International Conference on Software Engineering (ICSE), 2016. (Acceptance Rate: 19%). [ PDF | Talk ]

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 application’s 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 three times more accurately than current tools.