For companies producing related products, a Software Product Line (SPL) is a software reuse method that improves time-to-market and software quality, achieving substantial cost reductions.These benefits do not come for free. It often takes years to re-architect and re-engineer a codebase to support SPL and, once adopted, it must be maintained. Current SPL practice relies on a collection of tools, tailored for different reengineering phases, whose output developers must coordinate and integrate. We present Foundry, a general automated approach for leveraging software transplantation to speed conversion to and maintenance of SPL. Foundry facilitates feature extraction and migration. It can efficiently, repeatedly, transplant a sequence of features, implemented in multiple files. We used Foundry to create two valid product lines that integrate features from three real-world systems in an automated way. Moreover, we conducted an experiment comparing Foundry's feature migration with manual effort. We show that Foundry automatically migrated features across codebases 4.8 times faster, on average, than the average time a group of SPL experts took to accomplish the task.
翻译:对于生产相关产品的企业而言,软件产品线(SPL)是一种软件复用方法,可缩短上市时间、提升软件质量,并实现大幅成本降低。但这些优势并非免费获得。通常需要数年时间对代码库进行重构和再造以支持SPL,而一旦采用,还需持续维护。当前的SPL实践依赖于一系列针对不同重构阶段定制的工具,开发人员需协调和集成这些工具的输出结果。我们提出一种名为Foundry的通用自动化方法,旨在利用软件移植技术加速SPL的转换与维护。Foundry支持特征提取与迁移,能够高效、重复地将多个文件中实现的一组特征序列进行移植。我们利用Foundry以自动化方式创建了两个有效产品线,整合了来自三个真实系统的特征。此外,我们还进行了一项实验,比较了Foundry的特征迁移与人工操作的效果。结果表明,Foundry跨代码库自动迁移特征的平均速度比一组SPL专家完成相同任务的平均速度快4.8倍。