2014 · Conference paper

Understanding JavaScript Event-Based Interactions

Clematis helps developers understand a JavaScript web application's runtime behavior from a recorded user session. A proxy instruments JavaScript on the fly to log DOM events, timeouts, XMLHttpRequest phases, function calls and DOM mutations. The trace is grouped into episodes, each with its triggering event, executed functions and resulting DOM changes, linked by temporal and causal edges and shown in an interactive visualization. In an industrial study with 20 developers on the Phormer photo gallery, the authors report 61% higher task accuracy and 47% less completion time than developers using their preferred tools.

Scope and limitations

A dynamic program-comprehension aid for client-side behavior exercised in one recorded session; it does not reconstruct server-side logic, generate a replacement application or establish behavioral equivalence. Code run through eval is not captured. Evaluation consists of two small controlled experiments on comprehension tasks: 16 UBC participants on a lab-built survey application against Firebug, and 20 professional developers on Phormer. The authors graded accuracy against a prewritten answer key. Overhead was measured only for one minute of Phormer activity. The 2014 prototype drives Firefox through Selenium and a WebScarab proxy; it is not shown to run on current browsers, and the comparison tools are historical.

Why it fits this collection

Adds execution-trace recovery of a web application's event, timer, request and DOM causality, complementing the collection's screenshot-, design- and video-based website reconstruction research.

Publication and review details

Venue
ICSE 2014
Status
Conference paper
Publication / posting date
May 31, 2014
Date source
ACM-deposited Crossref metadata gives 31 May 2014 for both online and print publication, which is also the first day of ICSE 2014; the date comes from the deposit, not from the conference schedule.
DOI
10.1145/2568225.2568268

Crossref establishes the four-author order, the ICSE ’14 proceedings and pages 367–377; it deposits the title in sentence case, while this entry keeps the capitalization printed in the paper. The author-hosted PDF is an 11-page copy carrying the ICSE ’14 permission block. The extended ACM TOSEM 2016 article “Understanding JavaScript Event-Based Interactions with Clematis” (DOI 10.1145/2876441) is a separate work and is not merged into this entry. The paper cites the lab page salt.ece.ubc.ca/software/clematis/, which no longer responds; its 2014-07-08 Internet Archive copy links github.com/saltlab/clematis and technical report UBC-SALT-2014-001. The reviewed repository is GPL-3.0, with master at 7b2479a0 committed on 2015-06-19 and no later pushes. README says the tool runs from Eclipse with the m2e plugin, Maven, a Jetty server and Mozilla Firefox; Chrome support was only planned. It was tested with Phormer and a downloadable survey application. pom.xml targets Java 1.6 and uses Crawljax 2.2 and Rhino 1.7R4, with open-ended ranges for Selenium (from 2.31.0) and WebScarab, so a build today may resolve different dependencies. Source files were read; nothing was built or run, and no experiments were reproduced.

Sources reviewed

Source review only; experiments were not rerun for this collection. Cite the original authors using the linked paper or BibTeX.

Report an outdated entry Suggest a translation fix

Primary sources

  1. https://doi.org/10.1145/2568225.2568268
  2. https://api.crossref.org/works/10.1145/2568225.2568268
  3. https://people.ece.ubc.ca/amesbah/resources/papers/clematis-icse14.pdf
  4. https://api.crossref.org/works/10.1145/2876441
  5. https://web.archive.org/web/20140708215205/http://salt.ece.ubc.ca/software/clematis/
  6. README.md GitHub · saltlab/clematis · Revision 7b2479a
  7. LICENSE.md GitHub · saltlab/clematis · Revision 7b2479a
  8. pom.xml GitHub · saltlab/clematis · Revision 7b2479a