Software reconnaissance: mapping program features to code
Journal of Software Maintenance: Research and Practice
Quantifying the closeness between program components and features
Journal of Systems and Software - Special issue on software maintenance
Evolving legacy systems features using regression test cases and components
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
Locating Features in Source Code
IEEE Transactions on Software Engineering
Using Dynamic Information for the Iterative Recovery of Collaborations and Roles
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Partial behavioral reflection: spatial and temporal selection of reification
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
High-Level Polymetric Views of Condensed Run-time Information
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
A Hierarchy of Dynamic Software Views: From Object-Interactions to Feature-Interactions
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
A survey of trace exploration tools and techniques
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
Correlating Features and Code Using a Compact Two-Sided Trace Analysis Approach
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Analyzing Feature Traces to Incorporate the Semantics of Change in Software Evolution Analysis
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Feature Identification: A Novel Approach and a Case Study
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
On Computing the Canonical Features of Software Systems
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Analyzing software evolution through feature views: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
Understanding Execution Traces Using Massive Sequence and Circular Bundle Views
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
Tracking Objects to Detect Feature Dependencies
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
Explicit use-case representation in object-oriented programming languages
Proceedings of the 7th symposium on Dynamic languages
Hi-index | 0.00 |
A feature represents a functional requirement fulfilled by a system. Since many maintenance tasks are expressed in terms of features, it is important to establish the correspondence between a feature and its implementation in source code. Traditional approaches to establish this correspondence exercise features to generate a trace of runtime events, which is then processed by post-mortem analysis. These approaches typically generate large amounts of data to analyze. Due to their static nature, these approaches do not support incremental and interactive analysis of features. We propose a radically different approach called live feature analysis, which provides a model at runtime of features. Our approach analyzes features on a running system and also makes it possible to "grow" feature representations by exercising different scenarios of the same feature, and identifies execution elements even to the sub-method level. We describe how live feature analysis is implemented effectively by annotating structural representations of code based on abstract syntax trees. We illustrate our live analysis with a case study where we achieve a more complete feature representation by exercising and merging variants of feature behavior and demonstrate the efficiency or our technique with benchmarks.