Visualizing Feature Interaction in 3-D

Without a clear understanding of how features of a software system are implemented, a maintenance change in one part of the code may risk adversely affecting other features. Feature implementation and relationships between features are not explicit in the code. To address this problem, we propose an interactive 3D visualization technique based on a combination of static and dynamic analysis which enables the software developer to step through visual representations of execution traces. We visualize dynamic behaviors of execution traces in terms of object creations and interactions and represent this in the context of a static class-hierarchy view of a system. We describe how we apply our approach to a case study to visualize and identify common parts of the code that are active during feature execution

[1]  Michele Lanza,et al.  CodeCrawler-lessons learned in building a software visualization tool , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[2]  Stéphane Ducasse,et al.  Correlating features and code using a compact two-sided trace analysis approach , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[3]  Stéphane Ducasse,et al.  Polymetric Views - A Lightweight Visual Approach to Reverse Engineering , 2003, IEEE Trans. Software Eng..

[4]  Oscar Nierstrasz,et al.  Finding refactorings via change metrics , 2000, OOPSLA '00.

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

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

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

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

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

[10]  Stéphane Ducasse,et al.  Moose: A Collaborative and Extensible Reengineering Environment , 2005, Tools for Software Maintenance and Reengineering.

[11]  Ralph E. Johnson,et al.  Wrappers to the Rescue , 1998, ECOOP.

[12]  Serge Demeyer,et al.  FAMIX 2. 1-the FAMOOS information exchange model , 1999 .

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

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

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

[16]  Ivar Jacobson,et al.  Use Cases and Aspects-Working Seamlessly Together , 2003, J. Object Technol..

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

[18]  Elke Pulvermüller,et al.  Position Paper: Feature Interaction in Composed Systems , 2001, FICS.

[19]  Stéphane Ducasse,et al.  A categorization of classes based on the visualization of their internal structure: the class blueprint , 2001, OOPSLA '01.

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