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
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
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
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference 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
The Role of Concepts in Program Comprehension
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
Variability management with feature-oriented programming and aspects
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
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
Feature oriented refactoring of legacy applications
Proceedings of the 28th international conference on Software engineering
Feature refactoring a multi-representation program into a product line
Proceedings of the 5th international conference on Generative programming and component engineering
How Developers Develop Features
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Remodularizing Java programs for improved locality of feature implementations in source code
Science of Computer Programming
A taxonomy of software product line reengineering
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Hi-index | 0.00 |
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.