Inferring structural patterns for concern traceability in evolving software

As part of the evolution of software systems, effort is often invested to discover in what parts of the source code a feature (or other concern) is implemented. Unfortunately, knowledge about a concern's implementation can become invalid as the system evolves. We propose to mitigate this problem by automatically inferring structural patterns among the elements identified as relevant to a concern's implementation. We then document the inferred patterns as rules that can be checked as the source code evolves. Checking whether structural patterns hold across different versions of a system enables the automatic identification of new elements related to a documented concern. We implemented our technique for JAVA in an Eclipse plug-in called ISIS and applied it to a number of concerns. With a case study spanning 34 versions of the development history of an open-source system, we show how our approach supports the tracking of a concern's implementation through modifications such as extensions and refactorings

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

[2]  Rick Kazman,et al.  Architecture, design, implementation , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

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

[4]  Martin P. Robillard Tracking Concerns in Evolving Source Code: An Empirical Study , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[5]  Kris De Volder,et al.  Navigating and querying code without getting lost , 2003, AOSD '03.

[6]  Wei Zhao,et al.  SNIAFL: towards a static non-interactive approach to feature location , 2004, Proceedings. 26th International Conference on Software Engineering.

[7]  Kim Mens,et al.  IntensiVE, a toolsuite for documenting and checking structural source-code regularities , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[8]  David Grove,et al.  Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis , 1995, ECOOP.

[9]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[10]  Alexander Egyed,et al.  STRADA: A Tool for Scenario-Based Feature-to-Code Trace Detection and Analysis , 2007, 29th International Conference on Software Engineering (ICSE'07 Companion).

[11]  Martin P. Robillard,et al.  Representing concerns in source code , 2007, TSEM.

[12]  Lori Pollock,et al.  An Empirical Study of the Concept Assignment Problem , 2007 .

[13]  Martin P. Robillard,et al.  ConcernMapper: simple view-based separation of scattered concerns , 2005, eclipse '05.

[14]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[15]  Mariano Ceccato,et al.  Aspect mining through the formal concept analysis of execution traces , 2004, 11th Working Conference on Reverse Engineering.

[16]  Yann-Gaël Guéhéneuc,et al.  Combining Probabilistic Ranking and Latent Semantic Indexing for Feature Identification , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[17]  Leon Moonen,et al.  A common framework for aspect mining based on crosscutting concern sorts , 2006, 2006 13th Working Conference on Reverse Engineering.

[18]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

[19]  Thomas Zimmermann,et al.  Mining Aspects from Version History , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[20]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[21]  William G. Griswold,et al.  Exploiting the map metaphor in a tool for software evolution , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[22]  Alexander Egyed,et al.  Supporting Software Understanding with Automated Requirements Traceability , 2005, Int. J. Softw. Eng. Knowl. Eng..

[23]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[24]  Arie van Deursen,et al.  Identifying aspects using fan-in analysis , 2004, 11th Working Conference on Reverse Engineering.