Correlating features and code using a compact two-sided trace analysis approach

Software developers are constantly required to modify and adapt application features in response to changing requirements. The problem is that just by reading the source code, it is difficult to determine how classes and methods contribute to the runtime behavior of features. Moreover, dependencies between system features are not obvious, consequently software maintenance operations often result in unintended side effects. To tackle these problems, we propose a compact feature-driven approach (i.e., summarized trace information) based on dynamic analysis to characterize features and computational units of an application. We extract execution traces to achieve an explicit mapping between features and classes using two complementary perspectives. We apply our approach to two case studies and we report our findings.

[1]  George T. Heineman,et al.  Evolving legacy systems features using regression test cases and components , 2001, IWPSE '01.

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

[3]  Lukas Renggli Smallwiki: Collaborative content management , 2003 .

[4]  A. Fuggetta,et al.  Feature engineering [software development] , 1998, Proceedings Ninth International Workshop on Software Specification and Design.

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

[6]  Oscar Nierstrasz,et al.  Ordering broken unit tests for focused debugging , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

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

[8]  David Evans,et al.  Towards Differential Program Analysis , 2022 .

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

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

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

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

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

[14]  Harald C. Gall,et al.  Analyzing and relating bug report data for feature tracking , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

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

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

[17]  Atif M. Memon,et al.  GUI ripping: reverse engineering of graphical user interfaces for testing , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

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

[19]  Colin Potts,et al.  Ontological excavation: unearthing the core concepts of the application , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

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

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

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

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

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

[25]  Eleni Stroulia,et al.  Recovering software requirements from system-user interaction traces , 2002, SEKE '02.

[26]  Stéphane Ducasse,et al.  Understanding software evolution using a combination of software visualization and software metrics , 2002, Obj. Logiciel Base données Réseaux.

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

[28]  Alexander L. Wolf,et al.  Feature Engineering , 1998 .