Software architecture in practice
Software architecture in practice
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
Separating features in source code: an exploratory study
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Concern graphs: finding and describing concerns using structural program dependencies
Proceedings of the 24th International Conference on Software Engineering
IEEE Software
An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
Generic Implementation of Product Line Components
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
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
Preprocessor Conditional Removal by Simple Partial Evaluation
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Refactoring Browser with Preprocessor
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Practical analysis for refactoring
Practical analysis for refactoring
IEEE Transactions on Software Engineering
Aspect Mining Using Event Traces
Proceedings of the 19th IEEE international conference on Automated software engineering
Variability management with feature models
Science of Computer Programming - Special issue: Software variability management
Classbox/J: controlling the scope of change in Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
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
Verifying feature-based model templates against well-formedness OCL constraints
Proceedings of the 5th international conference on Generative programming and component engineering
Proceedings of the 6th international conference on Aspect-oriented software development
IEEE Transactions on Software Engineering
ACoM '07 Proceedings of the First International Workshop on Assessment of Contemporary Modularization Techniques
Safe composition of product lines
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
The java module system: core design and semantic definition
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Granularity in software product lines
Proceedings of the 30th international conference on Software engineering
IEEE Transactions on Software Engineering
On the feasibility of an AOSD approach to Linux kernel extensions
Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software
On the modularity of feature interactions
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Feature featherweight java: a calculus for feature-oriented programming and stepwise refinement
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Program refactoring using functional aspects
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Can we refactor conditional compilation into aspects?
Proceedings of the 8th ACM international conference on Aspect-oriented software development
FEATUREHOUSE: Language-independent, automated software composition
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Fitting the pieces together: a machine-checked model of safe composition
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Type-Checking Software Product Lines - A Formal Approach
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Feature models, grammars, and propositional formulas
SPLC'05 Proceedings of the 9th international conference on Software Product Lines
An analysis of the variability in forty preprocessor-based software product lines
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Type safety for feature-oriented product lines
Automated Software Engineering
Automatic variation-point identification in function-block-based models
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Code clones in feature-oriented software product lines
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Language-independent reference checking in software product lines
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
On the need of safe software product line architectures
ECSA'10 Proceedings of the 4th European conference on Software architecture
Multi-dimensional variability modeling
Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems
Analyzing the discipline of preprocessor annotations in 30 million lines of C code
Proceedings of the tenth international conference on Aspect-oriented software development
Feature cohesion in software product lines: an exploratory study
Proceedings of the 33rd International Conference on Software Engineering
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
Automatic library migration for the generation of hardware-in-the-loop models
Science of Computer Programming
Type checking annotation-based product lines
ACM Transactions on Software Engineering and Methodology (TOSEM)
A calculus for modeling and implementing variation
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems
Do background colors improve program comprehension in the #ifdef hell?
Empirical Software Engineering
Family-based performance measurement
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Intraprocedural dataflow analysis for software product lines
Transactions on Aspect-Oriented Software Development X
A taxonomy of software product line reengineering
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Hi-index | 0.00 |
Physical separation with class refinements and method refinements à la AHEAD and virtual separation using annotations à la #ifdef or CIDE are two competing implementation approaches for software product lines with complementary advantages. Although both approaches have been mainly discussed in isolation, we strive for an integration to leverage the respective advantages. In this paper, we lay the foundation for such an integration by providing a model that supports both physical and virtual separation and by describing refactorings in both directions. We prove the refactorings complete, so every virtually separated product line can be automatically transformed into a physically separated one (replacing annotations by refinements) and vice versa. To demonstrate the feasibility of our approach, we have implemented the refactorings in our tool CIDE and conducted four case studies.