The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.05 - September/October (2009 vol.35)
pp: 684-702
Bas Cornelissen , Delft University of Technology, The Netherlands
Andy Zaidman , Delft University of Technology, The Netherlands
Arie van Deursen , Delft University of Technology, The Netherlands
Leon Moonen , Simula Research Laboratory, Norway
Rainer Koschke , University of Bremen, Germany
ABSTRACT
Program comprehension is an important activity in software maintenance, as software must be sufficiently understood before it can be properly modified. The study of a program's execution, known as dynamic analysis, has become a common technique in this respect and has received substantial attention from the research community, particularly over the last decade. These efforts have resulted in a large research body of which currently there exists no comprehensive overview. This paper reports on a systematic literature survey aimed at the identification and structuring of research on program comprehension through dynamic analysis. From a research body consisting of 4,795 articles published in 14 relevant venues between July 1999 and June 2008 and the references therein, we have systematically selected 176 articles and characterized them in terms of four main facets: activity, target, method, and evaluation. The resulting overview offers insight in what constitutes the main contributions of the field, supports the task of identifying gaps and opportunities, and has motivated our discussion of several important research directions that merit additional consideration in the near future.
INDEX TERMS
Survey, program comprehension, dynamic analysis.
CITATION
Bas Cornelissen, Andy Zaidman, Arie van Deursen, Leon Moonen, Rainer Koschke, "A Systematic Survey of Program Comprehension through Dynamic Analysis", IEEE Transactions on Software Engineering, vol.35, no. 5, pp. 684-702, September/October 2009, doi:10.1109/TSE.2009.28
REFERENCES
[1] T.A. Corbi, “Program Understanding: Challenge for the 1990s,” IBM Systems J., vol. 28, no. 2, pp. 294-306, 1989.
[2] R.K. Fjeldstad and W.T. Hamlen, “Application Program Maintenance Study: Report to Our Respondents,” Proc. GUIDE, vol. 48, 1979.
[3] T. Richner and S. Ducasse, “Recovering High-Level Views of Object-Oriented Applications from Static and Dynamic Information,” Proc. 15th Int'l Conf. Software Maintenance, pp. 13-22, 1999.
[4] B.R. Schmerl, J. Aldrich, D. Garlan, R. Kazman, and H. Yan, “Discovering Architectures from Running Systems,” IEEE Trans. Software Eng., vol. 32, no. 7, pp. 454-466, July 2006.
[5] R.J. Walker, G.C. Murphy, B.N. Freeman-Benson, D. Wright, D. Swanson, and J. Isaak, “Visualizing Dynamic Software System Information through High-Level Models,” Proc. 13th Conf. Object-Oriented Programming Systems, Languages and Applications, pp. 271-283, 1998.
[6] T.J. Biggerstaff, B.G. Mitbander, and D. Webster, “The Concept Assignment Problem in Program Understanding,” Proc. 15th Int'l Conf. Software Eng., pp. 482-498, 1993.
[7] T. Ball, “The Concept of Dynamic Analysis,” Proc. Seventh European Software Eng. Conf. and ACM SIGSOFT Symp. Foundations of Software Eng., pp. 216-234, 1999.
[8] J. Andrews, “Testing Using Log File Analysis: Tools, Methods, and Issues,” Proc. 13th Int'l Conf. Automated Software Eng., pp. 157-166, 1997.
[9] A.W. Biermann, “On the Inference of Turing Machines from Sample Computations,” Artificial Intelligence, vol. 3, nos. 1-3, pp.181-198, 1972.
[10] M.F. Kleyn and P.C. Gingrich, “Graphtrace—Understanding Object-Oriented Systems Using Concurrently Animated Views,” Proc. Third Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 191-205, 1988.
[11] W. De Pauw, R. Helm, D. Kimelman, and J.M. Vlissides, “Visualizing the Behavior of Object-Oriented Systems,” Proc. Eighth Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 326-337, 1993.
[12] W. De Pauw, D. Kimelman, and J.M. Vlissides, “Modeling Object-Oriented Program Execution,” Proc. European Object-Oriented Programming Conf., pp. 163-182, 1994.
[13] W. De Pauw, D. Lorenz, J. Vlissides, and M. Wegman, “Execution Patterns in Object-Oriented Visualization,” Proc. Fourth USENIX Conf. Object-Oriented Technologies and Systems, pp. 219-234, 1998.
[14] I. Jacobson, Object-Oriented Software Engineering: A Use Case Driven Approach. Addison-Wesley, 1995.
[15] N. Wilde and M.C. Scully, “Software Reconnaissance: Mapping Program Features to Code,” J. Software Maintenance: Research and Practice, vol. 7, no. 1, pp. 49-62, 1995.
[16] N. Wilde, M. Buckellew, H. Page, V. Rajlich, and L. Pounds, “A Comparison of Methods for Locating Features in Legacy Software,” J. Systems and Software, vol. 65, no. 2, pp. 105-114, 2003.
[17] N. Wilde, M. Buckellew, H. Page, and V. Rajlich, “A Case Study of Feature Location in Unstructured Legacy Fortran Code,” Proc. Fifth European Conf. Software Maintenance and Reeng., pp. 68-76, 2001.
[18] N. Wilde and C. Casey, “Early Field Experience with the Software Reconnaissance Technique for Program Comprehension,” Proc. Int'l Conf. Software Maintenance, pp. 312-318, 1996.
[19] D.B. Lange and Y. Nakamura, “Interactive Visualization of Design Patterns Can Help in Framework Understanding,” Proc. 10th Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 342-357, 1995.
[20] D.B. Lange and Y. Nakamura, “Program Explorer: A Program Visualizer for C++,” Proc. First USENIX Conf. Object-Oriented Technologies and Systems, pp. 39-54, 1995.
[21] K. Koskimies and H. Mössenböck, “Scene: Using Scenario Diagrams and Active Text for Illustrating Object-Oriented Programs,” Proc. 18th Int'l Conf. Software Eng., pp. 366-375, 1996.
[22] M. Sefika, A. Sane, and R.H. Campbell, “Architecture-Oriented Visualization,” Proc. 11th Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 389-405, 1996.
[23] D.F. Jerding and S. Rugaber, “Using Visualization for Architectural Localization and Extraction,” Proc. Fourth Working Conf. Reverse Eng., pp. 56-65, 1997.
[24] D.F. Jerding, J.T. Stasko, and T. Ball, “Visualizing Interactions in Program Executions,” Proc. 19th Int'l Conf. Software Eng., pp. 360-370, 1997.
[25] D.F. Jerding and J.T. Stasko, “The Information Mural: A Technique for Displaying and Navigating Large Information Spaces,” IEEE Trans. Visualization and Computer Graphics, vol. 4, no. 3, pp. 257-271, July-Sept. 1998.
[26] G.C. Murphy, D. Notkin, and K.J. Sullivan, “Software Reflexion Models: Bridging the Gap between Design and Implementation,” IEEE Trans. Software Eng., vol. 27, no. 4, pp. 364-380, Apr. 2001.
[27] T. Richner and S. Ducasse, “Using Dynamic Information for the Iterative Recovery of Collaborations and Roles,” Proc. 18th Int'l Conf. Software Maintenance, pp. 34-43, 2002.
[28] W. De Pauw, E. Jensen, N. Mitchell, G. Sevitsky, J.M. Vlissides, and J. Yang, “Visualizing the Execution of Java Programs,” Proc. ACM 2001 Symp. Software Visualization, pp. 151-162, 2001.
[29] T. Systä, K. Koskimies, and H.A. Müller, “Shimba: An Environment for Reverse Engineering Java Software Systems,” Software, Practice and Experience, vol. 31, no. 4, pp. 371-394, 2001.
[30] L.C. Briand, Y. Labiche, and J. Leduc, “Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software,” IEEE Trans. Software Eng., vol. 32, no. 9, pp. 642-663, Sept. 2006.
[31] S.P. Reiss and M. Renieris, “Encoding Program Executions,” Proc. 23rd Int'l Conf. Software Eng., pp. 221-230, 2001.
[32] A. Hamou-Lhadj and T.C. Lethbridge, “A Survey of Trace Exploration Tools and Techniques,” Proc. 2004 Conf. the Centre for Advanced Studies on Collaborative Research, pp. 42-55, 2004.
[33] A. Hamou-Lhadj and T.C. Lethbridge, “Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System,” Proc. 14th Int'l Conf. Program Comprehension, pp. 181-190, 2006.
[34] A. Hamou-Lhadj, T.C. Lethbridge, and L. Fu, “Challenges and Requirements for an Effective Trace Exploration Tool,” Proc. 12th Int'l Workshop Program Comprehension, pp. 70-78, 2004.
[35] D. Heuzeroth, T. Holl, and W. Löwe, “Combining Static and Dynamic Analyses to Detect Interaction Patterns,” Proc. Sixth Int'l Conf. Integrated Design and Process Technology, 2002.
[36] D. Heuzeroth, T. Holl, G. Högström, and W. Löwe, “Automatic Design Pattern Detection,” Proc. 11th Int'l Workshop Program Comprehension, pp. 94-103, 2003.
[37] C. Riva and J.V. Rodriguez, “Combining Static and Dynamic Views for Architecture Reconstruction,” Proc. Sixth European Conf. Software Maintenance and Reeng., pp. 47-55, 2002.
[38] C. Riva and Y. Yang, “Generation of Architectural Documentation Using XML,” Proc. Ninth Working Conf. Reverse Eng., pp. 161-179, 2002.
[39] H. Yan, D. Garlan, B.R. Schmerl, J. Aldrich, and R. Kazman, “Discotect: A System for Discovering Architectures from Running Systems,” Proc. 26th Int'l Conf. Software Eng., pp. 470-479, 2004.
[40] J. Koskinen, M. Kettunen, and T. Systä, “Profile-Based Approach to Support Comprehension of Software Behavior,” Proc. 14th Int'l Conf. Program Comprehension, pp. 212-224, 2006.
[41] J.E. Cook and Z. Du, “Discovering Thread Interactions in a Concurrent System,” J. Systems and Software, vol. 77, no. 3, pp. 285-297, 2005.
[42] J. Quante and R. Koschke, “Dynamic Protocol Recovery,” Proc. 14th Working Conf. Reverse Eng., pp. 219-228, 2007.
[43] D. Lo, S. Khoo, and C. Liu, “Mining Temporal Rules for Software Maintenance,” J. Software Maintenance and Evolution: Research and Practice, vol. 20, no. 4, pp. 227-247, 2008.
[44] N. Walkinshaw, K. Bogdanov, M. Holcombe, and S. Salahuddin, “Reverse Engineering State Machines by Interactive Grammar Inference,” J. Software Maintenance and Evolution: Research and Practice, vol. 20, no. 4, pp. 269-290, 2008.
[45] O. Greevy, S. Ducasse, and T. Gîrba, “Analyzing Feature Traces to Incorporate the Semantics of Change in Software Evolution Analysis,” Proc. 21st Int'l Conf. Software Maintenance, pp. 347-356, 2005.
[46] O. Greevy, S. Ducasse, and T. Gîrba, “Analyzing Software Evolution through Feature Views,” J. Software Maintenance and Evolution: Research and Practice, vol. 18, no. 6, pp. 425-456, 2006.
[47] J. Kothari, T. Denton, A. Shokoufandeh, and S. Mancoridis, “Reducing Program Comprehension Effort in Evolving Software by Recognizing Feature Implementation Convergence,” Proc. 15th Int'l Conf. Program Comprehension, pp. 17-26, 2007.
[48] W.E. Wong, S.S. Gokhale, and J.R. Horgan, “Quantifying the Closeness between Program Components and Features,” J.Systems and Software, vol. 54, no. 2, pp. 87-98, 2000.
[49] T. Eisenbarth, R. Koschke, and D. Simon, “Locating Features in Source Code,” IEEE Trans. Software Eng., vol. 29, no. 3, pp. 210-224, Mar. 2003.
[50] G. Antoniol and Y.-G. Guéhéneuc, “Feature Identification: An Epidemiological Metaphor,” IEEE Trans. Software Eng., vol. 32, no. 9, pp. 627-641, Sept. 2006.
[51] D. Poshyvanyk, Y.-G. Guéhéneuc, A. Marcus, G. Antoniol, and V. Rajlich, “Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval,” IEEE Trans. Software Eng., vol. 33, no. 6, pp. 420-432, June 2007.
[52] M.J. Pacione, M. Roper, and M. Wood, “Comparative Evaluation of Dynamic Visualisation Tools,” Proc. 10th Working Conf. Reverse Eng., pp. 80-89, 2003.
[53] O. Greevy, “Enriching Reverse Engineering with Feature Analysis,” PhD thesis, Univ. Bern, 2007.
[54] S.P. Reiss, “Visual Representations of Executing Programs,” J.Visual Languages and Computing, vol. 18, no. 2, pp. 126-148, 2007.
[55] S. Beecham, N. Baddoo, T. Hall, H. Robinson, and H. Sharp, “Motivation in Software Engineering: A Systematic Literature Review,” Information and Software Technology, vol. 50, nos. 9/10, pp. 860-878, 2008.
[56] T. Dybå and T. Dingsøyr, “Empirical Studies of Agile Software Development: A Systematic Review,” Information and Software Technology, vol. 50, nos. 9/10, pp. 833-859, 2008.
[57] P. Brereton, B.A. Kitchenham, D. Budgen, M. Turner, and M. Khalil, “Lessons from Applying the Systematic Literature Review Process within the Software Engineering Domain,” J. Systems and Software, vol. 80, no. 4, pp. 571-583, 2007.
[58] D.I.K. Sjøberg, J.E. Hannay, O. Hansen, V.B. Kampenes, A. Karahasanovic, N.-K. Liborg, and A.C. Rekdal, “A Survey of Controlled Experiments in Software Engineering,” IEEE Trans. Software Eng., vol. 31, no. 9, pp. 733-753, Sept. 2005.
[59] B.A. Kitchenham, “Procedures for Performing Systematic Reviews,” Technical Report TR/SE-0401, Keele Univ. and Technical Report 0400011T.1, Nat'l ICT Australia, 2004.
[60] B. Cornelissen, A. Zaidman, A. van Deursen, L. Moonen, and R. Koschke, “A Systematic Survey of Program Comprehension through Dynamic Analysis,” Technical Report TUD-SERG-2008-033, Delft Univ. of Tech nology, 2008.
[61] D. Liu, A. Marcus, D. Poshyvanyk, and V. Rajlich, “Feature Location via Information Retrieval Based Filtering of a Single Scenario Execution Trace,” Proc. 22nd Int'l Conf. Automated Software Eng., pp. 234-243, 2007.
[62] A. Zaidman and S. Demeyer, “Managing Trace Data Volume through a Heuristical Clustering Process Based on Event Execution Frequency,” Proc. Eighth European Conf. Software Maintenance and Reeng., pp. 329-338, 2004.
[63] M.D. Ernst, “Static and Dynamic Analysis: Synergy and Duality,” Proc. First ICSE Int'l Workshop Dynamic Analysis, pp. 25-28, 2003.
[64] T. Israr, M. Woodside, and G. Franks, “Interaction Tree Algorithms to Extract Effective Architecture and Layered Performance Models from Traces,” J. Systems and Software, vol. 80, no. 4, pp. 474-492, 2007.
[65] M. Benedikt, J. Freire, and P. Godefroid, “VeriWeb: Automatically Testing Dynamic Web Sites,” Proc. 11th Int'l Conf. World Wide Web, 2002.
[66] A. Mesbah, E. Bozdag, and A. van Deursen, “Crawling Ajax by Inferring User Interface State Changes,” Proc. Eighth Int'l Conf. Web Eng., pp. 122-134, 2008.
[67] N. Gold, A. Mohan, C. Knight, and M. Munro, “Understanding Service-Oriented Software,” IEEE Software, vol. 21, no. 2, pp. 71-77, Mar./Apr. 2004.
[68] J. Moe and D.A. Carr, “Understanding Distributed Systems via Execution Trace Data,” Proc. Ninth Int'l Workshop Program Comprehension, pp. 60-67, 2001.
[69] V. Pankratius, C. Schaefer, A. Jannesari, and W.F. Tichy, “Software Engineering for Multicore Systems: An Experience Report,” Proc. First ICSE Int'l Workshop Multicore Software Eng., 2008.
[70] A. Zaidman, S. Demeyer, B. Adams, K. De Schutter, G. Hoffman, and B. De Ruyck, “Regaining Lost Knowledge through Dynamic Analysis and Aspect Orientation,” Proc. 10th European Conf. Software Maintenance and Reeng., pp. 91-102, 2006.
[71] S. Demeyer, S. Ducasse, and O. Nierstrasz, Object-Oriented Reengineering Patterns. Morgan Kaufmann, 2003.
[72] D. Röthlisberger, O. Greevy, and O. Nierstrasz, “Exploiting Runtime Information in the IDE,” Proc. 16th Int'l Conf. Program Comprehension, pp. 63-72, 2008.
[73] S.P. Reiss, “Visualizing Java in Action,” Proc. ACM 2003 Symp. Software Visualization, pp. 57-65, 2003.
[74] S. Joshi and A. Orso, “SCARPE: A Technique and Tool for Selective Record and Replay of Program Executions,” Proc. 23rd Int'l Conf. Software Maintenance, pp. 234-243, 2007.
[75] G. Xu, A. Rountev, Y. Tang, and F. Qin, “Efficient Checkpointing of Java Software Using Context-Sensitive Capture and Replay,” Proc. 15th European Software Eng. Conf. and ACM SIGSOFT Symp. the Foundations of Software Eng., pp. 85-94, 2007.
[76] A. Zaidman, “Scalability Solutions for Program Comprehension through Dynamic Analysis,” PhD thesis, Univ. of Antwerp, 2006.
[77] C. Bennett, D. Myers, D. Ouellet, M.-A. Storey, M. Salois, D. German, and P. Charland, “A Survey and Evaluation of Tool Features for Understanding Reverse Engineered Sequence Diagrams,” J. Software Maintenance and Evolution: Research and Practice, vol. 20, no. 4, pp. 291-315, 2008.
[78] J. Quante, “Do Dynamic Object Process Graphs Support Program Understanding?—A Controlled Experiment,” Proc. 16th Int'l Conf. Program Comprehension, pp. 73-82, 2008.
[79] S. Simmons, D. Edwards, N. Wilde, J. Homan, and M. Groble, “Industrial Tools for the Feature Location Problem: An Exploratory Study,” J. Software Maintenance and Evolution: Research and Practice, vol. 18, no. 6, pp. 457-474, 2006.
[80] M. Eaddy, A.V. Aho, G. Antoniol, and Y.-G. Guéhéneuc, “CERBERUS: Tracing Requirements to Source Code Using Information Retrieval, Dynamic Analysis, and Program Analysis,” Proc. 16th Int'l Conf. Program Comprehension, pp. 53-62, 2008.
[81] B. Cornelissen, L. Moonen, and A. Zaidman, “An Assessment Methodology for Trace Reduction Techniques,” Proc. 24th Int'l Conf. Software Maintenance, pp. 107-116, 2008.
[82] S.E. Sim, S.M. Easterbrook, and R.C. Holt, “Using Benchmarking to Advance Research: A Challenge to Software Engineering,” Proc. 25th Int'l Conf. Software Eng., pp. 74-83, 2003.
[83] M. Staples and M. Niazi, “Experiences Using Systematic Review Guidelines,” J. Systems and Software, vol. 80, no. 9, pp. 1425-1437, 2007.
[84] G. Antoniol and M. Di Penta, “A Distributed Architecture for Dynamic Analyses on User-Profile Data,” Proc. Eighth European Conf. Software Maintenance and Reeng., pp. 319-328, 2004.
[85] G. Antoniol, M. Di Penta, and M. Zazzara, “Understanding Web Applications through Dynamic Analysis,” Proc. 12th Int'l Workshop Program Comprehension, pp. 120-131, 2004.
[86] T. Ball, “Software Visualization in the Large,” Computer, vol. 29, no. 4, pp. 33-43, Apr. 1996.
[87] J. Bohnet and J. Döllner, “Visual Exploration of Function Call Graphs for Feature Location in Complex Software Systems,” Proc. ACM 2006 Symp. Software Visualization, pp. 95-104, 2006.
[88] D. Bojic and D.M. Velasevic, “A Use-Case Driven Method of Architecture Recovery for Program Understanding and Reuse Reengineering,” Proc. Fourth European Conf. Software Maintenance and Reeng., pp. 23-32, 2000.
[89] A. Chan, R. Holmes, G.C. Murphy, and A.T.T. Ying, “Scaling an Object-Oriented System Execution Visualizer through Sampling,” Proc. 11th Int'l Workshop Program Comprehension, pp. 237-244, 2003.
[90] B. Cornelissen, A. van Deursen, L. Moonen, and A. Zaidman, “Visualizing Testsuites to Aid in Software Understanding,” Proc. 11th European Conf. Software Maintenance and Reeng., pp. 213-222, 2007.
[91] B. Cornelissen, A. Zaidman, D. Holten, L. Moonen, A. van Deursen, and J.J. van Wijk, “Execution Trace Analysis through Massive Sequence and Circular Bundle Views,” J. Systems and Software, vol. 81, no. 11, pp. 2252-2268, 2008.
[92] A.R. Dalton and J.O. Hallstrom, “A Toolkit for Visualizing the Runtime Behavior of TinyOS Applications,” Proc. 15th Int'l Conf. Program Comprehension, pp. 43-52, 2008.
[93] J. Deprez and A. Lakhotia, “A Formalism to Automate Mapping from Program Features to Code,” Proc. Eighth Int'l Workshop Program Comprehension, pp. 69-78, 2000.
[94] S. Ducasse, M. Lanza, and R. Bertuli, “High-Level Polymetric Views of Condensed Run-Time Information,” Proc. Eighth European Conf. Software Maintenance and Reeng., pp. 309-318, 2004.
[95] D. Edwards, S. Simmons, and N. Wilde, “An Approach to Feature Location in Distributed Systems,” J. Systems and Software, vol. 79, no. 1, pp. 457-474, 2006.
[96] A.D. Eisenberg and K. De Volder, “Dynamic Feature Traces: Finding Features in Unfamiliar Code,” Proc. 21st Int'l Conf. Software Maintenance, pp. 337-346, 2005.
[97] M. El-Ramly, E. Stroulia, and P.G. Sorenson, “From Run-Time Behavior to Usage Scenarios: An Interaction-Pattern Mining Approach,” Proc. Eighth ACM SIGKDD Int'l Conf. Knowledge Discovery and Data Mining, pp. 315-324, 2002.
[98] M. Fischer, J. Oberleitner, H. Gall, and T. Gschwind, “System Evolution Tracking through Execution Trace Analysis,” Proc. 13th Int'l Workshop Program Comprehension, pp. 237-246, 2005.
[99] M. FisherII, S.G. Elbaum, and G. Rothermel, “Dynamic Characterization of Web Application Interfaces,” Proc. 10th Int'l Conf. Fundamental Approaches to Software Eng., pp. 260-275, 2007.
[100] J. Gargiulo and S. Mancoridis, “Gadget: A Tool for Extracting the Dynamic Structure of Java Programs,” Proc. 13th Int'l Conf. Software Eng. and Knowledge Eng., pp. 244-251, 2001.
[101] P.V. Gestwicki and B. Jayaraman, “Methodology and Architecture of JIVE,” Proc. ACM 2005 Symp. Software Visualization, pp. 95-104, 2005.
[102] O. Greevy, M. Lanza, and C. Wysseier, “Visualizing Live Software Systems in 3D,” Proc. ACM 2006 Symp. Software Visualization, pp.47-56, 2006.
[103] T. Gschwind, J. Oberleitner, and M. Pinzger, “Using Run-Time Data for Program Comprehension,” Proc. 11th Int'l Workshop Program Comprehension, pp. 245-250, 2003.
[104] Y.-G. Guéhéneuc, R. Douence, and N. Jussien, “No Java without Caffeine: A Tool for Dynamic Analysis of Java Programs,” Proc. 17th Int'l Conf. Automated Software Eng., pp. 117-126, 2002.
[105] Y.-G. Guéhéneuc, “A Reverse Engineering Tool for Precise Class Diagrams,” Proc. 2004 Conf. Centre for Advanced Studies on Collaborative Research, pp. 28-41, 2004.
[106] S.A. Hendrickson, E.M. Dashofy, and R.N. Taylor, “An Architecture-Centric Approach for Tracing, Organizing, and Understanding Events in Event-Based Software Architectures,” Proc. 13th Int'l Workshop Program Comprehension, pp. 227-236, 2005.
[107] H. Huang, S. Zhang, J. Cao, and Y. Duan, “A Practical Pattern Recovery Approach Based on Both Structural and Behavioral Analysis,” J. Systems and Software, vol. 75, nos. 1/2, pp. 69-87, 2005.
[108] J. Jiang, J. Koskinen, A. Ruokonen, and T. Systä, “Constructing Usage Scenarios for API Redocumentation,” Proc. 15th Int'l Conf. Program Comprehension, pp. 259-264, 2007.
[109] M. Jiang, M. Groble, S. Simmons, D. Edwards, and N. Wilde, “Software Feature Understanding in an Industrial Setting,” Proc. 22nd Int'l Conf. Software Maintenance, pp. 66-67, 2006.
[110] Z.M. Jiang, A. Hassan, G. Hamann, and P. Flora, “An Automated Approach for Abstracting Execution Logs to Execution Events,” J.Software Maintenance and Evolution: Research and Practice, vol. 20, no. 4, pp. 249-267, 2008.
[111] P. Kelsen, “A Simple Static Model for Understanding the Dynamic Behavior of Programs,” Proc. 12th Int'l Workshop Program Comprehension, pp. 46-51, 2004.
[112] R. Kollmann and M. Gogolla, “Capturing Dynamic Program Behaviour with UML Collaboration Diagrams,” Proc. Fifth European Conf. Software Maintenance and Reeng., pp. 58-67, 2001.
[113] B. Korel and J. Rilling, “Program Slicing in Understanding of Large Programs,” Proc. Sixth Int'l Workshop Program Comprehension, pp. 145-152, 1998.
[114] R. Koschke and J. Quante, “On Dynamic Feature Location,” Proc. 20th Int'l Conf. Automated Software Eng., pp. 86-95, 2005.
[115] A. Kuhn and O. Greevy, “Exploiting the Analogy between Traces and Signal Processing,” Proc. 22nd Int'l Conf. Software Maintenance, pp. 320-329, 2006.
[116] D. Lange and Y. Nakamura, “Object-Oriented Program Tracing and Visualization,” Computer, vol. 30, no. 5, pp. 63-70, May 1997.
[117] D.R. Licata, C.D. Harris, and S. Krishnamurthi, “The Feature Signatures of Evolving Programs,” Proc. 18th Int'l Conf. Automated Software Eng., pp. 281-285, 2003.
[118] A. Lienhard, O. Greevy, and O. Nierstrasz, “Tracking Objects to Detect Feature Dependencies,” Proc. 15th Int'l Conf. Program Comprehension, pp. 59-68, 2007.
[119] D. Lo and S. Khoo, “QUARK: Empirical Assessment of Automaton-Based Specification Miners,” Proc. 13th Working Conf. Reverse Eng., pp. 51-60, 2006.
[120] D. Lo and S. Khoo, “SMArTIC: Towards Building an Accurate, Robust and Scalable Specification Miner,” Proc. 14th European Software Eng. Conf. and ACM SIGSOFT Symp. the Foundations of Software Eng., pp. 265-275, 2006.
[121] G.A. Di Lucca, A.R. Fasolino, P. Tramontana, and U. deCarlini, “Abstracting Business Level UML Diagrams from Web Applications,” Proc. Fifth Int'l Workshop Web Site Evolution, pp. 12-19, 2003.
[122] K. Lukoit, N. Wilde, S. Stowell, and T. Hennessey, “TraceGraph: Immediate Visual Location of Software Features,” Proc. 16th Int'l Conf. Software Maintenance, pp. 33-39, 2000.
[123] B.A. Malloy and J.F. Power, “Exploiting UML Dynamic Object Modeling for the Visualization of C++ Programs,” Proc. ACM 2005 Symp. Software Visualization, pp. 105-114, 2005.
[124] L. Martin, A. Giesl, and J. Martin, “Dynamic Component Program Visualization,” Proc. Ninth Working Conf. Reverse Eng., pp. 289-298, 2002.
[125] J. Moe and K. Sandahl, “Using Execution Trace Data to Improve Distributed Systems,” Proc. 18th Int'l Conf. Software Maintenance, pp. 640-648, 2002.
[126] R. Oechsle and T. Schmitt, “JAVAVIS: Automatic Program Visualization with Object and Sequence Diagrams Using the Java Debug Interface (JDI),” Proc. ACM 2001 Symp. Software Visualization, pp. 176-190, 2001.
[127] A. Orso, J.A. Jones, and M.J. Harrold, “Visualization of Program-Execution Data for Deployed Software,” Proc. ACM 2003 Symp. Software Visualization, pp. 67-76, 2003.
[128] M.J. Pacione, M. Roper, and M. Wood, “A Novel Software Visualisation Model to Support Software Comprehension,” Proc. 11th Working Conf. Reverse Eng., pp. 70-79, 2004.
[129] W. De Pauw, S. Krasikov, and J.F. Morar, “Execution Patterns for Visualizing Web Services,” Proc. ACM 2006 Symp. Software Visualization, pp. 37-45, 2006.
[130] S. Pheng and C. Verbrugge, “Dynamic Data Structure Analysis for Java Programs,” Proc. 14th Int'l Conf. Program Comprehension, pp.191-201, 2006.
[131] L. Qingshan, H. Chu, S. Hu, P. Chen, and Z. Yun, “Architecture Recovery and Abstraction from the Perspective of Processes,” Proc. 12th Working Conf. Reverse Eng., pp. 57-66, 2005.
[132] S.P. Reiss, “Event-Based Performance Analysis,” Proc. 11th Int'l Workshop Program Comprehension, pp. 74-83, 2003.
[133] S.P. Reiss, “Visualizing Program Execution Using User Abstractions,” Proc. ACM 2006 Symp. Software Visualization, pp. 125-134, 2006.
[134] M. Renieris and S.P. Reiss, “Almost: Exploring Program Traces,” Proc. 1999 Workshop New Paradigms in Information Visualization and Manipulation, pp. 70-77, 1999.
[135] J. Rilling, “Maximizing Functional Cohesion of Comprehension Environments by Integrating User and Task Knowledge,” Proc. Eighth Working Conf. Reverse Eng., pp. 157-165, 2001.
[136] H. Ritsch and H.M. Sneed, “Reverse Engineering Programs via Dynamic Analysis,” Proc. First Working Conf. Reverse Eng., pp. 192-201, 1993.
[137] C. Riva, “Reverse Architecting: An Industrial Experience Report,” Proc. Seventh Working Conf. Reverse Eng., pp. 42-50, 2000.
[138] A. Rohatgi, A. Hamou-Lhadj, and J. Rilling, “An Approach for Mapping Features to Code Based on Static and Dynamic Analysis,” Proc. 16th Int'l Conf. Program Comprehension, pp. 236-241, 2008.
[139] C. De Roover, I. Michiels, K. Gybels, K. Gybels, and T. D'Hondt, “An Approach to High-Level Behavioral Program Documentation Allowing Lightweight Verification,” Proc. 14th Int'l Conf. Program Comprehension, pp. 202-211, 2006.
[140] H. Safyallah and K. Sartipi, “Dynamic Analysis of Software Systems Using Execution Pattern Mining,” Proc. 14th Int'l Conf. Program Comprehension, pp. 84-88, 2006.
[141] M. Salah and S. Mancoridis, “Toward an Environment for Comprehending Distributed Systems,” Proc. 10th Working Conf. Reverse Eng., pp. 238-247, 2003.
[142] M. Salah and S. Mancoridis, “A Hierarchy of Dynamic Software Views: From Object-Interactions to Feature-Interactions,” Proc. 20th Int'l Conf. Software Maintenance, pp. 72-81, 2004.
[143] M. Salah, S. Mancoridis, G. Antoniol, and M. Di Penta, “Scenario-Driven Dynamic Analysis for Comprehending Large Software Systems,” Proc. 10th European Conf. Software Maintenance and Reeng., pp. 71-80, 2006.
[144] K. Sartipi and N. Dezhkam, “An Amalgamated Dynamic and Static Architecture Reconstruction Framework to Control Component Interactions,” Proc. 14th Working Conf. Reverse Eng., pp. 259-268, 2007.
[145] M. Shevertalov and S. Mancoridis, “A Reverse Engineering Tool for Extracting Protocols of Networked Applications,” Proc. 14th Working Conf. Reverse Eng., pp. 229-238, 2007.
[146] M. Smit, E. Stroulia, and K. Wong, “Use Case Redocumentation from Gui Event Traces,” Proc. 12th European Conf. Software Maintenance and Reeng., pp. 263-268, 2008.
[147] T.S. Souder, S. Mancoridis, and M. Salah, “Form: A Framework for Creating Views of Program Executions,” Proc. 17th Int'l Conf. Software Maintenance, pp. 612-620, 2001.
[148] F.C. de Sousa, N.C. Mendonça, S. Uchitel, and J. Kramer, “Detecting Implied Scenarios from Execution Traces,” Proc. 14th Working Conf. Reverse Eng., pp. 50-59, 2007.
[149] E. Stroulia, M. El-Ramly, L. Kong, P.G. Sorenson, and B. Matichuk, “Reverse Engineering Legacy Interfaces: An Interaction-Driven Approach,” Proc. Sixth Working Conf. Reverse Eng., pp. 292-302, 1999.
[150] P. Tonella and A. Potrich, “Static and Dynamic C++ Code Analysis for the Recovery of the Object Diagram,” Proc. 18th Int'l Conf. Software Maintenance, pp. 54-63, 2002.
[151] R.J. Walker, G.C. Murphy, J. Steinbok, and M.P. Robillard, “Efficient Mapping of Software System Traces to Architectural Views,” Proc. 2000 Conf. the Centre for Advanced Studies on Collaborative Research, pp. 12-21, 2000.
[152] L. Wang, J.R. Cordy, and T.R. Dean, “Enhancing Security Using Legality Assertions,” Proc. 12th Working Conf. Reverse Eng., pp. 35-44, 2005.
[153] W.E. Wong and S.S. Gokhale, “Static and Dynamic Distance Metrics for Feature-Based Code Analysis,” J. Systems and Software, vol. 74, no. 3, pp. 283-295, 2005.
[154] A. Zaidman and S. Demeyer, “Automatic Identification of Key Classes in a Software System Using Webmining Techniques,” J.Software Maintenance and Evolution: Research and Practice, vol. 20, no. 6, pp. 387-417, 2008.
13 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool