当前位置:文档之家› 安全软件理论与软硬件协同设计可行性研究报告

安全软件理论与软硬件协同设计可行性研究报告

安全软件理论与软硬件协同设计可行性研究报告
安全软件理论与软硬件协同设计可行性研究报告
一、项目定义
1.项目名称
安全软件理论与软硬件协同设计
2.项目领域
本项目属于基础产业和高新技术领域,涉及计算机软件与理论,系统芯片设计及计算机应用等学科。

二、项目背景
1.项目背景
软件可靠性一直是计算机界关心的关键课题,1967年欧洲软件工程先驱者Floyd提出用归纳断言法来验证程序的正确性;1969年图灵奖获得者Hoare提出使用程序公理系统来验证程序的性质。

七十年代的典型程序语言的数学理论并不涉及程序的规范说明,因此不能用于软件的设计和开发。

同时期的工作包括着重于程序性质的后验证的方法,被用于一些常见算法的分析与正确性证明,但缺乏支持规范分析和指导安全软件设计的演算技术。

长期以来国际上不少软件公司投入了大量的人力、物力和财
力探索软件设计可靠性技术。

设计严格安全软件系统需要解决下述二项关键技术问题:
●建立程序和软件规范的演算系统,在软件开发生命周期各阶段均使用数学演算技术来建立软件设计和开发文档。

●设计完整的演算法则用来指导下述关键开发任务:
(a)从用户需求导出软件系统各部件的规范说明;
(b)从部件的规范说明演算出低层软件模块过程的功能说明。

在软件设计中用数学理论来指导严格安全软件系统设计,包括:
●同一数学框架中处理程序和软件规范;
●用符号演算实现程序和软件规范间的演算;
●用谓词演算验证设计方法的正确性;
●用代数方法从软件部件的抽象规范说明推算出低层次程序模块各个过程的规范说明。

学科负责人自1985年起对设计严格安全软件的完备演算理论进行了深入研究,取得了重大突破。

主要创新点有:
●演算理论强调了设计正确软件的开发方法和使用数学演算来支持从软件到程序代码的转换;
●首先提出程序分解算式并第一次提出了求解规范方程的演算法则;
●首次给出程序设计语言的一套完备的代数定律;
●首先给出并证明由抽象数据类型产生具体数据类型的完备演算法则;
●首次为海量并行程序语言BSP语言建立指称语义和代数转化方法。

主要学术成果包括:
●首次建立规范的数学模型,并发现求解规范方程(X;Q)>S 和(P;X)>S 的演算法则;
●创立基于“上下仿真映照对”数据精化完备理论;
●创立程序代数(He-Hoare代数),并用它来支持编译器原型的设计和证明;
●提出编程统一理论和连接各类程序理论的数学法则。

软件演算理论和数据精化规则被誉为是面向模型软件开发的一个里程碑,是国际标准规范语言Z的精化理论基础,是欧洲系统设计语言B的软件开发方法的理论及基础。

学科负责人还参与了包括欧共体“硬件编译器”项目在内的若干国际项目的研究,在前面理论工作的基础上,提出了“软硬件混合计算系统”这一研究方向,同时,在欧洲创立了协同设计研究方向,是1996年协同设计程序委员会主席。

这里提出的协同设计系统与原先的设计方法不同,如高速铁路的硬件控制系统,可采用可编程器件,应用软件方法开发一个
高速铁路的控制系统模型,看是否达到要求。

若不行,只要修改所开发的软件(可由软件描述直接产生硬件的线路图),直到设计出一个满意的模型化的高速铁路,再实际生产。

另外,象西门子公司的自动读电表的硬件控制系统,汽车上的导航控制系统,洗衣机自动控制的芯片等硬件系统的特点是:要使硬件价格便宜,设计时间短,又要保证硬件设计系统准确无误,这导致原先的设计方法很难满足这种要求。

事实上,尽管已有若干工作,但迄今为止,软硬件混合系统的分析和设计是一个困难的课题,这是现代控制系统的复杂性和可用芯片发展速度的局限导致的。

当前常见的硬件描写语言(例如VHDL和VERILOG)允许设计者在抽象设计的不同层次间进行自由的混合,在低层设计方面,如:基本电路(例:晶体管、门电路、寄存器)分层的、结构化的网链;在高层设计方面,如:设计操作的行为表示。

但实际上缺乏行为语句。

多数设计方法依赖于仿真器的支持,设计中的问题经过多次使用仿真程序来发现,因而开发周期和产品的可靠性都受到了很大的限制。

近年来也有应用计算逻辑方法来验证微处理器的正确性的尝试,包括高阶逻辑验证工具HOL、函数编程和抽象状态机等技术。

然而此类形式的技术不能用来替代传统的仿真技术。

当前急切需要的是一个基于形式化方法的设计技术,包括使用仿真技术来支持整个设计的可视化和开发过程。

形式化的法则能够让硬件工程师来选择各类设计参数和细节结构,而最后产品的体系结构依然由工程设计人员。

相关主题