Scenario-driven dynamic analysis for comprehending large software systems

Understanding large software systems is simplified when a combination of techniques for static and dynamic analysis is employed. Effective dynamic analysis requires that execution traces be generated by executing scenarios that are representative of the system's typical usage. This paper presents an approach that uses dynamic analysis to extract views of a software system at different levels, namely (1) use cases views, (2) module interaction views, and (3) class interaction views. The proposed views can be used to help maintainers locate features to be changed. The proposed approach is evaluated against a large software system, the Mozilla Web browser

[1]  Mark Dawood,et al.  Reengineering Technology Report. Volume 2. , 1995 .

[2]  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..

[3]  Kai Koskimies,et al.  SCED: A TOOL FOR DYNAMIC MODELLING OF OBJECT SYSTEMS , 1996 .

[4]  Miro Kraetzl,et al.  Graph distances using graph union , 2001, Pattern Recognit. Lett..

[5]  Emden R. Gansner,et al.  Bunch: a clustering tool for the recovery and maintenance of software system structures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[6]  Swapna S. Gokhale,et al.  Locating program features using execution slices , 1999, Proceedings 1999 IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. ASSET'99 (Cat. No.PR00122).

[7]  David N. Card,et al.  Proceedings of the Conference on Software Maintenance , 1993 .

[8]  Han Bok Lee,et al.  BIT: BYTECODE INSTRUMENTING TOOL , 1997 .

[9]  Rainer Koschke,et al.  Aiding program comprehension by static and dynamic feature analysis , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[10]  Bin Luo,et al.  A framework for dynamic program analyzers , 1993, OOPSLA '93.

[11]  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).

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

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

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

[15]  Gaudenz Alder,et al.  Design and Implementation of the JGraph Swing Component , 2003 .

[16]  Richard C. Holt Binary Relational Algebra Applied to Software Architecture , 1996 .

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

[18]  Yann-Gaël Guéhéneuc,et al.  Feature identification: a novel approach and a case study , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[19]  Sheng Liang,et al.  Java Virtual Machine Profiler Interface , 2000, IBM Syst. J..

[20]  Emden R. Gansner,et al.  Drawing graphs with dot , 2006 .

[21]  Giuliano Antoniol,et al.  Towards employing use-cases and dynamic analysis to comprehend Mozilla , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[22]  Thomas A. Standish An Essay on Software Reuse , 1984, IEEE Transactions on Software Engineering.

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

[24]  Václav Rajlich,et al.  Case study of feature location using dependence graph , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

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

[26]  Grace A. Lewis,et al.  Modernizing Legacy Systems - Software Technologies, Engineering Processes, and Business Practices , 2003, SEI series in software engineering.