程序规范及其正确性证明概述.ppt
《程序规范及其正确性证明概述.ppt》由会员分享,可在线阅读,更多相关《程序规范及其正确性证明概述.ppt(41页珍藏版)》请在三一办公上搜索。
1、第3章 程序规范及其正确性证明概述,内容Where we are?,程序规范、规范的描述断言与规范及P S Q程序正确性的概念程序正确性证明的过程,3.1 程序规范与程序,1.程序规范:程序设计之前,第一步必须明确“做什么”。所谓“做什么”是指对欲求解的问题的描述。程序规范(PS-Program Specification):关于“做什么”的描述。这里的PS仅指功能的描述,不包括诸如处理速度、执行时间、响应周期等与时间有关性能指标。PS是软件工程的需求分析的结果。PS的含义是映射,是输入到输出的映射,它反映了程序对数据的作用。,3.1 程序规范与程序(续),2.程序程序也是映射,是输入到计算的
2、映射,即每一输入都对应一串计算步。3.程序规范与程序的关系给出规范后,程序开发就是建立一个程序,使得计算刚好能实现规范的映射;程序验证是证明程序正确地实现了规范,即证明规范和已有程序之间的一致性,3.1 程序规范与程序(续),4.程序规范的描述-规范语言规范必须用语言描述,该语言称为规范语言。描述一个复杂问题的输入和输出之间的关系是困难的,目前对规范语言的模式尚无定论。有三种模式:自然语言:不够准确,存在二义性,必须辅以数学语言。一阶谓词:可以精确地描述问题的输入和输出的关系,但是规范文本比较长。如Hoare系统。数学语言:用数学语言可以把输入和输出的映射描述为函数。这些函数的精确的泛函定义就
3、构成了问题的规范。但存在过于规范的问题。,3.1 程序规范与程序(续),5.一个合适的程序规范语言应满足的基本条件:应当为描述者和使用者所直接理解;应当有严格的数学语义应当与形式方法的构造理论和程序设计语言协调应当有较强的表达能力和通用性,3.1 程序规范与程序(续),Z语言VDMB方法三者的比较,6.形式化程序规范描述语言简介,3.1 程序规范与程序(续),Z语言是一种基于集合论和一阶谓词逻辑的形式化语言;Z语言支持软件的形式化规范描述,规范的推理和求精;是迄今为止应用最广泛的形式语言之一;Z是在Jean Raymond Abrial等的开创性工作下,由英国牛津大学的程序设计研究小组(PRG
4、,Programming Research Group),于20世纪80年代初开发;PRG与IBM的Hursley实验室合作,将Z语言用于IBM的客户信息控制系统的开发,使得最终的产品质量得到了全面的的提高,所测出的错误数量大大减少,并且整体开发费用降低了9;在ISO指导下的国际标准化Z工作于2002年完成,6.形式化程序规范描述语言简介Z语言简介1,3.1 程序规范与程序(续),提供了一种称为模式(Schema)的结构,它是Z的基本描述单位,以此来描述一个规范说明的状态空间(静态性质)和操作(动态行为)。语言的模式和模式演算:状态模式对目标软件系统的结构特征进行抽象描述;操作模式对目标软件系
5、统的行为特征进行抽象描述;通过模式演算,无论多么大型系统的规格说明都可以通过一个个小的部分来构成;,6.形式化程序规范描述语言简介Z语言简介2,3.1 程序规范与程序(续),模式说明可以组合成新的模式,新的模式继承其成分模式的一切属性和约束。软件系统的模式规格说明可以按一定的层次结构给出。规格说明由一系列模式组成,每个模式定义一个抽象对象或操作,并用谓词判定描述给出新的对象或操作的语义约束。模式例:,6.形式化程序规范描述语言简介Z语言简介3,3.1 程序规范与程序(续),模式例1:Student/引入基本类型student StudentSys/模式名Enrolled,tested:P St
6、udent/声明部分,学生的密集类型#enrolled size/断言部分,合取关系tested enrolled等价于:/水平方式StudentSys=enrolled,tested:P Student|#enrolled size tested enrolled,6.形式化程序规范描述语言简介Z语言简介4,3.1 程序规范与程序(续),模式例2:EnrollStudentStudentSys/=Studentsys StudentSys的简写 name?:Student/在输入变量后加?name?enrolled/在输出变量后加!enrolled size/带有后缀的变量表示操作后的变量e
7、nrolled=enrolled name?tested=tested,6.形式化程序规范描述语言简介Z语言简介5,3.1 程序规范与程序(续),缺点:语言对大型系统的模块化能力不足。难以识别影响某一状态模式的所有操作模式。不能支持规格说明的重用。语言难以由计算机直接处理。缺少商品化的工具支持等到诸多原因,6.形式化程序规范描述语言简介Z语言简介6,3.1 程序规范与程序(续),VDM(Vienna Development Method)是在1969年为开发PL/1语言时,由IBM公司维也纳实验室的研究小组提出的。初衷是为了描述PL/1语言的语义。VDM是一种功能构造性规格说明技术,它通过一阶
8、谓词逻辑和已建立的抽象数据类型来描述每个运算或函数的功能。这种方法在90年代初在欧美许多研究机构或大学得到了广泛的应用。如曼彻斯特大学将其作为CS的必修课。1996年ISO制订了VDM的国际标准化版本VDM-SL,6.形式化程序规范描述语言简介VDM简介1,3.1 程序规范与程序(续),VDM技术的基本思想:运用抽象数据类型、数学概念和符号来规定运算或函数的功能;可使软件系统的功能描述在抽象级上进行,完全摆脱了实现细节,这样为软件实现者提供了很大的灵活性;这种形式化规格说明还为程序正确性证明提供了依据。,6.形式化程序规范描述语言简介VDM简介2,3.1 程序规范与程序(续),VDM支持两种抽
9、象:数据抽象和操作抽象。一个VDM规范有以下不同的块组成:typesvaluesfunctionsoperationsstate ofend,6.形式化程序规范描述语言简介VDM简介3,3.1 程序规范与程序(续),缺点:由于VDM对抽象数据类型预先定义了运算,而某些用户定义的类型在规格说明描述中无需这么多运算,因而产生了运算冗余。VDM目前还未能建立一整套描述机制,将一个大型系统分解为许多运算而描述出这些运算之间的关系 VDM形式规格说明过于形式化不容易理解,6.形式化程序规范描述语言简介VDM简介4,3.1 程序规范与程序(续),B方法是20世纪80年代初中期由以及BP研究中心的MATRA
10、和GE Alsthom研究小组开发的。语言是计算机辅助软件工程中技术、方法和工具集的简称;语言是一种健全的面向实际软件过程的基于数学理论的技术;方法所用的符号和方法支持大部分的软件过程:需求分析、规格说明、软件设计、实现和维护;方法的指导性原则:分层软件的逐步构造伴随着逐步的验证和校验;,6.形式化程序规范描述语言简介B语言简介1,3.1 程序规范与程序(续),工具盒包括有大量的工具,所有的工具集成在一个基于窗口的软件开发环境中,因而支持运用方法开发软件的整个软件过程;工具支持软件的逐步构造,其中的验证过程可用静态分析,动态分析采用模拟技术,正确性证明则使用集成的定理证明器。方法用一种简单的伪
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 规范 及其 正确性 证明 概述

链接地址:https://www.31ppt.com/p-6138918.html