IEEE Transactions on Software Engineering
A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
Understanding object-oriented: a unifying paradigm
Communications of the ACM
Property-Based Software Engineering Measurement
IEEE Transactions on Software Engineering
Software reconnaissance: mapping program features to code
Journal of Software Maintenance: Research and Practice
The concept assignment problem in program understanding
ICSE '93 Proceedings of the 15th international conference on Software Engineering
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
Software maintenance and evolution: a roadmap
Proceedings of the Conference on The Future of Software Engineering
A conceptual basis for feature engineering
Journal of Systems and Software
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Separating features in source code: an exploratory study
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Jiazzi: new-age components for old-fasioned Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Evolving legacy system features into fine-grained components
Proceedings of the 24th International Conference on Software Engineering
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Locating Features in Source Code
IEEE Transactions on Software Engineering
Proceedings of the 25th International Conference on Software Engineering
Locating Program Features using Execution Slices
ASSET '99 Proceedings of the 1999 IEEE Symposium on Application - Specific Systems and Software Engineering and Technology
Requirements Recovery from Legacy Systems by Analyzing and Modelling Behavior
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Case Study of Feature Location Using Dependence Graph
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
The Role of Concepts in Program Comprehension
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
A Hierarchy of Dynamic Software Views: From Object-Interactions to Feature-Interactions
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
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
Dynamic Feature Traces: Finding Features in Unfamiliar Code
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Feature oriented refactoring of legacy applications
Proceedings of the 28th international conference on Software engineering
Spotlight: A Prototype Tool for Software Plans
ICSE '07 Proceedings of the 29th international conference on Software Engineering
How Developers Develop Features
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Delocalized Plans and Program Comprehension
IEEE Software
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Granularity in software product lines
Proceedings of the 30th international conference on Software engineering
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Remodularizing Java programs for comprehension of features
FOSD '09 Proceedings of the First International Workshop on Feature-Oriented Software Development
An orthogonal access modifier model for feature-oriented programming
FOSD '09 Proceedings of the First International Workshop on Feature-Oriented Software Development
The Logical Modularity of Programs
WCRE '09 Proceedings of the 2009 16th Working Conference on Reverse Engineering
Using Data Fusion and Web Mining to Support Feature Location in Software
ICPC '10 Proceedings of the 2010 IEEE 18th International Conference on Program Comprehension
Featureous: A Tool for Feature-Centric Analysis of Java Software
ICPC '10 Proceedings of the 2010 IEEE 18th International Conference on Program Comprehension
ICPC '10 Proceedings of the 2010 IEEE 18th International Conference on Program Comprehension
Software Module Clustering as a Multi-Objective Search Problem
IEEE Transactions on Software Engineering
Detection of seed methods for quantification of feature confinement
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Hi-index | 0.00 |
Explicit traceability between features and source code is known to help programmers to understand and modify programs during maintenance tasks. However, the complex relations between features and their implementations are not evident from the source code of object-oriented Java programs. Consequently, the implementations of individual features are difficult to locate, comprehend, and modify in isolation. In this paper, we present a novel remodularization approach that improves the representation of features in the source code of Java programs. Both forward and reverse restructurings are supported through on-demand bidirectional restructuring between feature-oriented and object-oriented decompositions. The approach includes a feature location phase based on tracing of program execution, a feature representation phase that reallocates classes into a new package structure based on single-feature and multi-feature packages, and an annotation-based reverse transformation of code. Case studies performed on two open-source projects indicate that our approach requires relatively little manual effort and reduces tangling and scattering of feature implementations in the source code.