Program restructuring as an aid to software maintenance
Program restructuring as an aid to software maintenance
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Implementing product-line features by composing aspects
Proceedings of the first conference on Software product lines : experience and research directions: experience and research directions
Component-based product line development: the KobrA approach
Proceedings of the first conference on Software product lines : experience and research directions: experience and research directions
Software product lines: practices and patterns
Software product lines: practices and patterns
Easing the Transition to Software Mass Customization
PFE '01 Revised Papers from the 4th International Workshop on Software Product-Family Engineering
XVCL: XML-based variant configuration language
Proceedings of the 25th International Conference on Software Engineering
Reengineering a PC-Based System into the Mobile Device Product Line
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
IEEE Transactions on Software Engineering
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
Proceedings of the 5th international conference on Generative programming and component engineering
On the duality of aspect-oriented and feature-oriented design patterns
Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software
Variability Management in Software Product Line Engineering
ICSE COMPANION '07 Companion to the proceedings of the 29th International Conference on Software Engineering
A Case Study Implementing Features Using AspectJ
SPLC '07 Proceedings of the 11th International Software Product Line Conference
Granularity in software product lines
Proceedings of the 30th international conference on Software engineering
FLiP: Managing Software Product Line Extraction and Reaction with Aspects
SPLC '08 Proceedings of the 2008 12th International Software Product Line Conference
Improving Guidance when Restructuring Variabilities in Software Product Lines
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
ICSR '09 Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain Engineering
A model of refactoring physically and virtually separated features
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Remodularizing Java programs for comprehension of features
FOSD '09 Proceedings of the First International Workshop on Feature-Oriented Software Development
Recommending refactorings when restructuring variabilities in software product lines
Proceedings of the 2nd Workshop on Refactoring Tools
Delta-oriented programming of software product lines
SPLC'10 Proceedings of the 14th international conference on Software product lines: going beyond
Extracting Software Product Lines: A Case Study Using Conditional Compilation
CSMR '11 Proceedings of the 2011 15th European Conference on Software Maintenance and Reengineering
Proceedings of the 33rd International Conference on Software Engineering
Introducing agile customer-centered development in a legacy software product line
Software—Practice & Experience
Investigating the safe evolution of software product lines
Proceedings of the 10th ACM international conference on Generative programming and component engineering
From Requirements to Features: An Exploratory Study of Feature-Oriented Refactoring
SPLC '11 Proceedings of the 2011 15th International Software Product Line Conference
Variant-preserving refactoring in feature-oriented software product lines
Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems
Extracting and evolving mobile games product lines
SPLC'05 Proceedings of the 9th international conference on Software Product Lines
A Semi-Automatic Approach for Extracting Software Product Lines
IEEE Transactions on Software Engineering
Managing forked product variants
Proceedings of the 16th International Software Product Line Conference - Volume 1
Refactoring delta-oriented software product lines
Proceedings of the 12th annual international conference on Aspect-oriented software development
Language-Independent and Automated Software Composition: The FeatureHouse Experience
IEEE Transactions on Software Engineering
A framework for managing cloned product variants
Proceedings of the 2013 International Conference on Software Engineering
Science of Computer Programming
Managing cloned variants: a framework and experience
Proceedings of the 17th International Software Product Line Conference
Feature-Oriented Software Product Lines: Concepts and Implementation
Feature-Oriented Software Product Lines: Concepts and Implementation
Hi-index | 0.00 |
In the context of single software systems, refactoring is commonly accepted to be the process of restructuring an existing body of code in order to improve its internal structure without changing its external behavior. This process is vital to the maintenance and evolution of software systems. Software product line engineering is a paradigm for the construction and customization of large-scale software systems. As systems grow in complexity and size, maintaining a clean structure becomes arguably more important. However, product line literature uses the term "refactoring" for such a wide range of reengineering activities that it has become difficult to see how these activities pertain to maintenance and evolution and how they are related. We improve this situation in the following way: i) We identify the dimensions along which product line reengineering occurs. ii) We derive a taxonomy that distinguishes and relates these reengineering activities. iii) We propose definitions for the three main branches of this taxonomy. iv) We classify a corpus of existing work.