课题基金 / 基金详情

Mining Software Repositories to Infer Software Product Line Migration Strategies

Mining Software Repositories to Infer Software Product Line Migration Strategies
挖掘软件存储库以推断软件产品线迁移策略
批准号:
RGPIN-2017-04289
负责人:
Nadi, Sarah
金额:
$4.08万
依托单位:
依托单位国家:
加拿大
项目类别:
Discovery Grants Program - Individual
财政年份:
2022
资助国家:
加拿大
项目状态:
已结题
起止时间:
2022-01-01 至 2023-12-31

项目摘要

项目成果

Nadi, Sarah的其他基金

相似基金

相关文献

中文摘要
翻译
“一刀切”的软件系统不再实用;定制以适应各种硬件和用户需求通常是必要的。例如,惠普生产40多种型号的打印机,Linux内核支持从移动设备到企业服务器的32种计算机体系结构。软件通常是为特定的产品设计的,当出现新的需求时,旧的产品被复制和修改以适应这些新的需求。这种复制方法很麻烦,并且管理单独的相关产品容易出错,并可能导致冗余(例如,将相同的错误修复应用于不同的产品)。软件产品线(SPLs)恰恰避免了这种情况。SPL是一个共享的、可配置的平台,它提供了一组可以组合起来创建特定软件产品的特性(功能单元),同时尊重可变性模型中记录的给定特性依赖关系。spc的优点包括更容易地以更低的成本、更高的质量和更短的上市时间来生产定制的软件。不幸的是,软件系统通常被认为是单独的产品;只有在后来,当多个相关的产品被生产出来之后,才会发现它们应该作为一个统一的SPL的一部分更好地开发。然而,将一组相关的软件产品迁移到SPL是昂贵的,并且需要大量的手工工作。我的研究计划的长期目标是创建为SPL迁移提供自动化支持的方法和相应的工具。我的总体方法依赖于利用从软件存储库(例如,版本控制系统)中挖掘的代码演变和过程知识,以及从涉及从业者的定量和定性实证研究中获得的见解。我的提案整合了两个研究活动,每个活动都针对解决上述目标的一系列问题。重新设计相关产品:哪些重新设计步骤可以将相关产品整合到一个共享的可配置系统中?根据这些产品的编程语言和初始设计,支持可变性的最合适的体系结构是什么?逆向工程可变性模型:我们能自动确定特征依赖并向涉众解释它们吗?我们能自动推断出来自领域知识的依赖关系吗?这项研究计划的贡献将使现有软件的更系统的重用成为可能,节省软件架构师花费在手工迁移上的宝贵时间,并允许软件生产者应对不断增长的软件需求。通过这个研究项目训练的HQP将获得设计和实施定量和定性实证研究、挖掘软件库、分析源代码和其他软件工件的经验。
英文摘要
A 'one size fits all' software system is no longer practical; customizations to fit various hardware and user requirements are often necessary. For example, Hewlett-Packard produces over 40 printer models, and the Linux kernel supports 32 computer architectures that are included in devices ranging from mobile devices to enterprise servers. Software is often designed for a specific product in mind, and when new requirements arise, the old product is copied and modified to fit these new requirements. This copying approach is cumbersome, and managing separate related products is error-prone and can lead to redundancy (e.g., applying the same bug fix to different products). Software Product Lines (SPLs) avoid exactly this situation. An SPL is a shared, configurable platform that provides a set of features (units of functionality) that can be combined to create a specific software product, while respecting given feature dependencies documented in a variability model. Advantages of SPLs include an easier approach to produce tailor-made software with reduced cost, improved quality, and reduced time to market. Unfortunately, software systems are often conceived as individual products; only later, after multiple related products have been produced, does it become obvious that they should have been better developed as part of a single coherent SPL. However, migrating a set of related software products into an SPL is costly and requires high manual effort. The long-term goal of my research program is to create methods and respective tools that provide automated support for SPL migration. My overall methodology relies on leveraging code evolution and process knowledge mined from software repositories (e.g., version control systems) along with insights gained from quantitative and qualitative empirical studies involving practitioners. My proposal integrates two research activities, each targeting a set of problems that address the above goal.Re-engineering related products: What re-engineering steps can consolidate related products into a single shared configurable system? Depending on the programming language and initial design of these products, what is the most suitable architecture for supporting variability?Reverse-engineering variability models: Can we automatically determine feature dependencies and explain them to stakeholders? Can we automatically infer dependencies that stem from domain knowledge?The contributions of this research program will enable more systematic reuse of existing software, saving software architects valuable time spent in manual migration and allowing software producers to cope with the increasing demand for software. The HQP trained through this research program will gain experience in designing and conducting quantitative and qualitative empirical studies, mining software repositories, and analyzing source code and other software artifacts.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
Canada Research Chair in Software Reuse
  • 批准号:
    CRC-2017-00235
  • 项目类别:
    Canada Research Chairs
  • 资助金额:
    $4.37万
  • 财政年份:
    2022
  • 负责人:
    Nadi, Sarah
  • 依托单位:
Software Reuse
  • 批准号:
    CRC-2021-00417
  • 项目类别:
    Canada Research Chairs
  • 资助金额:
    $3.64万
  • 财政年份:
    2022
  • 负责人:
    Nadi, Sarah
  • 依托单位:
Canada Research Chair In Software Reuse
  • 批准号:
    CRC-2017-00235
  • 项目类别:
    Canada Research Chairs
  • 资助金额:
    $8.74万
  • 财政年份:
    2021
  • 负责人:
    Nadi, Sarah
  • 依托单位:
Mining Software Repositories to Infer Software Product Line Migration Strategies
  • 批准号:
    RGPIN-2017-04289
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $2.04万
  • 财政年份:
    2021
  • 负责人:
    Nadi, Sarah
  • 依托单位:
海外基金