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/.
@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{https://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}, }