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
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
A Standard Problem for Evaluating Product-Line Methodologies
GCSE '01 Proceedings of the Third International Conference on Generative and Component-Based Software Engineering
Experiment on the Automatic Detection of Function Clones in a Software System Using Metrics
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Software Quality Analysis by Code Clones in Industrial Legacy Software
METRICS '02 Proceedings of the 8th International Symposium on Software Metrics
On finding duplication and near-duplication in large software systems
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Evaluation Experiments on the Detection of Programming Patterns Using Software Metrics
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Advanced Clone-Analysis to Support Object-Oriented System Refactoring
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
Identifying Similar Code with Program Dependence Graphs
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Experiences Developing and Maintaining Software in a Multi-Platform Environment
ICSM '97 Proceedings of the International Conference on Software Maintenance
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
A Language Independent Approach for Detecting Duplicated Code
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
IEEE Transactions on Software Engineering
Managing Duplicated Code with Linked Editing
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
Towards a catalog of aspect-oriented refactorings
Proceedings of the 4th international conference on Aspect-oriented software development
Deriving refactorings for AspectJ
Proceedings of the 4th international conference on Aspect-oriented software development
Deriving refactorings for AspectJ
Proceedings of the 4th international conference on Aspect-oriented software development
Beyond templates: a study of clones in the STL and some general implications
Proceedings of the 27th international conference on Software engineering
On the Use of Clone Detection for Identifying Crosscutting Concern Code
IEEE Transactions on Software Engineering
CP-Miner: Finding Copy-Paste and Related Bugs in Large-Scale Software Code
IEEE Transactions on Software Engineering
Supporting the analysis of clones in software systems: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - IEEE International Conference on Software Maintenance (ICSM2005)
Feature oriented refactoring of legacy applications
Proceedings of the 28th international conference on Software engineering
DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Tracking Code Clones in Evolving Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Comparison and Evaluation of Clone Detection Tools
IEEE Transactions on Software Engineering
Granularity in software product lines
Proceedings of the 30th international conference on Software engineering
IEEE Transactions on Software Engineering
Journal of Software Maintenance and Evolution: Research and Practice
Comparison and evaluation of code clone detection techniques and tools: A qualitative approach
Science of Computer Programming
Supporting the Grow-and-Prune Model in Software Product Lines Evolution Using Clone Detection
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
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
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
A model of refactoring physically and virtually separated features
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
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
Extracting and evolving mobile games product lines
SPLC'05 Proceedings of the 9th international conference on Software Product Lines
Variant-preserving refactoring in feature-oriented software product lines
Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems
Feature-oriented programming with family polymorphism
Proceedings of the 3rd international workshop on Variability & Composition
Supporting multiple feature binding strategies in NX
FOSD '12 Proceedings of the 4th International Workshop on Feature-Oriented Software Development
Hi-index | 0.00 |
Some limitations of object-oriented mechanisms are known to cause code clones (e.g., extension using inheritance). Novel programming paradigms such as feature-oriented programming (FOP) aim at alleviating these limitations. However, it is an open issue whether FOP is really able to avoid code clones or whether it even facilitates (FOP-related) clones. To address this issue, we conduct an empirical analysis on ten feature-oriented software product lines with respect to code cloning. We found that there is a considerable number of clones in feature-oriented software product lines and that a large fraction of these clones is FOP-related (i.e., caused by limitations of feature-oriented mechanisms). Based on our results, we initiate a discussion on the reasons for FOP-related clones and on how to cope with them. We show by means of examples how such clones can be removed by applying refactorings.