课题基金 / 基金详情

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
金额:
$2.04万
依托单位:
依托单位国家:
加拿大
项目类别:
Discovery Grants Program - Individual
财政年份:
2018
资助国家:
加拿大
项目状态:
已结题
起止时间:
2018-01-01 至 2019-12-31

项目摘要

项目成果

Nadi, Sarah的其他基金

相似基金

相关文献

中文摘要
翻译
“一刀切”的软件系统不再实用;定制以适应各种硬件和用户需求往往是必要的。例如,惠普生产了40多种打印机型号,Linux内核支持32种计算机体系结构,这些体系结构包括在从移动设备到企业服务器的各种设备中。软件通常是为考虑到的特定产品而设计的,当新需求出现时,旧产品会被复制和修改以适应这些新需求。这种复制方法很麻烦,管理单独的相关产品容易出错,并可能导致冗余(例如,将相同的错误修复应用于不同的产品)。软件产品线(SPL)恰恰避免了这种情况。SPL是一个共享的、可配置的平台,它提供一组功能(功能单元),这些功能可以组合在一起创建特定的软件产品,同时尊重可变性模型中记录的给定功能依赖关系。SPL的优势包括以更容易的方法生产定制的软件,降低成本,提高质量,并缩短上市时间。*不幸的是,软件系统通常被认为是单独的产品;直到后来,在产生了多个相关产品之后,才变得明显的是,它们应该作为单个连贯的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
  • 依托单位:
Mining Software Repositories to Infer Software Product Line Migration Strategies
  • 批准号:
    RGPIN-2017-04289
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $4.08万
  • 财政年份:
    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
  • 依托单位:
海外基金