OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Using role components in implement collaboration-based designs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
IEEE Transactions on Software Engineering
Towards a catalog of aspect-oriented refactorings
Proceedings of the 4th international conference on Aspect-oriented software development
Feature oriented refactoring of legacy applications
Proceedings of the 28th international conference on Software engineering
Proceedings of the 5th international conference on Generative programming and component engineering
FEATUREHOUSE: Language-independent, automated software composition
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Reasoning about edits to feature models
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
ICSR '09 Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain Engineering
Clone removal: fact or fiction?
Proceedings of the 4th International Workshop on Software Clones
Code clones in feature-oriented software product lines
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
A theory of software product line refinement
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Code Similarities Beyond Copy & Paste
CSMR '10 Proceedings of the 2010 14th European Conference on Software Maintenance and Reengineering
Variability-aware parsing in the presence of lexical macros and conditional compilation
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Scalable Prediction of Non-functional Properties in Software Product Lines
SPLC '11 Proceedings of the 2011 15th International Software Product Line Conference
Access control in feature-oriented programming
Science of Computer Programming
FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Co-evolution of models and feature mapping in software product lines
Proceedings of the 16th International Software Product Line Conference - Volume 1
Evolving delta-oriented software product line architectures
Proceedings of the 17th Monterey conference on Large-Scale Complex IT Systems: development, operation and management
Feature-oriented software evolution
Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems
Refactoring delta-oriented software product lines
Proceedings of the 12th annual international conference on Aspect-oriented software development
Implementing refactorings for FOP: lessons learned and challenges ahead
Proceedings of the 5th International Workshop on Feature-Oriented Software Development
A taxonomy of software product line reengineering
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Hi-index | 0.00 |
A software product line (SPL) is an advanced concept to manage a family of programs under one umbrella. As with stand-alone programs, maintenance is an important challenge within SPL engineering. One pivotal activity during software maintenance is refactoring; that is, restructuring a program's source code while preserving its external behavior. However, for SPLs, this definition is not sufficient because it does not take into account the behavior of a set of programs. In this paper, we focus on the specific requirements for applying refactorings in feature-oriented SPLs. We propose variant-preserving refactoring for such SPLs to ensure the validity of all SPL variants after refactoring. Furthermore, we present a first approach how the traditional refactoring definition can be extended so that it can be applied to SPLs based on feature-oriented programming. Finally, we state our experiences of applying such refactorings for the removal of code clones in feature-oriented SPLs and discuss the generalizability for other SPL implementation techniques.