Understanding Asynchronous Interactions in Full-Stack Java']JavaScript

被引:23
|
作者
Alimadadi, Saba [1 ]
Mesbah, Ali [1 ]
Pattabiraman, Karthik [1 ]
机构
[1] Univ British Columbia, Vancouver, BC, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
Program comprehension; asynchronicity; full-stack [!text type='Java']Java[!/text]Script;
D O I
10.1145/2884781.2884864
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:1169 / 1180
页数:12
相关论文
共 50 条
  • [1] Catch & Release: An Approach to Debugging Distributed Full-Stack Java']JavaScript Applications
    An, Kijin
    Tilevich, Eli
    WEB ENGINEERING (ICWE 2019), 2019, 11496 : 459 - 473
  • [2] Orchestrating Dynamic Analyses of Distributed Processes for Full-Stack Java']JavaScript Programs
    Christophe, Laurent
    De Roover, Coen
    Boix, Elisa Gonzalez
    De Meuter, Wolfgang
    PROCEEDINGS OF THE 17TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON GENERATIVE PROGRAMMING: CONCEPTS AND EXPERIENCES (GPCE'18), 2018, : 107 - 118
  • [3] Client Insourcing: Bringing Ops In-House for Seamless Re-engineering of Full-Stack Java']JavaScript Applications
    An, Kijin
    Tilevich, Eli
    WEB CONFERENCE 2020: PROCEEDINGS OF THE WORLD WIDE WEB CONFERENCE (WWW 2020), 2020, : 179 - 189
  • [4] Full-Stack SDN
    Sur, Debnil
    Pfaff, Ben
    Ryzhyk, Leonid
    Budiu, Mihai
    THE 21ST ACM WORKSHOP ON HOT TOPICS IN NETWORKS, HOTNETS 2022, 2022, : 130 - 137
  • [5] Semantics of Asynchronous Java']JavaScript
    Loring, Matthew C.
    Marron, Mark
    Leijen, Daan
    ACM SIGPLAN NOTICES, 2017, 52 (11) : 51 - 62
  • [6] Understanding Java']JavaScript Event-Based Interactions
    Alimadadi, Saba
    Sequeira, Sheldon
    Mesbah, Ali
    Pattabiraman, Karthik
    36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2014), 2014, : 367 - 377
  • [7] A Platform for Full-Stack Functional Programming
    Melo, Cecil Accetti R. A.
    Liu, Peilin
    Ying, Rendong
    2020 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS (ISCAS), 2020,
  • [8] Ajax: Asynchronous Java']JavaScript and XML
    Bruno, EJ
    DR DOBBS JOURNAL, 2006, 31 (02): : 32 - 35
  • [9] An Asynchronous Call Graph for Java']JavaScript
    Seifert, Dominik
    Wan, Michael
    Hsu, Jane
    Yeh, Benson
    2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING IN PRACTICE (ICSE-SEIP 2022), 2022, : 29 - 30
  • [10] Understanding Java']JavaScript Event-Based Interactions with Clematis
    Alimadadi, Saba
    Sequeira, Sheldon
    Mesbah, Ali
    Pattabiraman, Karthik
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2016, 25 (02)