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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
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)
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)
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)
Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. IEEE Trans. Softw. Eng. 29(3), 210–224 (2003)
Grefenstette, J.J.: Optimization of control parameters for genetic algorithms. IEEE Trans. Systems, Man and Cybernetics 16(1), 122–128 (1986)
JHotDraw. A Java GUI framework, http://www.jhotdraw.org
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)
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)
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)
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)
Pigoski, T.M.: Practical Software Maintenance: Best Practices for Managing Your Software Investment. Wiley (1996)
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)
Pooka. An email client written in JAVA
Praditwong, K., Harman, M., Yao, X.: Software module clustering as a multi-objective search problem. IEEE Trans. Softw. Eng. 37(2), 264–282 (2011)
Reiss, S.P.: Visualizing Java in action. In: Proc. ACM Symp. on Software Visualization, SoftVis, p. 57. ACM (2003)
Reiss, S.P.: Dynamic detection and visualization of software phases. In: Proc. Intl. Work. on Dynamic Analysis, WODA, pp. 1–6. ACM (2005)
Wang, T., Roychoudhury, A.: Hierarchical dynamic slicing. In: Proc. Intl. Symp. on Software Testing and Analysis, ISSTA, pp. 228–238. ACM (2007)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Benomar, O., Sahraoui, H., Poulin, P. (2014). Detecting Program Execution Phases Using Heuristic Search. In: Le Goues, C., Yoo, S. (eds) Search-Based Software Engineering. SSBSE 2014. Lecture Notes in Computer Science, vol 8636. Springer, Cham. https://doi.org/10.1007/978-3-319-09940-8_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-09940-8_2
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-09939-2
Online ISBN: 978-3-319-09940-8
eBook Packages: Computer ScienceComputer Science (R0)