Empirical Analysis of Build System Smells and Refactorings
构建系统气味和重构的实证分析
基本信息
- 批准号:RGPIN-2014-04838
- 负责人:
- 金额:$ 2.33万
- 依托单位:
- 依托单位国家:加拿大
- 项目类别:Discovery Grants Program - Individual
- 财政年份:2015
- 资助国家:加拿大
- 起止时间:2015-01-01 至 2016-12-31
- 项目状态:已结题
- 来源:
- 关键词:
项目摘要
A build system is the infrastructure that transforms the (textual) source code of a software system into an executable program by invoking configurators, preprocessors, compilers, test harnesses, packaging and deployment tools in the correct order. Because this transformation is fundamental, most software development stakeholders interact with the build system on a daily basis. For example, developers use it to obtain an executable to run unit tests on a new feature or bug fix. The build system also enables continuous integration servers to automatically build and test whenever a developer checks in a software change. Finally, the recent trend of continuous delivery, where companies like Intuit, Mozilla and Google release new versions of their software in a couple of days or even hours, requires a powerful, flexible and highly performant build system!
However, real-life build systems in industry and open source are quite the opposite: large, monolithic build specification files in '70s era technology (like "make"), hardly understood by any developer, fully at the mercy of one talented project member. Even though the source code evolves constantly, adapting the build system to these changing requirements is hard and often results in patched-up versions of the existing build architecture. The latter problem is due to the rigid build system architecture, the developers' unfamiliarity with (often arcane) build technology like "make", and the low priority of build system changes for unsuspecting project managers. Hence, the build system becomes more complex and less performant, with team members getting frustrated and tampering with code dependencies to speed up builds. Such tampering in turn introduces other side-effects like inconsistent build errors or unpredictable build performance.
The main goal of my research program is to derive a set of patterns and best practices for build system maintenance that will enable any software development stakeholder to maintain their build system (e.g., "make" or "ant" files) in a systematic, disciplined, quantifiable way. In particular, this program aims to compile catalogues of bad smells (indicators of a potential quality issue) and refactorings of the build system (and related entities), and to build developer support to recommend applicable refactorings and perform refactorings selected by the stakeholder. The catalogues will be based on interviews with open source developers and build system engineers, as well as large-scale empirical analyses of thousands of open source systems using three generations of build system technologies. We will also perform user studies with open source and industry participants to validate our IDE support.
Given the central role of the build system in software development, our research results will be directly applicable by the Canadian industry, providing competitive advantage to both large software companies, like IBM and RIM, and smaller SMEs. In particular, companies will be able to enhance their dashboards with crucial, but currently missing indicators of the health of their build system. The identified patterns and best practices will provide a succinct vocabulary and methodology for all build system stakeholders to discuss and treat build system problems effectively. Above all, our results will allow practitioners to systematically integrate their build system into a successful continuous delivery process.
The research plan will train 4 High Quality Personnel (HQP), i.e., 2 PhD and 2 Master students, who will gain extensive hands-on experience with empirical research techniques and industry-grade build systems. This training qualifies them for the demanding and much sought after roles of build and release engineers for large-scale software systems.
构建系统是一个基础设施,它通过调用配置器、预处理器、编译器、测试工具、打包和部署工具,以正确的顺序将软件系统的(文本)源代码转换为可执行程序。因为这种转换是基本的,所以大多数软件开发涉众每天都与构建系统交互。例如,开发人员使用它来获取可执行文件,以便在新特性或bug修复上运行单元测试。构建系统还使持续集成服务器能够在开发人员检入软件更改时自动构建和测试。最后,最近持续交付的趋势是,像Intuit、Mozilla和谷歌这样的公司在几天甚至几个小时内发布他们软件的新版本,这需要一个强大、灵活和高性能的构建系统!
项目成果
期刊论文数量(0)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
数据更新时间:{{ journalArticles.updateTime }}
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
数据更新时间:{{ journalArticles.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ monograph.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ sciAawards.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ conferencePapers.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ patent.updateTime }}
Adams, Bram其他文献
cregit: Token-level blame information in git version control repositories
- DOI:
10.1007/s10664-019-09704-x - 发表时间:
2019-08-01 - 期刊:
- 影响因子:4.1
- 作者:
Germans, Daniel M.;Adams, Bram;Stewart, Kate - 通讯作者:
Stewart, Kate
Continuously mining distributed version control systems: an empirical study of how Linux uses Git
- DOI:
10.1007/s10664-014-9356-2 - 发表时间:
2016-02-01 - 期刊:
- 影响因子:4.1
- 作者:
German, Daniel M.;Adams, Bram;Hassan, Ahmed E. - 通讯作者:
Hassan, Ahmed E.
Adams, Bram的其他文献
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
{{ truncateString('Adams, Bram', 18)}}的其他基金
Managing Software Build Inflation
管理软件构建膨胀
- 批准号:
RGPIN-2019-06014 - 财政年份:2022
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Individual
Managing Software Build Inflation
管理软件构建膨胀
- 批准号:
RGPIN-2019-06014 - 财政年份:2021
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Individual
Managing Software Build Inflation
管理软件构建膨胀
- 批准号:
RGPAS-2019-00075 - 财政年份:2020
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Accelerator Supplements
Managing Software Build Inflation
管理软件构建膨胀
- 批准号:
RGPIN-2019-06014 - 财政年份:2020
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Individual
Managing Software Build Inflation
管理软件构建膨胀
- 批准号:
RGPAS-2019-00075 - 财政年份:2020
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Accelerator Supplements
Managing Software Build Inflation
管理软件构建膨胀
- 批准号:
RGPIN-2019-06014 - 财政年份:2019
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Individual
Managing Software Build Inflation
管理软件构建膨胀
- 批准号:
RGPAS-2019-00075 - 财政年份:2019
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Accelerator Supplements
Reverse Engineering a Data Lake for Data Science******
对数据科学的数据湖进行逆向工程*****
- 批准号:
537315-2018 - 财政年份:2018
- 资助金额:
$ 2.33万 - 项目类别:
Engage Grants Program
Empirical Analysis of Build System Smells and Refactorings
构建系统气味和重构的实证分析
- 批准号:
RGPIN-2014-04838 - 财政年份:2018
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Individual
Empirical Analysis of Build System Smells and Refactorings
构建系统气味和重构的实证分析
- 批准号:
RGPIN-2014-04838 - 财政年份:2017
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Individual
相似国自然基金
Scalable Learning and Optimization: High-dimensional Models and Online Decision-Making Strategies for Big Data Analysis
- 批准号:
- 批准年份:2024
- 资助金额:万元
- 项目类别:合作创新研究团队
Intelligent Patent Analysis for Optimized Technology Stack Selection:Blockchain BusinessRegistry Case Demonstration
- 批准号:
- 批准年份:2024
- 资助金额:万元
- 项目类别:外国学者研究基金项目
基于Meta-analysis的新疆棉花灌水增产模型研究
- 批准号:41601604
- 批准年份:2016
- 资助金额:22.0 万元
- 项目类别:青年科学基金项目
大规模微阵列数据组的meta-analysis方法研究
- 批准号:31100958
- 批准年份:2011
- 资助金额:20.0 万元
- 项目类别:青年科学基金项目
用“后合成核磁共振分析”(retrobiosynthetic NMR analysis)技术阐明青蒿素生物合成途径
- 批准号:30470153
- 批准年份:2004
- 资助金额:22.0 万元
- 项目类别:面上项目
相似海外基金
CCRI: Planning-C: Planning to Build Digital Infrastructure for Real-Time, Continual, and Intelligent Transportation Analysis and Management
CCRI:Planning-C:规划构建实时、持续、智能交通分析和管理的数字基础设施
- 批准号:
2213731 - 财政年份:2022
- 资助金额:
$ 2.33万 - 项目类别:
Standard Grant
CAREER: Analysis and Repair of Build Scripts for DevOps Software Practice
职业:DevOps 软件实践的构建脚本分析和修复
- 批准号:
1846467 - 财政年份:2019
- 资助金额:
$ 2.33万 - 项目类别:
Continuing Grant
Stability of concrete subjected to vibration – Analysis of the nano- and microscopic structural build-up and structural breakdown behavior of cementitious suspensions
振动下混凝土的稳定性 â 分析水泥悬浮液的纳米和微观结构构建和结构破坏行为
- 批准号:
411375374 - 财政年份:2018
- 资助金额:
$ 2.33万 - 项目类别:
Priority Programmes
Empirical Analysis of Build System Smells and Refactorings
构建系统气味和重构的实证分析
- 批准号:
RGPIN-2014-04838 - 财政年份:2018
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Individual
Empirical Analysis of Build System Smells and Refactorings
构建系统气味和重构的实证分析
- 批准号:
RGPIN-2014-04838 - 财政年份:2017
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Individual
Empirical Analysis of Build System Smells and Refactorings
构建系统气味和重构的实证分析
- 批准号:
RGPIN-2014-04838 - 财政年份:2016
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Individual
Precision Math: Using Interactive Gaming Technology to Build Student Proficiency in the Foundational Concepts and Problem Solving Skills of Measurement and Data Analysis
精密数学:利用互动游戏技术培养学生熟练掌握测量和数据分析的基本概念和解决问题的技能
- 批准号:
1503161 - 财政年份:2015
- 资助金额:
$ 2.33万 - 项目类别:
Continuing Grant
RI: Small: Using Prediction to Build a Compact Visual Memex Memory for Rapid Analysis and Understanding of Egocentric Video Data
RI:小型:使用预测构建紧凑的视觉 Memex 存储器,以快速分析和理解以自我为中心的视频数据
- 批准号:
1422767 - 财政年份:2014
- 资助金额:
$ 2.33万 - 项目类别:
Continuing Grant
Empirical Analysis of Build System Smells and Refactorings
构建系统气味和重构的实证分析
- 批准号:
RGPIN-2014-04838 - 财政年份:2014
- 资助金额:
$ 2.33万 - 项目类别:
Discovery Grants Program - Individual
Analysis on the relationship between invasion crime and street crime, and expansion to algorithmic design of build environments
入侵犯罪与街头犯罪之间的关系分析,以及扩展到构建环境的算法设计
- 批准号:
22760457 - 财政年份:2010
- 资助金额:
$ 2.33万 - 项目类别:
Grant-in-Aid for Young Scientists (B)