Towards Systematic Support for Utilizing Application-Level Abstraction Frameworks
Towards Systematic Support for Utilizing Application-Level Abstraction Frameworks
批准号:
RGPIN-2018-06726
负责人:
Chen, TseHsun
金额:
$2.4万
依托单位:
依托单位国家:
加拿大
项目类别:
Discovery Grants Program - Individual
财政年份:
2019
资助国家:
加拿大
项目状态:
已结题
起止时间:
2019-01-01 至 2020-12-31
中文摘要
现代软件开发严重依赖于应用程序级抽象框架来减少软件开发开销。例如,超过78%的Java开发人员使用对象关系映射框架来抽象数据库访问;像亚马逊这样的大公司依赖于Apache Spark来抽象分布式数据分析。使用各种应用程序级抽象框架允许开发人员专注于应用程序的业务逻辑,从而显著减少软件开发时间和成本。******然而,使用应用程序级抽象框架可能是一把双刃剑:一方面,使用这些框架有助于减少开发开销,但另一方面,不正确或低效地使用它们可能导致严重的软件质量问题。事实上,由于以下几个原因,经常会看到抽象框架的不正确或次优使用。首先,由于对框架的不完全理解,开发人员可能会在应用程序代码中引入不正确的框架用法。其次,现代应用程序级抽象框架为开发人员提供了为不同场景定制框架使用的灵活性,并根据实际工作负载调整配置选项。不考虑场景和工作负载将导致框架的次优使用(例如,出现性能问题)。******此建议的目标是在使用应用程序级抽象框架时解决上述挑战。该提案有三个研究目标(ROs)。RO1:为了在软件开发阶段帮助开发人员,我和我的学生将提出从软件开发历史中自动学习特定于框架的错误模式的技术,并进行用户研究以了解与框架相关问题的根本原因和可能的解决方案。RO2:为了在开发和操作阶段帮助开发人员,我和我的学生将创建一种轻量级实时技术,可以从部署在生产环境中的应用程序中学习使用场景和典型工作负载。该技术将为开发人员优化与框架相关的代码和配置提供建议。RO3:为了在维护阶段帮助开发人员,我和我的学生将提出一些技术,通过在生产中利用历史修复和框架使用信息来自动修复特定于框架的问题。******这项研究的结果将提供一个完整的解决方案,以帮助开发人员进行现代面向框架的软件开发。建议的技术将显著提高加拿大公司的软件质量并降低软件开发成本。拟议的研究还将培训五名高素质人员(HQP),并使他们能够为最先进的软件工程研究和实践做出贡献。
英文摘要
Modern software development relies heavily on application-level abstraction frameworks to reduce software development overheads. For example, more than 78% of Java developers use Object-Relational Mapping frameworks to abstract database accesses; and large companies such as Amazon rely on Apache Spark to abstract distributed data analysis. Using various application-level abstraction frameworks allows developers to focus on the business logic of the application, and hence, significantly reduce the software development time and costs. ******However, using application-level abstraction frameworks can be a double-edged sword: on one hand, using these frameworks helps reduce development overheads, but on the other hand, using them incorrectly or inefficiently can result in severe software quality problems. In fact, it is common to see incorrect or suboptimal usage of abstraction frameworks due to several reasons. First, due to an incomplete understanding of the framework, developers may introduce incorrect framework usage in the application code. Second, modern application-level abstraction frameworks give developers the flexibility to customize the framework usage for different scenarios, and to tune configuration options based on real-world workloads. Not considering the scenarios and workloads would lead to sub-optimal use of the framework (e.g., having performance problems). ******The goal of this proposal is to address the above-mentioned challenges when using application-level abstraction frameworks. The proposal has three research objectives (ROs). RO1: To help developers during the software development stage, my students and I will propose techniques to automatically learn framework-specific bug patterns from software development history, and conduct user studies to understand the root causes and possible solutions of framework-related problems. RO2: To help developers during the development and operation stage, my students and I will create a lightweight real-time technique that can learn usage scenarios and typical workloads from applications that are deployed in production. The technique will provide suggestions to developers on optimizing framework-related code and configurations. RO3: To help developers during the maintenance stage, my students and I will propose techniques to automatically repair framework-specific problems by leveraging historical fixes and framework usage information in production. ******The outcome of this research will provide a complete solution to assist developers with modern framework-oriented software development. The proposed techniques will significantly improve software quality and reduce software development costs among Canadian companies. The proposed research will also train five highly qualified personnel (HQP) and allow them to contribute to state-of-the-art Software Engineering research and practice.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
Towards Systematic Support for Utilizing Application-Level Abstraction Frameworks
-
批准号:RGPIN-2018-06726
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.4万
-
财政年份:2022
-
负责人:Chen, TseHsun
-
依托单位:
Towards High-Quality and Intelligent Database-Centric Applications
-
批准号:543656-2019
-
项目类别:Collaborative Research and Development Grants
-
资助金额:$4.3万
-
财政年份:2021
-
负责人:Chen, TseHsun
-
依托单位:
Towards Systematic Support for Utilizing Application-Level Abstraction Frameworks
-
批准号:RGPIN-2018-06726
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.4万
-
财政年份:2021
-
负责人:Chen, TseHsun
-
依托单位:
Towards High-Quality and Intelligent Database-Centric Applications
-
批准号:543656-2019
-
项目类别:Collaborative Research and Development Grants
-
资助金额:$4.3万
-
财政年份:2020
-
负责人:Chen, TseHsun
-
依托单位:
Towards Systematic Support for Utilizing Application-Level Abstraction Frameworks
-
批准号:RGPIN-2018-06726
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.4万
-
财政年份:2020
-
负责人:Chen, TseHsun
-
依托单位:
Towards High-Quality and Intelligent Database-Centric Applications
-
批准号:543656-2019
-
项目类别:Collaborative Research and Development Grants
-
资助金额:$4.3万
-
财政年份:2019
-
负责人:Chen, TseHsun
-
依托单位:
Towards Systematic Support for Utilizing Application-Level Abstraction Frameworks
-
批准号:RGPIN-2018-06726
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.4万
-
财政年份:2018
-
负责人:Chen, TseHsun
-
依托单位:
Towards Systematic Support for Utilizing Application-Level Abstraction Frameworks
-
批准号:DGECR-2018-00019
-
项目类别:Discovery Launch Supplement
-
资助金额:$0.91万
-
财政年份:2018
-
负责人:Chen, TseHsun
-
依托单位:
海外基金