Evaluating Dynamic Analysis Techniques for Program Comprehension

Program comprehension is an essential part of software development and software maintenance, as software must be sufficiently understood before it can be properly modified. One of the common approaches in getting to understand a program is the study of its execution, also known as dynamic analysis. While many such approaches have been proposed in the literature, their empirical evaluation is often missing or inconclusive, and their added values to existing solutions are seldomly quantified. This dissertation aims to characterize, and extend upon, the existing work on program comprehension through dynamic analysis. A strong emphasis in our research is put on empirical evaluation. To structure the current state of the art and to identify research opportunities, we first conduct a systematic survey of all publications on this topic in the past decades. We then propose both a traditional and a more advanced visualization technique, experiment with the necessary abstraction techniques, and provide tool implementations. Our approaches are validated through extensive case studies and a controlled experiment. Finally, we conclude with a set of recommendations for future directions.

[1]  Bjørn N. Freeman-Benson,et al.  Visualizing dynamic software system information through high-level models , 1998, OOPSLA '98.

[2]  Kent Beck,et al.  Test-infected: programmers love writing tests , 2000 .

[3]  Yann-Gaël Guéhéneuc,et al.  No Java without caffeine: A tool for dynamic analysis of Java programs , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[4]  Jochen Quante,et al.  Do Dynamic Object Process Graphs Support Program Understanding? - A Controlled Experiment. , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[5]  Victor R. Basili,et al.  Evolving and packaging reading technologies , 1997, J. Syst. Softw..

[6]  Johan Moe,et al.  Using execution trace data to improve distributed systems , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[7]  Serge Demeyer,et al.  Estimation of Test Code Changes Using Historical Release Data , 2008, 2008 15th Working Conference on Reverse Engineering.

[8]  Martijn Warnier,et al.  Language based security for Java and JML , 2006 .

[9]  Stéphane Ducasse,et al.  Using dynamic information for the iterative recovery of collaborations and roles , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[10]  Danny B. Lange,et al.  Program Explorer: A Program Visualizer for C++ , 1995, COOTS.

[11]  Orla Greevy,et al.  Enriching Reverse Engineering with Feature Analysis , 2007 .

[12]  Norman Wilde,et al.  An approach to feature location in distributed systems , 2006, J. Syst. Softw..

[13]  Pascal Durr,et al.  Resource-based Verification for Robust Composition of Aspects , 2008 .

[14]  Ncwm Niels Braspenning Model-based integration and testing of high-tech multi-disciplinary systems , 2008 .

[15]  Goran Frehse,et al.  Compositional verification of hybrid systems using simulation relations , 2005 .

[16]  Iris Loeb Natural Deduction, Sharing By Presentation , 2007 .

[17]  A. L. de Groot,et al.  Practical Automaton proofs in PVS , 2000 .

[18]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[19]  Steven P. Reiss,et al.  Encoding program executions , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[20]  Harry M. Sneed,et al.  Reverse engineering programs via dynamic analysis , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[21]  Toon Calders,et al.  Applying Webmining techniques to execution traces to support the program comprehension process , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[22]  Andy Zaidman,et al.  Scalability solutions for program comprehension through dynamic analysis , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[23]  Walter F. Tichy,et al.  Software engineering for multicore systems: an experience report , 2008, IWMSE '08.

[24]  Ichiro Hasuo,et al.  Tracing Anonymity with Coalgebras , 2008 .

[25]  Nikolay Kavaldjiev,et al.  A run-time reconfigurable Network-on-Chip for streaming DSP applications , 2006 .

[26]  Harald C. Gall,et al.  System evolution tracking through execution trace analysis , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[27]  Richard N. Taylor,et al.  An (architecture-centric) approach for tracing, organizing, and understanding events in event-based software architectures , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[28]  Alessandro Orso,et al.  SCARPE: A Technique and Tool for Selective Capture and Replay of Program Executions , 2007, 2007 IEEE International Conference on Software Maintenance.

[29]  Eleni Stroulia,et al.  Use Case Redocumentation from GUI Event Traces , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[30]  R. Boumen,et al.  Integration and test plans for complex manufacturing systems , 2007 .

[31]  Martijn van Veelen,et al.  Considerations on modeling for early detection of abnormalities in locally autonomous distributed systems , 2007 .

[32]  M. Kyas Verifying OCL Specifications of UML models , 2006 .

[33]  Claudio Riva,et al.  Reverse architecting: an industrial experience report , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[34]  Arie van Deursen,et al.  Program Comprehension Risks and Opportunities in Extreme Programming , 2001, WCRE.

[35]  Ivan S. Zapreev Model checking Markov chains : techniques and tools , 2008 .

[36]  Yann-Gaël Guéhéneuc,et al.  Feature Identification: An Epidemiological Metaphor , 2006, IEEE Transactions on Software Engineering.

[37]  Wang Zhi-jian Using Benchmarking to Advance Research:A Challenge to Software Engineering , 2005 .

[38]  Thomas Schmitt,et al.  JAVAVIS: Automatic Program Visualization with Object and Sequence Diagrams Using the Java Debug Interface (JDI) , 2001, Software Visualization.

[39]  Johan Moe,et al.  Understanding distributed systems via execution trace data , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[40]  Mohammad Ali Abam New data structures and algorithms for mobile data , 2007 .

[41]  Hanspeter Mössenböck,et al.  Scene: using scenario diagrams and active text for illustrating object-oriented programs , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[42]  Keith W. Miller Test driven development on the cheap: text files and explicit scaffolding , 2004 .

[43]  Johannes Martin,et al.  Dynamic component program visualization , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[44]  Spiros Mancoridis,et al.  Gadget: A Tool for Extracting the Dynamic Structure of Java Programs , 2001, SEKE.

[45]  Jasen Markovski,et al.  Real and stochastic time in process algebras for performance evaluation , 2008 .

[46]  Arie van Deursen,et al.  A Systematic Survey of Program Comprehension through Dynamic Analysis , 2008, IEEE Transactions on Software Engineering.

[47]  Atanas Rountev,et al.  Interactive Exploration of UML Sequence Diagrams , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[48]  E Elena Mumford,et al.  Drawing graphs for cartographic applications , 2008 .

[49]  Arie van Deursen,et al.  Trace visualization for program comprehension: A controlled experiment , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[50]  Ana Sokolova,et al.  Coalgebraic analysis of probabilistic systems , 2005 .

[51]  Nick Mitchell,et al.  Visualizing the Execution of Java Programs , 2001, Software Visualization.

[52]  Siau-Cheng Khoo,et al.  QUARK: Empirical Assessment of Automaton-based Specification Miners , 2006, 2006 13th Working Conference on Reverse Engineering.

[53]  Danny Holten,et al.  Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data , 2006, IEEE Transactions on Visualization and Computer Graphics.

[54]  Dirk Heuzeroth,et al.  COMBINING STATIC AND DYNAMIC ANALYSES TO DETECT INTERACTION PATTERNS , 2002 .

[55]  C.-B. Breunesse On JML: topics in tool-assisted verification of Java programs , 2006 .

[56]  Stéphane Ducasse,et al.  High-level polymetric views of condensed run-time information , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[57]  Jonathan E. Cook,et al.  Discovering thread interactions in a concurrent system , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[58]  Norman Wilde,et al.  TraceGraph: immediate visual location of software features , 2000, Proceedings 2000 International Conference on Software Maintenance.

[59]  Bin Ma,et al.  The similarity metric , 2001, IEEE Transactions on Information Theory.

[60]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[61]  Steven P. Reiss,et al.  Event-based performance analysis , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[62]  Jurgen Vinju,et al.  Analysis and transformation of source code by parsing and rewriting , 2005 .

[63]  Eelco Dolstra,et al.  The purely functional software deployment model , 2006 .

[64]  Ted J. Biggerstaff,et al.  The concept assignment problem in program understanding , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[65]  Dusan M. Velasevic,et al.  A use-case driven method of architecture recovery for program understanding and reuse reengineering , 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering.

[66]  Spencer Rugaber,et al.  Using visualization for architectural localization and extraction , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[67]  Peter Constable,et al.  DSDM: Dynamic Systems Development Method: The Method in Practice , 1997 .

[68]  Claudio Riva,et al.  Combining static and dynamic views for architecture reconstruction , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[69]  Christoph Wysseier,et al.  Visualizing live software systems in 3D , 2006, SoftVis '06.

[70]  Steven P. Reiss,et al.  Almost: exploring program traces , 1999, NPIVM '99.

[71]  RH Rudolf Mak,et al.  Design and performance analysis of data-independent stream processing systems , 2008 .

[72]  Stéphane Ducasse,et al.  Analyzing software evolution through feature views , 2006, J. Softw. Maintenance Res. Pract..

[73]  Norman Wilde,et al.  Industrial tools for the feature location problem: an exploratory study , 2006, J. Softw. Maintenance Res. Pract..

[74]  Theo D'Hondt,et al.  An Approach to High-Level Behavioral Program Documentation Allowing Lightweight Verification , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[75]  Gregg Rothermel,et al.  Dynamic Characterization of Web Application Interfaces , 2007, FASE.

[76]  Swapna S. Gokhale,et al.  Static and dynamic distance metrics for feature-based code analysis , 2005, J. Syst. Softw..

[77]  Ali Shokoufandeh,et al.  Reducing Program Comprehension Effort in Evolving Software by Recognizing Feature Implementation Convergence , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[78]  Adrian Kuhn,et al.  Exploiting the Analogy Between Traces and Signal Processing , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[79]  Atanas Rountev,et al.  Object naming analysis for reverse-engineered sequence diagrams , 2005, ICSE.

[80]  Spiros Mancoridis,et al.  Toward an environment for comprehending distributed systems , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[81]  Andrian Marcus,et al.  A task oriented view of software visualization , 2002, Proceedings First International Workshop on Visualizing Software for Understanding and Analysis.

[82]  Abdelwahab Hamou-Lhadj,et al.  Challenges and requirements for an effective trace exploration tool , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[83]  Kamran Sartipi,et al.  Dynamic Analysis of Software Systems using Execution Pattern Mining , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[84]  Ken Schwaber,et al.  Agile Software Development with SCRUM , 2001 .

[85]  Sophia Krasikov,et al.  Execution patterns for visualizing web services , 2006, SoftVis '06.

[86]  L. Moonen,et al.  Visualizing Similarities in Execution Traces Bas , 2007 .

[87]  Thomas Wolle,et al.  Computational aspects of treewidth : Lower bounds and network reliability , 2005 .

[88]  Andy Zaidman,et al.  Managing trace data volume through a heuristical clustering process based on event execution frequency , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[89]  Helen Sharp,et al.  Motivation in Software Engineering: A systematic literature review , 2008, Inf. Softw. Technol..

[90]  Ileana Buhan,et al.  Cryptographic keys from noisy data, theory and applications , 2008 .

[91]  Michael John Pacione A novel software visualisation model to support object-oriented program comprehension , 2005 .

[92]  Gail C. Murphy,et al.  Scaling an object-oriented system execution visualizer through sampling , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[93]  Thomas Ball,et al.  The concept of dynamic analysis , 1999, ESEC/FSE-7.

[94]  David Notkin,et al.  Software Reflexion Models: Bridging the Gap between Design and Implementation , 2001, IEEE Trans. Software Eng..

[95]  A. Rodriguez Yakushev,et al.  Towards Getting Generic Programming Ready for Prime Time , 2009 .

[96]  Alfred V. Aho,et al.  CERBERUS: Tracing Requirements to Source Code Using Information Retrieval, Dynamic Analysis, and Program Analysis , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[97]  Stéphane Ducasse,et al.  Recovering high-level views of object-oriented applications from static and dynamic information , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[98]  Arie van Deursen,et al.  Understanding Execution Traces Using Massive Sequence and Circular Bundle Views , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[99]  Leon Moonen,et al.  Identification Of Variation Points Using Dynamic Analysis , 2005 .

[100]  A. J. Markvoort Towards hybrid molecular simulations , 2006 .

[101]  U Uzma Khadim,et al.  Process algebras for hybrid systems : comparison and development , 2008 .

[102]  Arie van Deursen,et al.  Crawling AJAX by Inferring User Interface State Changes , 2008, 2008 Eighth International Conference on Web Engineering.

[103]  Neil Walkinshaw,et al.  Reverse Engineering State Machines by Interactive Grammar Inference , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[104]  Danny B. Lange,et al.  Interactive visualization of design patterns can help in framework understanding , 1995, OOPSLA.

[105]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[106]  Arie van Deursen,et al.  Mining Software Repositories to Study Co-Evolution of Production & Test Code , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[107]  Spiros Mancoridis,et al.  A Reverse Engineering Tool for Extracting Protocols of Networked Applications , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[108]  Bahareh Badban,et al.  Verification Techniques for Extensions of Equality Logic , 2006 .

[109]  Eleni Stroulia,et al.  From run-time behavior to usage scenarios: an interaction-pattern mining approach , 2002, KDD.

[110]  Eileen Kraemer,et al.  Designing your Next Empirical Study on Program Comprehension , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[111]  Chris North,et al.  Toward measuring visualization insight , 2006, IEEE Computer Graphics and Applications.

[112]  Eleni Stroulia,et al.  Reverse engineering legacy interfaces: an interaction-driven approach , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[113]  Laura Brandán Briones,et al.  Theories for Model-based Testing: Real-time and Coverage , 2007 .

[114]  Martin Pinzger,et al.  Using run-time data for program comprehension , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[115]  Michael Benedikt,et al.  VeriWeb: Automatically Testing Dynamic Web Sites , 2002 .

[116]  Hong Yan,et al.  DiscoTect: a system for discovering architectures from running systems , 2004, Proceedings. 26th International Conference on Software Engineering.

[117]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[118]  Rainer Koschke,et al.  Feature-driven program understanding using concept analysis of execution traces , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[119]  van Mpwj Michiel Osch Automated model-based testing of hybrid systems , 2009 .

[120]  Abdelwahab Hamou-Lhadj,et al.  Measuring various properties of execution traces to help build better trace analysis tools , 2005, 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'05).

[121]  Thomas M. Pigoski Practical Software Maintenance: Best Practices for Managing Your Software Investment , 1996 .

[122]  Alan W. Biermann,et al.  On the Inference of Turing Machines from Sample Computations , 1972, Artif. Intell..

[123]  Hong Yan,et al.  Discovering Architectures from Running Systems , 2006, IEEE Transactions on Software Engineering.

[124]  Martin P. Robillard,et al.  Efficient mapping of software system traces to architectural views , 2000, CASCON.

[125]  Eleni Stroulia,et al.  A study on the current state of the art in tool-supported UML-based static reverse engineering , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[126]  Andrew David Eisenberg,et al.  Dynamic feature traces: finding features in unfamiliar code , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[127]  Atze Dijkstra Stepping through Haskell , 2000 .

[128]  Arjen van Weelden,et al.  Putting Types To Good Use , 2007 .

[129]  Timothy Lethbridge,et al.  The relevance of software documentation, tools and technologies: a survey , 2002, DocEng '02.

[130]  E. B. Swanson,et al.  Software maintenance management , 1980 .

[131]  Andy Zaidman,et al.  An assessmentmethodology for trace reduction techniques , 2008, 2008 IEEE International Conference on Software Maintenance.

[132]  Spiros Mancoridis,et al.  A hierarchy of dynamic software views: from object-interactions to feature-interactions , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[133]  de Hayco Jong Flexible heterogeneous software systems , 2007 .

[134]  John T. Stasko,et al.  The information mural: a technique for displaying and navigating large information spaces , 1995, Proceedings of Visualization 1995 Conference.

[135]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[136]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[137]  Oscar Nierstrasz,et al.  Object-oriented reengineering patterns , 2004, Proceedings. 26th International Conference on Software Engineering.

[138]  Daniel Amyot,et al.  Recovering behavioral design models from execution traces , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[139]  Philippe Dugerdil,et al.  Using trace sampling techniques to identify dynamic clusters of classes , 2007, CASCON.

[140]  Michel R. V. Chaudron,et al.  Interactive Views to Improve the Comprehension of UML Models - An Experimental Validation , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[141]  Mohammad Reza Mousavi,et al.  Structuring structural operational semantics , 2005 .

[142]  Joost Noppen,et al.  Imperfect Information in Software Design Processes , 2007 .

[143]  Cheun Ngen Chong Experiments in rights control : expression and enforcement , 2005 .

[144]  Erika Ábrahám,et al.  An Assertional Proof System for Multithreaded Java - Theory and Tool Support , 2005 .

[145]  Abdelwahab Hamou-Lhadj,et al.  Compression techniques to simplify the analysis of large execution traces , 2002, Proceedings 10th International Workshop on Program Comprehension.

[146]  Gürcan Gülesir,et al.  Evolvable Behavior Specifications Using Context-Sensitive Wildcards , 2008 .

[147]  Arie van Deursen,et al.  Execution trace analysis through massive sequence and circular bundle views , 2008, J. Syst. Softw..

[148]  J. van den Berg,et al.  Reasoning about Java programs in PVS using JML , 2009 .

[149]  Shriram Krishnamurthi,et al.  The feature signatures of evolving programs , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[150]  Mark Staples,et al.  Experiences using systematic review guidelines , 2006, J. Syst. Softw..

[151]  Abdelwahab Hamou-Lhadj,et al.  A survey of trace exploration tools and techniques , 2004, CASCON.

[152]  Abdelwahab Hamou-Lhadj,et al.  An Approach for Mapping Features to Code Based on Static and Dynamic Analysis , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[153]  Tomas Krilavicius,et al.  Hybrid Techniques for Hybrid Systems , 2006 .

[154]  Norman Wilde,et al.  Early field experience with the Software Reconnaissance technique for program comprehension , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[155]  Doug Kimelman,et al.  Modeling Object-Oriented Program Execution , 1994, ECOOP.

[156]  Magiel Bruntink,et al.  Renovation of idiomatic crosscutting concerns in embedded systems , 2005 .

[157]  Stéphane Ducasse,et al.  Analyzing feature traces to incorporate the semantics of change in software evolution analysis , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[158]  Arie van Deursen,et al.  Visualizing Testsuites to Aid in Software Understanding , 2006, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[159]  Giuliano Antoniol,et al.  A distributed architecture for dynamic analyses on user-profile data , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[160]  C. Murray Woodside,et al.  Interaction tree algorithms to extract effective architecture and layered performance models from traces , 2007, J. Syst. Softw..

[161]  Giuliano Antoniol,et al.  Understanding Web applications through dynamic analysis , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[162]  G. Rozenberg,et al.  Effective models for the structure of ð-calculus processes with replication , 2001 .

[163]  H.M.A. van Beek,et al.  Specification and analysis of Internet applications , 2005 .

[164]  Juan Visente Guillen Scholten,et al.  Mobile Channels for Exogenous Coordination of Distributed Systems: Semantics, Implementation and Composition , 2007 .

[165]  Jens R. Calamé,et al.  Testing reactive systems with data: enumerative methods and constraint solving , 2008 .

[166]  Shensheng Zhang,et al.  A practical pattern recovery approach based on both structural and behavioral analysis , 2005, J. Syst. Softw..

[167]  Danny B. Lange,et al.  Object-Oriented Program Tracing and Visualization , 1997, Computer.

[168]  John T. Stasko,et al.  Visualizing Interactions in Program Executions , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[169]  Marc Roper,et al.  A comparative evaluation of dynamic visualisation tools , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[170]  M. Torabi Dashti,et al.  Keeping Fairness Alive : Design and formal verification of optimistic fair exchange protocols , 2008 .

[171]  James H. Andrews,et al.  Testing using log file analysis: tools, methods, and issues , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).

[172]  Scott P. Robertson,et al.  Expert problem solving strategies for program comprehension , 1991, CHI.

[173]  Thomas A. Corbi,et al.  Program Understanding: Challenge for the 1990s , 1989, IBM Syst. J..

[174]  P. Zoeteweij,et al.  Composing constraint solvers , 2005 .

[175]  Spiros Mancoridis,et al.  Form: a framework for creating views of program executions , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[176]  Martin Bravenboer,et al.  Exercises in Free Syntax. Syntax Definition, Parsing, and Assimilation of Language Conglomerates , 2003 .

[177]  Doug Kimelman,et al.  Visualizing the behavior of object-oriented systems , 1993, OOPSLA '93.

[178]  Yaojin Yang,et al.  Generation of architectural documentation using XML , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[179]  EM Elena Bortnik,et al.  Formal methods in support of SMC design , 2008 .

[180]  Yan Tang,et al.  Efficient checkpointing of java software using context-sensitive capture and replay , 2007, ESEC-FSE '07.

[181]  J.A. Gomez,et al.  Locating user functionality in old code , 1992, Proceedings Conference on Software Maintenance 1992.

[182]  Jeroen Eggermont,et al.  Data Mining using Genetic Programming : Classification and Symbolic Regression , 2005 .

[183]  Abdelwahab Hamou-Lhadj,et al.  Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[184]  Ricardo Corin,et al.  Analysis Models for Security Protocols , 2006 .

[185]  Ping Chen,et al.  Architecture recovery and abstraction from the perspective of processes , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[186]  Lei Wang,et al.  Enhancing security using legality assertions , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[187]  M. A. Valero Espada,et al.  Modal Abstraction and Replication of Processes with Data , 2005 .

[188]  Clark Verbrugge,et al.  Dynamic Data Structure Analysis for Java Programs , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[189]  Flavio D. Garcia Formal and Computational Cryptography: Protocols, Hashes and Commitments , 2008 .

[190]  Swapna S. Gokhale,et al.  Quantifying the closeness between program components and features , 2000, J. Syst. Softw..

[191]  T. van der Storm Component-based configuration, integration and delivery , 2003 .

[192]  Chao Liu,et al.  Introduction to the special issue on program comprehension through dynamic analysis (PCODA) , 2008 .

[193]  Ali Mesbah,et al.  Analysis and Testing of Ajax-based Single-page Web Applications , 2009 .

[194]  Marius Adrian Marin,et al.  An Integrated System to Manage Crosscutting Concerns in Source Code , 2008 .

[195]  B. Gebremichael-Tesfagiorgis,et al.  Expressivity of Timed Automata Models , 2006 .

[196]  Siegfried Nijssen Mining Structured Data , 2006 .

[197]  Norman Wilde,et al.  A comparison of methods for locating features in legacy software , 2003, J. Syst. Softw..

[198]  Marc Roper,et al.  A novel software visualisation model to support software comprehension , 2004, 11th Working Conference on Reverse Engineering.

[199]  Norman Wilde,et al.  Software reconnaissance: Mapping program features to code , 1995, J. Softw. Maintenance Res. Pract..

[200]  Margaret M. Burnett,et al.  Representation Design Benchmarks: A Design-Time Aid for VPL Navigable Static Representations , 1997, J. Vis. Lang. Comput..

[201]  Atanas Rountev,et al.  Static control-flow analysis for reverse engineering of UML sequence diagrams , 2005, PASTE '05.

[202]  Roy H. Campbell,et al.  Architecture-oriented visualization , 1996, OOPSLA '96.

[203]  Daniel M. Germán,et al.  A survey and evaluation of tool features for understanding reverse-engineered sequence diagrams , 2008, J. Softw. Maintenance Res. Pract..

[204]  de Ism Ivo Jong Integration and test strategies for complex manufacturing machines , 2008 .

[205]  Johannes Koskinen,et al.  Constructing Usage Scenarios for API Redocumentation , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[206]  Steven P. Reiss,et al.  Visualizing program execution using user abstractions , 2006, SoftVis '06.

[207]  Yann-Gaël Guéhéneuc,et al.  A reverse engineering tool for precise class diagrams , 2004, CASCON.

[208]  A Adam Koprowski,et al.  Termination of rewriting and its certification , 2004 .

[209]  Bastiaan Heeren,et al.  Top quality type error Messages , 2005 .

[210]  Sebastián Uchitel,et al.  Detecting Implied Scenarios from Execution Traces , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[211]  R. Voets,et al.  JRET: A tool for the reconstruction of sequence diagrams from program executions , 2008 .

[212]  Oscar Nierstrasz,et al.  Exploiting Runtime Information in the IDE , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[213]  Andy Zaidman,et al.  Journal of Software Maintenance and Evolution: Research and Practice Automatic Identification of Key Classes in a Software System Using Webmining Techniques , 2022 .

[214]  Norman Wilde,et al.  A case study of feature location in unstructured legacy Fortran code , 2001, Proceedings Fifth European Conference on Software Maintenance and Reengineering.

[215]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[216]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[217]  Daniel Kroening,et al.  Decision Procedures for Equality Logic and Uninterpreted Functions , 2008 .

[218]  Gabriele Lenzini,et al.  Integration of Analysis Techniques in Security and Fault-Tolerance , 2005 .

[219]  Amela Karahasanovic,et al.  A survey of controlled experiments in software engineering , 2005, IEEE Transactions on Software Engineering.

[220]  Michael F. Kleyn,et al.  GraphTrace - Understanding Object-Oriented Systems Using Concurrently Animated Views , 1988, OOPSLA.

[221]  B. Cornells Dynamic Analysis Techniques for the Reconstruction of Architectural Views , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[222]  Martin Gogolla,et al.  Capturing dynamic program behaviour with UML collaboration diagrams , 2001, Proceedings Fifth European Conference on Software Maintenance and Reengineering.

[223]  Aad Mathssen,et al.  Logical Calculi for Reasoning with Binding , 2008 .

[224]  Pearl Brereton,et al.  Lessons from applying the systematic literature review process within the software engineering domain , 2007, J. Syst. Softw..

[225]  Marcel Verhoef,et al.  Modeling and validating distributed embedded real-time control systems , 2009 .

[226]  Yee Wei Law Key management and link-layer security of wireless sensor networks: Energy-efficient attack and defense , 2005 .

[227]  J. Ketema,et al.  Bohm-Like Trees for Rewriting , 2006 .

[228]  Cfj Christian Lange,et al.  Assessing and improving the quality of modeling : a series of empirical studies about the UML , 2007 .

[229]  Karina R. Olmos Joffré Strategies for Context Sensitive Program Transformation , 2009 .

[230]  Juergen Rilling,et al.  Maximizing functional cohesion of comprehension environments by integrating user and task knowledge , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[231]  Rainer Koschke,et al.  On dynamic feature location , 2005, ASE.

[232]  Yann-Gaël Guéhéneuc,et al.  Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval , 2007, IEEE Transactions on Software Engineering.

[233]  Malcolm Munro,et al.  Understanding service-oriented software , 2004, IEEE Software.

[234]  Hausi A. Müller,et al.  Shimba—an environment for reverse engineering Java software systems , 2001, Softw. Pract. Exp..

[235]  Jason O. Hallstrom,et al.  A Toolkit for Visualizing the Runtime Behavior of TinyOS Applications , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[236]  M. J. de Mol,et al.  Reasoning about functional programs : Sparkle, a proof assistant for Clean , 2009 .

[237]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[238]  van Mj Muck Weerdenburg,et al.  Efficient rewriting techniques , 2009 .

[239]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[240]  Denys Poshyvanyk,et al.  Feature location via information retrieval based filtering of a single scenario execution trace , 2007, ASE.

[241]  Siau-Cheng Khoo,et al.  SMArTIC: towards building an accurate, robust and scalable specification miner , 2006, SIGSOFT '06/FSE-14.

[242]  Thomas D. LaToza,et al.  Maintaining mental models: a study of developer work habits , 2006, ICSE.

[243]  Bastiaan Stephan Graaf,et al.  Model-Driven Evolution of Software Architectures , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[244]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[245]  Harmen Kastenberg Graph-based software specification and verification , 2008 .

[246]  M. T. de Berg,et al.  Multi-functional geometric data structures , 2003 .

[247]  Pierre Kelsen A simple static model for understanding the dynamic behavior of programs , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[248]  M. G. van der Horst,et al.  Scalable block processing algorithms , 2008 .

[249]  Dmitri Jarnikov,et al.  QoS framework for video streaming in home networks , 2007 .

[250]  Arun Lakhotia,et al.  A formalism to automate mapping from program features to code , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[251]  Paolo Tonella,et al.  Static and dynamic C++ code analysis for the recovery of the object diagram , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[252]  R Ronald Ruimerman,et al.  Modeling and remodeling in bone tissue , 2005 .

[253]  Oscar Nierstrasz,et al.  Tracking Objects to Detect Feature Dependencies , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[254]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[255]  Ling Cheung,et al.  Reconciling nondeterministic and probabilistic choices , 2006 .

[256]  Robert Brijder,et al.  Models of natural computation : gene assembly and membrane systems , 2008 .

[257]  Gao Design and verification of lock-free parallel algorithms , 2005 .

[258]  Michael D. Ernst Static and dynamic analysis: synergy and duality , 2003 .

[259]  Ben Shneiderman,et al.  The eyes have it: a task by data type taxonomy for information visualizations , 1996, Proceedings 1996 IEEE Symposium on Visual Languages.

[260]  Steven P. Reiss Visualizing Java in action , 2003, SoftVis '03.

[261]  Rainer Koschke,et al.  Dynamic Protocol Recovery , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[262]  T. D. Vu,et al.  Semantics and applications of process and program algebra , 2007 .

[263]  G Giovanni Russello,et al.  Separation and adaptation of concerns in a shared data space , 2006 .

[264]  Bogdan Korel,et al.  Program slicing in understanding of large programs , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[265]  Andy Zaidman,et al.  A Lightweight Approach to Determining the Adequacy of Tests as Documentation , 2006 .

[266]  Martijn Hendriks,et al.  Model checking timed automata : techniques and applications , 2006 .

[267]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[268]  Wolter Pieters,et al.  La volonté machinale: understanding the electronic voting controversy , 2008 .

[269]  Kamran Sartipi,et al.  An Amalgamated Dynamic and Static Architecture Reconstruction Framework to Control Component Interactions 259 , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[270]  Mark N. Wegman,et al.  Execution Patterns in Object-Oriented Visualization , 1998, COOTS.

[271]  Andy Zaidman,et al.  Regaining lost knowledge through dynamic analysis and aspect orientation $an industrial experience report , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[272]  D. Graaf,et al.  Mining semi-structured data, theoretical and experimental aspects of pattern evaluation , 2008 .

[273]  Steven P. Reiss,et al.  Visual representations of executing programs , 2007, J. Vis. Lang. Comput..

[274]  Jeroen Doumen,et al.  Searching in encrypted data , 2004 .

[275]  Anton Wijs,et al.  What to do next? Analysing and optimising system behaviour in time , 2007 .

[276]  Margaret-Anne D. Storey,et al.  Theories, Methods and Tools in Program Comprehension: Past, Present and Future , 2005, IWPC.

[277]  Ming Li,et al.  Clustering by compression , 2003, IEEE International Symposium on Information Theory, 2003. Proceedings..

[278]  Gilbert Hamann,et al.  An automated approach for abstracting execution logs to execution events , 2008, J. Softw. Maintenance Res. Pract..

[279]  Hasan Sözer,et al.  Architecting Fault-Tolerant Software Systems , 2009 .

[280]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[281]  Giuseppe A. Di Lucca,et al.  Abstracting business level UML diagrams from Web applications , 2003, Fifth IEEE International Workshop on Web Site Evolution, 2003. Theme: Architecture. Proceedings..

[282]  Johannes Koskinen,et al.  Profile-Based Approach to Support Comprehension of Software Behavior , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[283]  Peter Verbaan,et al.  The Computational Complexity of Evolving Systems , 2006 .

[284]  Welf Löwe,et al.  Automatic design pattern detection , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[285]  Norman Wilde,et al.  Software Feature Understanding in an Industrial Setting , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[286]  Lionel C. Briand,et al.  Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software , 2006, IEEE Transactions on Software Engineering.

[287]  Anton Wijs,et al.  Silent steps in transition systems and Markov chains , 2007 .

[288]  H. Hansen Coalgebraic Modelling : Applications in Automata theory and Modal logic , 2009 .

[289]  Keith H. Bennett,et al.  Legacy Systems: Coping with Success , 1995, IEEE Softw..

[290]  Ivan Kurtev,et al.  Adaptability of model transformations , 2005 .

[291]  M. T. de Berg,et al.  Algorithms for Fat Objects: Decompositions and Applications , 2004 .

[292]  Thomas Ball,et al.  Software Visualization in the Large , 1996, Computer.

[293]  Giuliano Antoniol,et al.  Scenario-driven dynamic analysis for comprehending large software systems , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[294]  AJ Arjan Mooij,et al.  Constructive formal methods and protocol standardization , 2006 .