Skip to main content

What Is My Program Doing? Program Dynamics in Programmer’s Terms

  • Conference paper
Book cover Runtime Verification (RV 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7186))

Included in the following conference series:

Abstract

Programmers need to understand their systems. They need to understand how their systems work and why they fail; why they perform well or poorly, and when the systems are behaving abnormally. Much of this involves understanding the dynamic behavior of complex software systems. These systems can involve multiple processes and threads, thousands of classes, and millions of lines of code. These systems are designed to run continuously, often running for months at a time. We consider the problem of using dynamic analysis and visualization to help programmers achieve the necessary understanding. To be effective this needs to be done on running applications with minimal overhead and in the high-level terms programmers use to think about their system. After going over past efforts in this area we look at our current work and then present a number of challenges for the future.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aguilera, M.K., Mogul, J.C., Wiener, J.L., Reynolds, P., Muthitacharoen, A.: Performance debugging for distributed systems of black boxes. In: SOSP 2003, pp. 74–89 (October 2003)

    Google Scholar 

  2. Barham, P., Donnelly, A., Isaacs, R., Mortier, R.: Using magpie for request extraction and workload modelling. In: Proceedings of the Sixth USENIX Symposium on Operating Systems Design and Implementation (OSDI) (December 2004)

    Google Scholar 

  3. Chen, M.Y., Accardi, A., Kiciman, E., Lloyd, J., Patterson, D., Fox, A., Brewer, E.: Path-based failure and evolution management. In: NSDI 2004 (2004)

    Google Scholar 

  4. Cornelissen, B., Zaidman, A., van Deursen, A., Moonen, L., Koschke, R.: A systematic survey of program comprehension through dynamic analysis. Technical Report TUD-SERG-2008-033, Delft University of Technology (2008)

    Google Scholar 

  5. Engler, D., Chen, D.Y., Hallem, S., Chou, A., Chelf, B.: Bugs as deviant behavior: a general approach to inferring errors in systems code. In: Proc. 18th ACM Symp. on Operating Systems Principles, pp. 57–72 (2001)

    Google Scholar 

  6. Gupta, C., Mehta, A., Dayal, U.: PQR: predicting query execution times for autonomous workload management. In: Proceedings of the 2008 International Conference on Autonomic Computing, pp. 13–22 (June 2008)

    Google Scholar 

  7. Hellerstein, J.L., Maccabee, M., Mills, W.N., Turek, J.J.: ETE: a customizable approach to measuring end-to-end response times and their components in distributed systems. In: International Conference on Distributed Computing Systems (1999)

    Google Scholar 

  8. Israr, T.A., Lau, D.H., Franks, G., Woodside, M.: Automatic generation of layered queuing software performance models from commonly available traces. In: Proceedings of the 5th International Workshop on Software and Performance, pp. 147–158 (July 2005)

    Google Scholar 

  9. Ko, A.J., Myers, B.A.: Debugging reinvented: asking and answering why and why not questions about program behavior. In: ICSE 2008, pp. 301–310 (May 2008)

    Google Scholar 

  10. Koskinen, E., Jannotti, J.: Borderpatrol: isolating events for black-box tracing. In: EuroSys 2008, pp. 191–203 (2008)

    Google Scholar 

  11. Kremenek, T., Twohey, P., Back, G., Ng, A.Y., Engler, D.: From uncertainty to belief: inferring the specification within. In: Proc. OSDI 2006, pp. 161–176 (2006)

    Google Scholar 

  12. Lee, B.C., Brooks, D.M., de Supinski, B.R., Schulz, M., Singh, K., McKee, S.A.: Methods of inference and learning for performance modeling of parallel applications. In: Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (March 2007)

    Google Scholar 

  13. Li, Z., Zhou, Y.: PR-miner: automatically extracting implicit programming rules and detecting violations in large software code. In: Proc. ESEC/FSE 2005, pp. 306–315 (September 2005)

    Google Scholar 

  14. Liblit, B., Aiken, A., Zheng, A.X., Jordan, M.I.: Bug isolation via remote program sampling. In: PDLI 2003, pp. 141–154 (June 2003)

    Google Scholar 

  15. Nudd, G.R., Kerbyson, D.J., Papaefstathiou, E., Perry, S.C., Harper, J.S., Wilcox, D.V.: Pace - a toolset for the performance prediction of parallel and distributed systems. International Journal of High Performance Computing Applications 14(3), 228–251 (2000)

    Article  Google Scholar 

  16. De Pauw, W., Kimelman, D., Vlissides, J.: Visualizing object-oriented software execution. In: Stasko, J., Domingue, J., Brown, M.H., Price, B.A. (eds.) Software Visualization: Programming as a Multimedia Experience, pp. 329–346. MIT Press (1998)

    Google Scholar 

  17. Reiss, S.P.: Working in the garden environment for conceptual programming. IEEE Software 4(6), 16–27 (1987)

    Article  MathSciNet  Google Scholar 

  18. Reiss, S.P.: FIELD: A Friendly Integrated Environment for Learning and Development. Kluwer (1994)

    Google Scholar 

  19. Reiss, S.P.: Event-based performance analysis. In: Proc. 11th IEEE Intl. Workshop on Program Comprehension, pp. 74–81 (2003)

    Google Scholar 

  20. Reiss, S.P.: Visualizing java in action. In: Proc. IEEE International Conference on Software Visualization, pp. 123–132 (2003)

    Google Scholar 

  21. Reiss, S.P.: A component model for internet-scale applications. In: Proc. ASE 2005, pp. 34–43 (November 2005)

    Google Scholar 

  22. Reiss, S.P.: Dynamic detection and visualization of software phases. In: Proc. Third International Workshop on Dynamic Analysis (May 2005)

    Google Scholar 

  23. Reiss, S.P.: Visualizing program execution using user abstractions. In: SOFTVIS 2006, pp. 125–134 (September 2006)

    Google Scholar 

  24. Reiss, S.P.: Visual representations of executing programs. Journal of Visual Languages and Computing 18(2), 126–148 (2007)

    Article  Google Scholar 

  25. Reiss, S.P.: Tracking source locations. In: Proc. ICSE 2008, pp. 11–20 (May 2008)

    Google Scholar 

  26. Reiss, S.P.: Semantics-based code search. In: ICSE 2009, pp. 243–253 (May 2009)

    Google Scholar 

  27. Reiss, S.P.: Visualizing the java heap to detect memory problems. In: Proc. VISSOFT 2009, pp. 73–80 (September 2009)

    Google Scholar 

  28. Reiss, S.P., Karumuri, S.: Visualizing threads, transactions, and tasks. In: PASTE 2010, pp. 9–16 (June 2010)

    Google Scholar 

  29. Reiss, S.P., Renieris, M.: Languages for dynamic instrumentation. In: Proc. WODA 2003, ICSE Workshop on Dynamic Analysis, pp. 41–45 (2003)

    Google Scholar 

  30. Reiss, S.P., Renieris, M.: JOVE: Java as it happens. In: Proc. SoftVis 2005, pp. 115–124 (May 2005)

    Google Scholar 

  31. Renieris, M.: A Research Framework for Software-Fault Localization Tools. Ph.D. dissertation, Department of Computer Science, Brown University (2005)

    Google Scholar 

  32. Renieris, M., Reiss, S.P.: Fault localization with nearest neighbor queries. In: Proc. 18th Intl. Conf. on Automated Software Engineering, pp. 30–39 (2003)

    Google Scholar 

  33. Schumann, J., Mengshoel, O.J., Srivastava, A.N., Darwiche, A.: Towards software health management with bayesian networks. In: Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research (FoSER 2010), pp. 331–336 (2010)

    Google Scholar 

  34. Thereska, E., Salmon, B., Strunk, J., Wachs, M., Abd-El-Malek, M., Lopex, J., Granger, G.R.: Stardust: tracking activity in a distributed sotrage system. In: Proc. SIGMETRICS 2006 (June 2006)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Reiss, S.P., Tarvo, A. (2012). What Is My Program Doing? Program Dynamics in Programmer’s Terms. In: Khurshid, S., Sen, K. (eds) Runtime Verification. RV 2011. Lecture Notes in Computer Science, vol 7186. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29860-8_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-29860-8_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-29859-2

  • Online ISBN: 978-3-642-29860-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics