Programatica工具集概述

作者:托马斯·霍尔格伦,詹姆斯·胡克,马克·琼斯迪克·基伯茨.

在2004年4月举行的高置信度软件和系统会议上发表(HCSS04)。

全文如下:PDF格式(259KB),HTML格式.

介绍

随着计算机在安全和安保方面的使用越来越多关键应用程序对值得信赖的计算机系统的需求前所未有地大。但如何建立这种信任呢?例如,我们如何才能确保我们的计算机系统不会被破坏或损坏有价值的数据、泄露隐私或引发严重故障在最坏的情况下,这可能导致死亡?

工业界和学术界已经在许多领域抨击了这个问题不同的方式,具体证明系统设计过程、严格测试、,或形式化方法都能显著提高可靠性、安全性和可信度。很明显这些技术之间存在一些显著差异,但也是一个统一的特性:每一个都会产生一些有形的的形式证据这为信任提供了基础。此类证据的示例包括会议记录在进行代码审查的地方,测试用例集申请或正式证明确定关键属性的有效性。

不幸的是实践中需要的证据,甚至在开发一些相当小的系统,使其难以管理、维护,并在项目进展和有意义的需要保证。没有支持,实际困难这样很容易阻止系统构建者从捕获和利用证据到在他们和他们的用户可以建立良好的信任。

在OGI的Programatica项目中,我们正在探索工具在促进并支持在设计过程中有效使用证据,复杂软件系统的开发和维护。来自程序员的观点,Programatica提供了一种开发函数编程扩展版本的环境提供符号的Haskell语言(以及一个关联的逻辑,称为P-逻辑)对于表达Haskell代码的属性。来自验证我们期望广泛的技术将有助于建立此类属性,包括代码审查,测试和形式化方法。为了支持证据管理,Programatica提供了:捕获不同形式证据证书; 利用细粒度的方法依赖性分析,以自动化跟踪、维护、,随着系统的发展,重新建立证据;和工具帮助用户了解、管理和指导进一步的开发验证工作。理解Programatica的一种方法是框架极端形式化方法:我们希望房产断言将与它们记录的代码,就像在中开发测试用例一样极限编程。

本文描述了Programatica的当前版本工具,并说明它们如何实现上述目标在实践中。