A fast algorithm for computing longest common subsequences
Communications of the ACM
The Cathedral and the Bazaar
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Assessing the Benefits of Incorporating Function Clone Detection in a Development Process
ICSM '97 Proceedings of the International Conference on Software Maintenance
Identifying Reasons for Software Changes Using Historic Databases
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Comprehending Reality " Practical Barriers to Industrial Adoption of Software Maintenance Automation
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Use of relative code churn measures to predict system defect density
Proceedings of the 27th international conference on Software engineering
An empirical study of code clone genealogies
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Mining evolution data of a product family
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Understanding collateral evolution in Linux device drivers
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Milk or wine: does software security improve with age?
USENIX-SS'06 Proceedings of the 15th conference on USENIX Security Symposium - Volume 15
Analysis of the Linux Kernel Evolution Using Code Clone Coverage
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Predicting faults using the complexity of code changes
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
License integration patterns: Addressing license mismatches in component-based development
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Code siblings: Technical and legal implications of copying code between applications
MSR '09 Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
An exploratory study of the evolution of software licensing
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Recurring bug fixes in object-oriented programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
A study of the uniqueness of source code
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Social interactions around cross-system bug fixings: the case of FreeBSD and OpenBSD
Proceedings of the 8th Working Conference on Mining Software Repositories
Systematic editing: generating program transformations from an example
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Exploring Large-Scale System Similarity Using Incremental Clone Detection and Live Scatterplots
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
Measuring similarity of large software systems based on source code correspondence
PROFES'05 Proceedings of the 6th international conference on Product Focused Software Process Improvement
REPERTOIRE: a cross-system porting analysis tool for forked software projects
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
LASE: locating and applying systematic edits by learning from examples
Proceedings of the 2013 International Conference on Software Engineering
LASE: an example-based program transformation tool for locating and applying systematic edits
Proceedings of the 2013 International Conference on Software Engineering
Managing cloned variants: a framework and experience
Proceedings of the 17th International Software Product Line Conference
WEON: towards a software ecosystem ONtology
Proceedings of the 2013 International Workshop on Ecosystem Architectures
Journal of Systems and Software
Hi-index | 0.00 |
Software forking---creating a variant product by copying and modifying an existing product---is often considered an ad hoc, low cost alternative to principled product line development. To maintain such forked products, developers often need to port an existing feature or bug-fix from one product variant to another. As a first step towards assessing whether forking is a sustainable practice, we conduct an in-depth case study of 18 years of the BSD product family history. Our study finds that maintaining forked projects involves significant effort of porting patches from other projects. Cross-system porting happens periodically and the porting rate does not necessarily decrease over time. A significant portion of active developers participate in porting changes from peer projects. Surprisingly, ported changes are less defect-prone than non-ported changes. Our work is the first to comprehensively characterize the temporal, spatial, and developer dimensions of cross-system porting in the BSD family, and our tool Repertoire is the first automated tool for detecting ported edits with high accuracy of 94% precision and 84% recall. Our study finds that the upkeep work of porting changes from peer projects is significant and currently, porting practice seems to heavily depend on developers doing their porting job on time. This result calls for new techniques to automate cross-system porting to reduce the maintenance cost of forked projects.