ITR: Software Design Rules
ITR:软件设计规则
基本信息
- 批准号:0326227
- 负责人:
- 金额:$ 130万
- 依托单位:
- 依托单位国家:美国
- 项目类别:Continuing Grant
- 财政年份:2003
- 资助国家:美国
- 起止时间:2003-10-01 至 2007-09-30
- 项目状态:已结题
- 来源:
- 关键词:
项目摘要
ABSTRACT0326227Monica LamStanford USoftware reliability is one of the most important problems in computer science. A single operating systemerror can crash a machine. A single security hole can compromise the integrity of an entire system or, assoftware and its errors is replicated, the integrity of entire networks. This proposal focuses on practicaltechniques to prevent such software errors. Its approach is based on the insight that software is governedby many design rules, from general ones that programs should not overrun their buffers, to application specific rules such as a begin-transaction must be invoked before a commit-transaction in a database,and low-level rules, such as the input strings to strncpy should not overlap. Unlike specifications such asloop invariants, pre-conditions and post-conditions that pertain to particular lines of code, design rules aremore powerful, succinct, and are applicable to large amounts of code in the program. While design rules arepervasive, in practice they are neither well documented nor automatically enforced, yet programmers needto understand and obey them to write correct programs.Intellectual Merit. The goal of this work is to make design rules first-class objects. They should beexplicitly part of program design, form a core part of the intellectual framework of system implementors, and be effectively supported by techniques that have teeth. This proposal provides a comprehensive approach to reach these goals. It is expected to make the following major contributions:1. General theory of design rules in software development. It will provide a deeper understanding of howsoftware is governed by design rules, what these rules are, and how they can be used in practice. Theintent is to teach this concept to all computer science students.2. Automatic design rule inference. Real systems have thousands of design rules, buried in millions oflines of code. Expecting programmers to reliably specify all rules is unrealistic. Depending on them todo so is dangerous since an omitted rule will not be checked. This research will develop techniques toautomatically extract design rules from code. It uses the fact that the same rule is obeyed many timesin a program, allowing it to be inferred by observing regularities in the program's static and dynamicbehavior. The challenge in the approach is inferring subtle patterns from noisy behavior. This researchwill develop a general theory of design rule extraction.3. Programming tools for design rules. This research will develop practical tools that automatically extractdesign rules, check programs for design-rule violations, and also enforce design rules in programs.While the work will support general-purpose software, it will also pay particular attention to tools fordetecting both security and non-deterministic errors (such as race conditions).4. Fundamental static program analysis. Design-rule conformance testing requires sophisticated programanalysis. This research is expected to advance the state of the art in program analyses of contextsensitivepointer aliases and object invariants.5. Software model checking of design rules. Some rules require deeper analysis than static analysis canprovide. This research will support such rules by developing a software model checker that checksactual implementation code (rather than an abstracted specification of it) against programmer-suppliedinvariants or other implementations.6. Testing based on design rules. This research intends to improve testing by leveraging expressed andextracted design rules to guide test coverage, test selection and test generation.
Monica LamStanford USoftware可靠性是计算机科学中最重要的问题之一。一个单一的操作系统错误就可能使一台机器崩溃。一个单一的安全漏洞可能会危及整个系统的完整性,或者,随着软件及其错误的复制,整个网络的完整性。这项建议侧重于防止此类软件错误的实用技术。它的方法基于这样一种见解,即软件受许多设计规则的控制,从程序不应溢出缓冲区的一般规则,到应用程序特定的规则,如Begin-Transaction必须在数据库中的提交事务之前调用,以及低级规则,如strncpy的输入字符串不应重叠。与与特定代码行有关的循环不变量、前置条件和后置条件等规范不同,设计规则更强大、更简洁,并且适用于程序中的大量代码。虽然设计规则无处不在,但在实践中,它们既没有得到很好的文档记录,也没有自动执行,然而程序员需要理解和遵守它们才能编写正确的程序。这项工作的目标是使设计规则成为一流的对象。它们应该明确地成为程序设计的一部分,形成系统实施者智能框架的核心部分,并得到有牙齿的技术的有效支持。这项提议为实现这些目标提供了一种全面的方法。本文的主要贡献如下:1.软件开发中设计规则的一般理论。它将提供对软件如何由设计规则管理的更深入的理解,这些规则是什么,以及它们如何在实践中使用。其目的是将这一概念传授给所有计算机科学专业的学生。自动设计规则推理。真正的系统有数以千计的设计规则,隐藏在数百万行代码中。指望程序员可靠地指定所有规则是不现实的。依赖它们这样做是危险的,因为省略的规则将不会被检查。这项研究将开发从代码中自动提取设计规则的技术。它利用同一规则在程序中被多次遵守的事实,允许通过观察程序的静态和动态行为中的规则来推断它。这种方法的挑战是从嘈杂的行为中推断出微妙的模式。本研究将为设计规则提取提供一般的理论基础。设计规则的编程工具。这项研究将开发实用的工具,自动提取设计规则,检查程序是否违反设计规则,并在程序中强制执行设计规则。在支持通用软件的同时,它也将特别关注用于检测安全性和不确定性错误(如竞争条件)的工具。基本的静态程序分析。设计规则一致性测试需要复杂的程序分析。这项研究有望推动上下文敏感指针别名和对象不变量程序分析的发展。设计规则的软件模型检查。有些规则需要比静态分析所能提供的更深入的分析。这项研究将通过开发一个软件模型检查器来支持这种规则,该检查器将根据程序员提供的不变量或其他实现来检查实际实现代码(而不是它的抽象规范)。根据设计规则进行测试。本研究旨在通过利用表达的和抽象的设计规则来指导测试覆盖、测试选择和测试生成来改进测试。
项目成果
期刊论文数量(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 }}
Monica Lam其他文献
Estimating Missing Values Using Neural Networks
使用神经网络估计缺失值
- DOI:
- 发表时间:
1996 - 期刊:
- 影响因子:0
- 作者:
Amit Gupta;Monica Lam - 通讯作者:
Monica Lam
Probabilistic exposure assessment of DEEDMAC using measured effluent and sludge concentrations from 41 wastewater treatment plants across the United States
- DOI:
10.1016/j.scitotenv.2019.05.342 - 发表时间:
2019-09-20 - 期刊:
- 影响因子:
- 作者:
Jennifer Menzies;Kenneth Casteel;Kenneth Wehmeyer;Monica Lam;Kathleen McDonough - 通讯作者:
Kathleen McDonough
Monica Lam的其他文献
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
{{ truncateString('Monica Lam', 18)}}的其他基金
CNS Core: Large: Autonomy and Privacy with Open Federated Virtual Assistants
CNS 核心:大型:开放联合虚拟助理的自治和隐私
- 批准号:
1900638 - 财政年份:2019
- 资助金额:
$ 130万 - 项目类别:
Continuing Grant
ITR/SY+SI:The System Architecture of a Computing Utility
ITR/SY SI:计算工具的系统架构
- 批准号:
0121481 - 财政年份:2001
- 资助金额:
$ 130万 - 项目类别:
Continuing Grant
ITR: Static and Dynamic Tools for Software Design
ITR:软件设计的静态和动态工具
- 批准号:
0086160 - 财政年份:2000
- 资助金额:
$ 130万 - 项目类别:
Continuing Grant
Compiler Infrastructure: The SUIF Compiler Infrastructure
编译器基础设施:SUIF 编译器基础设施
- 批准号:
9612757 - 财政年份:1996
- 资助金额:
$ 130万 - 项目类别:
Continuing Grant
NSF Young Investigator: Language and Compiler Technology for Parallel Machine Organizations
NSF 青年研究员:并行机器组织的语言和编译器技术
- 批准号:
9257105 - 财政年份:1992
- 资助金额:
$ 130万 - 项目类别:
Continuing Grant
相似海外基金
SHF: Small: Taming Huge Page Problems for Memory Bulk Operations Using a Hardware/Software Co-Design Approach
SHF:小:使用硬件/软件协同设计方法解决内存批量操作的大页面问题
- 批准号:
2400014 - 财政年份:2024
- 资助金额:
$ 130万 - 项目类别:
Standard Grant
SHF: Small: Hardware-Software Co-design for Privacy Protection on Deep Learning-based Recommendation Systems
SHF:小型:基于深度学习的推荐系统的隐私保护软硬件协同设计
- 批准号:
2334628 - 财政年份:2024
- 资助金额:
$ 130万 - 项目类别:
Standard Grant
CAREER: Enabling Scalable and Resilient Quantum Computer Architectures through Synergistic Hardware-Software Co-Design
职业:通过协同硬件软件协同设计实现可扩展且有弹性的量子计算机架构
- 批准号:
2340267 - 财政年份:2024
- 资助金额:
$ 130万 - 项目类别:
Continuing Grant
Conference: NSF Workshop on Hardware-Software Co-design for Neuro-Symbolic Computation
会议:NSF 神经符号计算软硬件协同设计研讨会
- 批准号:
2338640 - 财政年份:2023
- 资助金额:
$ 130万 - 项目类别:
Standard Grant
POSE: Phase II: Building an Open-Source Ecosystem for Deep-Learning Hardware-Software Co-Design
POSE:第二阶段:构建深度学习软硬件协同设计的开源生态系统
- 批准号:
2303735 - 财政年份:2023
- 资助金额:
$ 130万 - 项目类别:
Standard Grant
Enhancements to design and testing of Body Aspect's breast volume measurement software
Body Aspect 乳房体积测量软件的设计和测试得到增强
- 批准号:
10074432 - 财政年份:2023
- 资助金额:
$ 130万 - 项目类别:
Collaborative R&D
Collaborative Research: SHF: Medium: A hardware-software co-design approach for high-performance in-memory analytic data processing
协作研究:SHF:中:用于高性能内存分析数据处理的硬件软件协同设计方法
- 批准号:
2312741 - 财政年份:2023
- 资助金额:
$ 130万 - 项目类别:
Standard Grant
DASS: A Multi-level Collaborative Design Framework for Cross-sovereignty Software Accountability
DASS:跨主权软件责任的多层次协作设计框架
- 批准号:
2317086 - 财政年份:2023
- 资助金额:
$ 130万 - 项目类别:
Standard Grant
DASS: Distilling Software Design Principles from Cybersecurity Caselaw
DASS:从网络安全判例中提炼软件设计原则
- 批准号:
2217597 - 财政年份:2023
- 资助金额:
$ 130万 - 项目类别:
Interagency Agreement
SBIR Phase I: Value-Driven Design Debt Management for Contemporary Software Systems
SBIR 第一阶段:当代软件系统的价值驱动设计债务管理
- 批准号:
2236824 - 财政年份:2023
- 资助金额:
$ 130万 - 项目类别:
Standard Grant