程序设计方法学 PPT课件资料讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章 程序设计的形式化方法
• 软件新技术 – 智能化技术 – 自动化技术 – 集成化技术 – 并行化技术 – 自然化技术
扩大软件功能的关键途径 提高软件生产率的根本途径 助于提高生产率、提高质量 提高系统实效的关键技术 实现社会信息化
2020/9/16
华东师大计算机科学技术系
1
重要方向
攻克的关键教技术
2020/9/16
华东师大计算机科学技术系
12
• 三项任务分别对应三方面的活动:
1. 形式化规范(规格):
– 软件规范是指对软件系统对象及用来对系统对 象进行操作的方法的集合。以及对所开发系统 中的各对象在生命周期间的集体行为的描述。
– 对应与软件生命周期的各个阶段,规范应该理 解为是一个多阶段的行为。见例图
给出并发过程的一个显式模型,并通过过程间允 许的可观察的通信上的限制来约束表示行为。
如:CSP(通信顺序进程)和CCS(通信系统计算)
⑷ 基于逻辑的方法
采用逻辑来描述系统的特性,包括程序行为的低 级规范和系统时间的行为规范。
如:时态逻辑、模态逻辑
2020/9/16
华东师大计算机科学技术系
10
⑸ 基于网络的方法 根据网络中的数据流显式地给出系统的并发模
网络体系 集成芯片 虚拟计算 软件工程 知识处理 高效系统
传感器网与因特网的高效融合 从System on chip到Chip on demount 资源聚合的有效性和可靠性验证 基于网络环境的需求工程 挖掘从消息到知识到决策的元知识 在高性(效)能计算系统中系列关注
信息安全
信息教育
2020/9/16
(1) 操作类:此类方法基于状态和转移,通过可执行 模型来描述系统,模型本身能够采用静态分析和
模型执行而得到验证。如:有限状态机、 Statecharts、Petri网等。
(2) 描述类:此类方法基于数学公理和概念,通过逻 辑或代数给出系统状态空间,具有高度抽象的特
点,便于通过自动工具进行验证。如:基于代数 的Z、VDM、Larch等,基于逻辑的命题线性时态 逻辑、一阶线性时态逻辑、计算树逻辑等。
2020/9/16
华东师大计算机科学技术系
5
二、发展状况
• 有30多年历史 Dijkstra、Hoare ――――程序验证 Scott、Stratchey ――――程序语义
• 形式化方法(Formal Method): 通过严格的规范化的数学理论来描述软件系统“做 什么”的方法。需要形式规范语言的支持。
华东师大计算机科学技术系
2
创跨
新越
根源
植之
汪 成
辨 短
识 规
为 院
长
律
士
2020/9/16
华东师大计算机科学技术系
3
§1 概述
一、重要意义 • 软件发展中的问题:
– 整体功能不强、缺乏智能、质量欠佳、生产效 率低
– 软件自动化是提高软件生产率的根本途径 – 软件自动化的前提是形式化 • 因此将形式化的理论和方法用于需求分析与规格 说明是实现软件自动化的前提
• 形式规范语言: 提供了一个称为语法域的记号系统。一个称为语义 域的目标集合,以及一组精确定义的哪些目标系统 满足那个规范的规则。
2020/9/16
华东师大计算机科学技术系
6
• 因此,形式化方法是在软件系统的开发过程中使用 一种形式系统来表示模型的方法。
• 形式系统是二元组(L,Cn) – L:语言(形式规范语言)
三、分类 ⑴ 基于模型的方法
给出系统(程序)状态和状态变换与操作的显式的 表示但亦是抽象的定义,不涉及并发的行为。 如:Z、VDM
2020/9/16
华东师大计算机科学技术系
9
⑵ 代数方法
通过联系不同的操作间的行为关系给出操作的隐 式定义,未给出并发的显式表示。
Hale Waihona Puke Baidu
如:OBJ、Larch
⑶ 过程代数方法
基本理论:指称语义
⑶ 状态机方法
特点:通过状态的转换来刻画输入与输出间的 关系
基本理论:操作语义
⑷ 高阶软件方法(HOS) 基于控制公理
基本理论:公理语义
2020/9/16
华东师大计算机科学技术系
8
• 在软件规范语言方面的代表性成果有: – 一阶谓词演算组成语言 – 80年代:Z语言、Larch语言、VDM语言 – 90年代:面向实时及分布式的LOTOS语言、 面向对象的Z++、Object-Z、VDM++等
• 开发过程中的任务为:
(1) 模型获取:从现实世界向模型表示的过程,涉及如何 提取、表示模型。对应需求分析、设计等活动。
(2) 模型验证:对得到的模型表示进行检验,判断是否捕 获了所有的需求,该模型是否具有所期望的特性。
(3) 模型变换:是向计算机系统变换的过程, 关键的任 务是一致性检测。对应实现和测试。
13
包含各规格阶段的生命周期模型例
需求分析 SRD BS
系统设计1
DS
软件开发
PS
系统设计2
代码实现
软件测试
运行
SRD:软件需求文档
BS:行为规范
DS:设计规范
PS:程序规范
2020/9/16
华东师大计算机科学技术系
14
软件系统规范的形式化方法
• 从形式化规范到目标软件系统的可实现和可执行 角度,可分为三类:
型,包括数据从一个结点流向另一个结点的条件。 如:Petri网、谓词变换网
2020/9/16
华东师大计算机科学技术系
11
四、形式化软件开发方法
• 采用软件生命周期的变换模型,其实质是将现实世界 的需求反映成软件的模型化过程。涉及三方面模型: 现实世界,模型表示和计算机系统。因此开发的过程 就是从三方面对系统进行描述和转换的过程。
– Cn:对应关系,由推理规则构成 • 在软件规范方法方面的代表性成果有:
⑴ 基于异调代数的代数方法
特点:用抽象代数中的公理化方法来刻画抽象数 据类型中运算的性质,而不涉及数据的具 体表示。
基本理论:代数语义
2020/9/16
华东师大计算机科学技术系
7
⑵ 抽象模型方法
特点:基于某些已知的ADT来给出待定义的 ADT的抽象模型,用抽象模型来刻画待 定义的ADT中运算的功能。
– 规范可以采用非、半形式化的方法来描述,形 式化规范精确地描述了用户的需求、软件系统 的功能及各种性质,其描述的是“做什么”, 而不考虑“如何做”。因此,在理解、掌握形 式规范语言和方法的基础上对所描述的系统的 全面、深入的了解,给出恰如其分的描述上至 关重要的。
2020/9/16
华东师大计算机科学技术系
• 软件新技术 – 智能化技术 – 自动化技术 – 集成化技术 – 并行化技术 – 自然化技术
扩大软件功能的关键途径 提高软件生产率的根本途径 助于提高生产率、提高质量 提高系统实效的关键技术 实现社会信息化
2020/9/16
华东师大计算机科学技术系
1
重要方向
攻克的关键教技术
2020/9/16
华东师大计算机科学技术系
12
• 三项任务分别对应三方面的活动:
1. 形式化规范(规格):
– 软件规范是指对软件系统对象及用来对系统对 象进行操作的方法的集合。以及对所开发系统 中的各对象在生命周期间的集体行为的描述。
– 对应与软件生命周期的各个阶段,规范应该理 解为是一个多阶段的行为。见例图
给出并发过程的一个显式模型,并通过过程间允 许的可观察的通信上的限制来约束表示行为。
如:CSP(通信顺序进程)和CCS(通信系统计算)
⑷ 基于逻辑的方法
采用逻辑来描述系统的特性,包括程序行为的低 级规范和系统时间的行为规范。
如:时态逻辑、模态逻辑
2020/9/16
华东师大计算机科学技术系
10
⑸ 基于网络的方法 根据网络中的数据流显式地给出系统的并发模
网络体系 集成芯片 虚拟计算 软件工程 知识处理 高效系统
传感器网与因特网的高效融合 从System on chip到Chip on demount 资源聚合的有效性和可靠性验证 基于网络环境的需求工程 挖掘从消息到知识到决策的元知识 在高性(效)能计算系统中系列关注
信息安全
信息教育
2020/9/16
(1) 操作类:此类方法基于状态和转移,通过可执行 模型来描述系统,模型本身能够采用静态分析和
模型执行而得到验证。如:有限状态机、 Statecharts、Petri网等。
(2) 描述类:此类方法基于数学公理和概念,通过逻 辑或代数给出系统状态空间,具有高度抽象的特
点,便于通过自动工具进行验证。如:基于代数 的Z、VDM、Larch等,基于逻辑的命题线性时态 逻辑、一阶线性时态逻辑、计算树逻辑等。
2020/9/16
华东师大计算机科学技术系
5
二、发展状况
• 有30多年历史 Dijkstra、Hoare ――――程序验证 Scott、Stratchey ――――程序语义
• 形式化方法(Formal Method): 通过严格的规范化的数学理论来描述软件系统“做 什么”的方法。需要形式规范语言的支持。
华东师大计算机科学技术系
2
创跨
新越
根源
植之
汪 成
辨 短
识 规
为 院
长
律
士
2020/9/16
华东师大计算机科学技术系
3
§1 概述
一、重要意义 • 软件发展中的问题:
– 整体功能不强、缺乏智能、质量欠佳、生产效 率低
– 软件自动化是提高软件生产率的根本途径 – 软件自动化的前提是形式化 • 因此将形式化的理论和方法用于需求分析与规格 说明是实现软件自动化的前提
• 形式规范语言: 提供了一个称为语法域的记号系统。一个称为语义 域的目标集合,以及一组精确定义的哪些目标系统 满足那个规范的规则。
2020/9/16
华东师大计算机科学技术系
6
• 因此,形式化方法是在软件系统的开发过程中使用 一种形式系统来表示模型的方法。
• 形式系统是二元组(L,Cn) – L:语言(形式规范语言)
三、分类 ⑴ 基于模型的方法
给出系统(程序)状态和状态变换与操作的显式的 表示但亦是抽象的定义,不涉及并发的行为。 如:Z、VDM
2020/9/16
华东师大计算机科学技术系
9
⑵ 代数方法
通过联系不同的操作间的行为关系给出操作的隐 式定义,未给出并发的显式表示。
Hale Waihona Puke Baidu
如:OBJ、Larch
⑶ 过程代数方法
基本理论:指称语义
⑶ 状态机方法
特点:通过状态的转换来刻画输入与输出间的 关系
基本理论:操作语义
⑷ 高阶软件方法(HOS) 基于控制公理
基本理论:公理语义
2020/9/16
华东师大计算机科学技术系
8
• 在软件规范语言方面的代表性成果有: – 一阶谓词演算组成语言 – 80年代:Z语言、Larch语言、VDM语言 – 90年代:面向实时及分布式的LOTOS语言、 面向对象的Z++、Object-Z、VDM++等
• 开发过程中的任务为:
(1) 模型获取:从现实世界向模型表示的过程,涉及如何 提取、表示模型。对应需求分析、设计等活动。
(2) 模型验证:对得到的模型表示进行检验,判断是否捕 获了所有的需求,该模型是否具有所期望的特性。
(3) 模型变换:是向计算机系统变换的过程, 关键的任 务是一致性检测。对应实现和测试。
13
包含各规格阶段的生命周期模型例
需求分析 SRD BS
系统设计1
DS
软件开发
PS
系统设计2
代码实现
软件测试
运行
SRD:软件需求文档
BS:行为规范
DS:设计规范
PS:程序规范
2020/9/16
华东师大计算机科学技术系
14
软件系统规范的形式化方法
• 从形式化规范到目标软件系统的可实现和可执行 角度,可分为三类:
型,包括数据从一个结点流向另一个结点的条件。 如:Petri网、谓词变换网
2020/9/16
华东师大计算机科学技术系
11
四、形式化软件开发方法
• 采用软件生命周期的变换模型,其实质是将现实世界 的需求反映成软件的模型化过程。涉及三方面模型: 现实世界,模型表示和计算机系统。因此开发的过程 就是从三方面对系统进行描述和转换的过程。
– Cn:对应关系,由推理规则构成 • 在软件规范方法方面的代表性成果有:
⑴ 基于异调代数的代数方法
特点:用抽象代数中的公理化方法来刻画抽象数 据类型中运算的性质,而不涉及数据的具 体表示。
基本理论:代数语义
2020/9/16
华东师大计算机科学技术系
7
⑵ 抽象模型方法
特点:基于某些已知的ADT来给出待定义的 ADT的抽象模型,用抽象模型来刻画待 定义的ADT中运算的功能。
– 规范可以采用非、半形式化的方法来描述,形 式化规范精确地描述了用户的需求、软件系统 的功能及各种性质,其描述的是“做什么”, 而不考虑“如何做”。因此,在理解、掌握形 式规范语言和方法的基础上对所描述的系统的 全面、深入的了解,给出恰如其分的描述上至 关重要的。
2020/9/16
华东师大计算机科学技术系