Designing documentation to compensate for delocalized plans
Communications of the ACM
Dynamically discovering likely program invariants to support program evolution
Proceedings of the 21st international conference on Software engineering
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
Exploiting the map metaphor in a tool for software evolution
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Locating Features in Source Code
IEEE Transactions on Software Engineering
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Architecture, design, implementation
Proceedings of the 25th International Conference on Software Engineering
SNIAFL: Towards a Static Non-Interactive Approach to Feature Location
Proceedings of the 26th International Conference on Software Engineering
Aspect Mining through the Formal Concept Analysis of Execution Traces
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Identifying Aspects Using Fan-In Analysis
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
IntensiVE, a toolsuite for documenting and checking structural source-code regularities
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
ConcernMapper: simple view-based separation of scattered concerns
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Combining Probabilistic Ranking and Latent Semantic Indexing for Feature Identification
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Mining Aspects from Version History
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Tracking Concerns in Evolving Source Code: An Empirical Study
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
A common framework for aspect mining based on crosscutting concern sorts
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Representing concerns in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
STRADA: A Tool for Scenario-Based Feature-to-Code Trace Detection and Analysis
ICSE COMPANION '07 Companion to the proceedings of the 29th International Conference on Software Engineering
Discovering and representing systematic code changes
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Aspect recommendation for evolving software
Proceedings of the 33rd International Conference on Software Engineering
Hi-index | 0.01 |
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