Visually Reasoning about System and Resource Behavior
by Tony Ohmann, Ryan Stanley, Ivan Beschastnikh, Yuriy Brun
Abstract:

As devices proliferate and software is ported to new platforms, developers must reconstruct how their software utilizes resources, such as network bandwidth and memory. Existing software comprehension approaches rarely consider how resource utilization affects system behavior. We present Perfume, a general-purpose tool to help developers understand how resource utilization impacts their systems' control flow. Perfume is broadly applicable, as it is configurable to parse a wide variety of execution log formats and applies to all resource types that can be represented numerically. Perfume mines temporal properties that hold over the logged executions and represents system behavior in a resource finite state automaton that satisfies the mined properties. Perfume's interactive interface allows the developer to understand system behavior and formulate and test hypotheses about system executions. A controlled experiment with 40 students shows that Perfume effectively supports understanding and debugging tasks. Students using Perfume answered 8.3% more questions correctly than those using execution logs alone and did so 15.5% more quickly. Perfume is open source and deployed at http://perfume.cs.umass.edu/.

Citation:
Tony Ohmann, Ryan Stanley, Ivan Beschastnikh, and Yuriy Brun, Visually Reasoning about System and Resource Behavior, in Proceedings of the Demonstrations Track of the 38th International Conference on Software Engineering (ICSE Demo), 2016, pp. 601–604.
Bibtex:
@inproceedings{Ohmann16tool-demo-icse,
  author = {Tony Ohmann and Ryan Stanley and Ivan Beschastnikh and Yuriy Brun},
  title =
  {\href{http://people.cs.umass.edu/brun/pubs/pubs/Ohmann16tool-demo-icse.pdf}{Visually Reasoning about System and Resource Behavior}},
  booktitle = {Proceedings of the Demonstrations Track of the 38th
  International Conference on Software Engineering (ICSE Demo)},
  venue = {ICSE Demo},
  address = {Austin, TX, USA},
  month = {May},
  date = {18--20},
  year = {2016},
  pages = {601--604},
  doi = {10.1145/2889160.2889166},  
  note = {\href{http://dx.doi.org/10.1145/2889160.2889166}{DOI: 10.1145/2889160.2889166}},
  accept = {$\frac{18}{56} \approx 32\%$},

  abstract = {<p>As devices proliferate and software is ported to new
  platforms, developers must reconstruct how their software utilizes
  resources, such as network bandwidth and memory. Existing software
  comprehension approaches rarely consider how resource utilization affects
  system behavior. We present Perfume, a general-purpose tool to help
  developers understand how resource utilization impacts their systems'
  control flow. Perfume is broadly applicable, as it is configurable to parse
  a wide variety of execution log formats and applies to all resource types
  that can be represented numerically. Perfume mines temporal properties that
  hold over the logged executions and represents system behavior in a
  resource finite state automaton that satisfies the mined properties.
  Perfume's interactive interface allows the developer to understand system
  behavior and formulate and test hypotheses about system executions. A
  controlled experiment with 40 students shows that Perfume effectively
  supports understanding and debugging tasks. Students using Perfume answered
  8.3% more questions correctly than those using execution logs alone and did
  so 15.5% more quickly. Perfume is open source and deployed at
  http://perfume.cs.umass.edu/.</p>}, 

  fundedBy = {NSF CCF-1453474, NSF CNS-1513055, 
  Google Inc. via the Faculty Research Award, NSERC, OPC},
}