Feature-oriented decomposition of software is known to improve a programmer's ability to understand and modify software during maintenance tasks. However, it is difficult to take advantage of this fact in case of object-oriented software due to lack of appropriate feature modularization mechanisms. In absence of these mechanisms, feature implementations tend to be scattered and tangled in terms of object-oriented abstractions, making the code implementing features difficult to locate and comprehend. In this paper we present a semi-automatic method for feature-oriented remodularization of Java programs. Our method uses execution traces to locate implementations of features, and Java packages to establish explicit feature modules. To evaluate usefulness of the approach, we present a case study where we apply our method to two real-world software systems. The obtained results indicate a significant improvement of feature representation in both programs, and confirm the low level of manual effort required by the proposed remodularization method.
Proceedings of the First International Workshop on Feature-oriented Software Development (fosd), 2009, p. 19-26
features; feature location; remodularization
Main Research Area:
First International Workshop on Feature-Oriented Software Development (FOSD), 2009