Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Evolution in software and related areas
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
Towards a catalog of aspect-oriented refactorings
Proceedings of the 4th international conference on Aspect-oriented software development
Software Product Line Engineering: Foundations, Principles and Techniques
Software Product Line Engineering: Foundations, Principles and Techniques
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
Clean Code: A Handbook of Agile Software Craftsmanship
Clean Code: A Handbook of Agile Software Craftsmanship
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
Pure delta-oriented programming
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
A theory of software product line refinement
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Delta-oriented programming of software product lines
SPLC'10 Proceedings of the 14th international conference on Software product lines: going beyond
Compositional type-checking for delta-oriented programming
Proceedings of the tenth international conference on Aspect-oriented software development
Variant-preserving refactoring in feature-oriented software product lines
Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems
Feature models, grammars, and propositional formulas
SPLC'05 Proceedings of the 9th international conference on Software Product Lines
Eliminating the adoption barrier
IEEE Software
A taxonomy of software product line reengineering
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Hi-index | 0.00 |
Delta-oriented programming (DOP) is an implementation approach to develop software product lines (SPL). Delta-oriented SPLs evolve over time due to new or changed requirements and need to be maintained to retain their value. Refactorings have been proposed as behavior-preserving program transformations that improve the design and structure of (object-oriented) software systems. However, there is a lack of refactoring support for software product lines since refactoring of SPLs is more complex than of single systems. For refactoring SPLs, we have to preserve the behavior of probably thousands of programs instead of only one. In this paper, we address the refactoring of software product lines by presenting a catalogue of refactorings for delta-oriented SPLs. Additionally, we propose code smells to guide developers to potential refactoring opportunities. We show how code smells can aid the identification of SPL refactorings and how these refactorings improve the evolvability and maintainability of delta-oriented SPLs.