Advertisement

Detecting Program Execution Phases Using Heuristic Search

  • Omar Benomar
  • Houari Sahraoui
  • Pierre Poulin
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8636)

Abstract

Understanding a program from its execution traces is extremely difficult because a trace consists of thousands to millions of events, such as method calls, object creation and destruction, etc. Nonetheless, execution traces can provide valuable information, once abstracted from their low-level events. We propose to identify feature-level phases based on events collected from traces of the program execution. We cast our approach in an optimization problem, searching through the dynamic information provided by the program’s execution traces to form a set of phases that minimizes coupling while maximizing cohesion. We applied and evaluated our search algorithms on different execution scenarios of JHotDraw and Pooka.

Keywords

Execution phase execution trace dynamic analysis genetic algorithm 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Asadi, F., Di Penta, M., Antoniol, G., Guéhéneuc, Y.-G.: A heuristic-based approach to identify concepts in execution traces. In: Conf. on Software Maintenance and Reengineering, CSMR, pp. 31–40 (2010)Google Scholar
  2. 2.
    Cornelissen, B., Holten, D., Zaidman, A., Moonen, L., van Wijk, J.J., van Deursen, A.: Understanding execution traces using massive sequence and circular bundle views. In: Proc. Intl. Conf. on Program Comprehension, ICPC, pp. 49–58. IEEE (2007)Google Scholar
  3. 3.
    Cornelissen, B., Zaidman, A., van Rompaey, B., van Deursen, A.: Trace visualization for program comprehension: A controlled experiment. In: Proc. Int. Conf. on Program Comprehension, pp. 100–109. IEEE (2009)Google Scholar
  4. 4.
    De Pauw, W., Jensen, E., Mitchell, N., Sevitsky, G., Vlissides, J.M., Yang, J.: Visualizing the Execution of Java Programs. In: Diehl, S. (ed.) Dagstuhl Seminar 2001. LNCS, vol. 2269, pp. 151–162. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  5. 5.
    Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. IEEE Trans. Softw. Eng. 29(3), 210–224 (2003)CrossRefGoogle Scholar
  6. 6.
    Grefenstette, J.J.: Optimization of control parameters for genetic algorithms. IEEE Trans. Systems, Man and Cybernetics 16(1), 122–128 (1986)CrossRefGoogle Scholar
  7. 7.
    JHotDraw. A Java GUI framework, http://www.jhotdraw.org
  8. 8.
    Medini, S., Galinier, P., Di Penta, M., Guéhéneuc, Y.-G., Antoniol, G.: A fast algorithm to locate concepts in execution traces. In: Cohen, M.B., Ó Cinnéide, M. (eds.) SSBSE 2011. LNCS, vol. 6956, pp. 252–266. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  9. 9.
    Mitchell, B.S., Mancoridis, S.: On the automatic modularization of software systems using the Bunch tool. IEEE Trans. Softw. Eng. 32(3), 193–208 (2006)CrossRefGoogle Scholar
  10. 10.
    Nagpurkar, P., Hind, M., Krintz, C., Sweeney, P.F., Rajan, V.T.: Online phase detection algorithms. In: Intl. Symp. on Code Generation and Optimization, CGO, pp. 111–123 (2006)Google Scholar
  11. 11.
    Nagpurkar, P., Krintz, C.: Visualization and analysis of phased behavior in Java programs. In: Proc. Intl. Symp. on Principles and Practice of Programming in Java, PPPJ, pp. 27–33. Trinity College Dublin (2004)Google Scholar
  12. 12.
    Pigoski, T.M.: Practical Software Maintenance: Best Practices for Managing Your Software Investment. Wiley (1996)Google Scholar
  13. 13.
    Pirzadeh, H., Agarwal, A., Hamou-Lhadj, A.: An approach for detecting execution phases of a system for the purpose of program comprehension. In: Proc. ACIS Intl. Conf. on Software Engineering Research, Management and Applications, SERA, pp. 207–214. IEEE (2010)Google Scholar
  14. 14.
    Pooka. An email client written in JAVAGoogle Scholar
  15. 15.
    Praditwong, K., Harman, M., Yao, X.: Software module clustering as a multi-objective search problem. IEEE Trans. Softw. Eng. 37(2), 264–282 (2011)CrossRefGoogle Scholar
  16. 16.
    Reiss, S.P.: Visualizing Java in action. In: Proc. ACM Symp. on Software Visualization, SoftVis, p. 57. ACM (2003)Google Scholar
  17. 17.
    Reiss, S.P.: Dynamic detection and visualization of software phases. In: Proc. Intl. Work. on Dynamic Analysis, WODA, pp. 1–6. ACM (2005)Google Scholar
  18. 18.
    Wang, T., Roychoudhury, A.: Hierarchical dynamic slicing. In: Proc. Intl. Symp. on Software Testing and Analysis, ISSTA, pp. 228–238. ACM (2007)Google Scholar
  19. 19.
    Watanabe, Y., Ishio, T., Inoue, K.: Feature-level phase detection for execution trace using object cache. In: Proc. Intl. Work. on Dynamic Analysis, WODA, pp. 8–14. ACM (2008)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Omar Benomar
    • 1
  • Houari Sahraoui
    • 1
  • Pierre Poulin
    • 1
  1. 1.Dept. I.R.O.Université de MontréalCanada

Personalised recommendations