Debugging Data Flows in Reactive Programs

by Banken, Herman and Meijer, Erik and Gousios, Georgios

You can get a pre-print version from here.
You can view the publisher's page here.
See the paper's associated code repository: hermanbanken/RxFiddle

Abstract

Reactive Programming is a style of programming that provides developers with a set of abstractions that facilitate event handling and stream processing. Traditional debug tools lack support for Reactive Programming, leading developers to fallback to the most rudimentary debug tool available: logging to the console. In this paper, we present the design and implementation of RxFiddle, a visualization and debugging tool targeted to Rx, the most popular form of Reactive Programming. RxFiddle visualizes the dependencies and structure of the data flow, as well as the data inside the flow. We evaluate RxFiddle with an experiment involving 111 developers. The results show that RxFiddle can help developers finish debugging tasks faster than with traditional debugging tools.

Bibtex record

@inproceedings{BMG18,
  author = {Banken, Herman and Meijer, Erik and Gousios, Georgios},
  title = {Debugging Data Flows in Reactive Programs},
  booktitle = {Proceedings of the 40th International Conference on Software Engineering},
  series = {ICSE '18},
  year = {2018},
  isbn = {978-1-4503-5638-1},
  location = {Gothenburg, Sweden},
  pages = {752--763},
  numpages = {12},
  doi = {10.1145/3180155.3180156},
  acmid = {3180156},
  publisher = {ACM},
  address = {New York, NY, USA},
  keywords = {debugging, program comprehension, reactive programming, visualization},
  url = {/pub/debugging-dataflows-in-reactive-programs.pdf},
  github = {hermanbanken/RxFiddle}
}

The paper