“Understanding Asynchronous Interactions in Full-Stack JavaScript”, Saba Alimadadi, Ali Mesbah, and Karthik Pattabiraman.
In Proceedings of the ACM/IEEE International Conference on Software Engineering (ICSE), 11 pages, 2016


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.


  author = {Alimadadi, Saba and Mesbah, Ali and Pattabiraman, Karthik},
  title = {Understanding Asynchronous Interactions in Full-Stack {JavaScript}},
  booktitle = {Proceedings of the ACM/IEEE International Conference on Software Engineering (ICSE)},
  publisher = {ACM},
  pages = {11 pages},
  year = {2016},
  url = {http://salt.ece.ubc.ca/publications/docs/icse16.pdf}