软件工程的形式化方法第六讲

合集下载

软件工程的形式化方法第六讲

软件工程的形式化方法第六讲
软件工程导论
第六讲
软件工程的形式 化方法
本节从软件形式化描述的基本概念入手。 在理解应用软件形式化技术的意义的基 础之上,重点介绍软件的Z语言规格说明 技术和Petri。
软件教研室
第一节 形式化技术概述
什么是形式化方法?
——从广义上讲,形式化方法是指将离散数学的方法用于解决 软件工程领域的问题,主要包括建立精确的数学模型以及对模 型的分析活动。 ——狭义的讲,形式化方法是运用形式化语言,进行形式化的 规格描述、模型推理和验证的方法。 ——就形式化建模而言,形式化表示必须包含一组定义其语法 语义的形式化规则。这些规则可用于分析给定的表达式是否符 合语法规定,或证明该表达式具有某种性质。
软件教研室
形式验证
一致性分析与类型检查 –该形式模型的表示是否规范? 验证 –针对小型示例的模型模拟 –形式化挑战 –针对给定情况的提问 –状态爆炸 –检查应用程序性质 证明设计的逐级求精是正确的 –设计是否满足需求?
软件教研室
第二节 现有形式化方法概述
所谓形式化规格说明语言的关键思想是把软件开发 过程中的需求规格说明阶段和软件设计说明阶段分 开,在需求规格说明阶段精确地描述软件“做什么”, 而不涉及“怎么做”。编写规格说明与编写计算机 程序的不同之处在于规格说明是对目标软件系统的 功能描述,而计算机系统则是实现目标软件系统功 能的过程描述。
软件教研室
形式化语言的基础
一阶命题逻辑中的表达式
表达式的取值可以为真或为假 (x>y ∧y>z) →x>z x=y ≡y=x . x,y,z((x>y ∧y>z)) -> x>z
x+1 < x-1 x(.y(y=x+z)) x>3 ∨x<-6

形式化方法

形式化方法

两个用于转换的输入函数,用由位置指向转换的 箭头表示,它们是: I(t1)={P2,P4} I(t2)={P2} 两个用于转换的输出函数,用由转换指向位置的
箭头表示,它们是:
O(t1)={P1} O(t2)={P3,P3} 注意,输出函数O(t2)中有两个P3,是因为有两个 箭头由t2指向P3。
5.3.1 基本概念 Petri网包含4种元素:一组位置P、一组转换T、 输入函数I以及输出函数O。图5.5举例说明了Petri网 的组成。 其中, 一组位置P为{P1,P2,P3,P4},在图中用圆圈 代表位置。 一组转换T为{t1,t2},在图中用短直线表示转 换。
图5.5 Petri网的组成
数学作为软件开发工具的最后一个优点是,它提 供了高层确认的手段。可以使用数学方法证明,设计 符合规格说明,程序代码正确地反映了设计结果。
5.1.3
应用形式化方法的准则
为了更好地发挥这种方法的长处,下面给出应用 形式化方法的几条准则,供读者在实际工作中使用。 · 选择适用于当前项目的符号系统。 · 应该形式化,但不要过分形式化。通常没有必 要对系统的每个方面都使用形式化方法。 · 应该进行成本/效益分析。 · 需要有形式化方法的顾问。
6元组,其中每个谓词都是系统全局状态Y的函数。转
换函数T现在是一个从(J-F)×K×P到J的函数。现在的 转换规则形式如下: 当前状态〔菜单〕+事件〔所选择的项〕+谓词 下个状态。
5.2.2
电梯问题
为了说明在实际工作中怎样使用形式化的方法, 现在我们用有穷状态机技术给出电梯问题的规格说明。
果t2也被激发了,则令牌从P2中移出,两个新令牌被
J是一个有穷的非空状态集;
K是一个有穷的非空输入集; T是一个从(J-F)×K到J的转换函数; S∈J,是一个初始状态; FJ,是终态集。

形式化方法

形式化方法

形式化方法
By 周帝
形式化方法的定义
用于开发计算机系统的形式化方法是描述系统 性质的基于数学的技术,这样的形式化方法提供了 一个框架,可以在框架中以系统的而不是特别的方 式刻划、开发和验 证系统。 如果一个方法有良好 的数学基础,那么它就是形式化的,典型地以形式 化规约语言给出。这个基础提供一系列精确定义的 概念,如:一致性和完整性,以及定义规范 的实 现和正确性。 形式化方法的本质是基于数学的方 法来描述目标软件系统属性的一种技术。
形式化方法
By 周帝
目录
1.形式化方法 形式化方法 2.软件中的形式化方法 软件中的形式化方法 2.1非形式化方法的缺点 非形式化方法的缺点 2.2形式化方法的优点 形式化方法的优点 3.形式化方法的举例 形式化方法的举例 4.形式化方法语言 形式化方法语言
形式化方法
By 周帝
形式化转换例子
相信通过对比非形式化, 相信通过对比非形式化,我们能对形式化 方法有一定的了解 下面就想魏老师上课跟我们讲述事物用例 那样一步一步的分析, 那样一步一步的分析,如何讲一个日常的 事情用形式化方法装换
形式化方法
By 周帝
形式化方法的分类
根据说明目标软件系统的方式,形式化方法可 以分为两类: 1)面向模型的形式化方法。面向模型的方法 通过构造一个数学模型来说明系统的行为。 2)面向属性的形式化方法。面向属性的方法 通过描述目标软件系统的各种属性来间接定义 系统行为。
形式化方法
By 周帝
形式化方法的分类
形式化方法
By 周帝
个人认为,这样下的定义太过于抽象,并且不好理解。 举个易懂的例子,如果一个人长的与周帝相同,且内心 想法与周帝一样那么他就是周帝;反之,他就不是周帝。 那么我们就能写成为,如果a, 且b,那么,则ZD;如果非a, 或非b,则非ZD。 我们不难看出这是一个逻辑式,if a and b, then c; if not a or not b, then not c.

软件工程形式化方法 z 语言

软件工程形式化方法 z 语言

软件工程形式化方法 z 语言软件工程是一个复杂而庞大的领域,要确保软件系统的正确性和可靠性,需要采用各种形式化方法。

形式化方法是一种严格、精确的描述和分析系统的方法,其中最著名的是Z语言。

1. 什么是形式化方法形式化方法是一种使用数学符号和形式化规范来描述和分析软件系统的方法。

它能够捕捉系统的各个方面,从而确保系统的正确性和可靠性。

形式化方法可以消除歧义和模糊性,提供严格的语法和语义定义,并进行可靠的推理和验证。

2. Z语言的引入和发展Z语言是一种基于数学集合论和一阶谓词逻辑的形式化规范语言。

它于20世纪70年代由牛津大学的J.R.阿兰·特拉弗斯和J.B.斯托拉兹提出,并继续在软件工程领域的学术界和实践中得到广泛应用。

3. Z语言的特点和优势- 精确性:Z语言使用严格的数学符号和形式化规范,可以精确地描述系统的各个方面,避免了自然语言的歧义和模糊性。

- 可读性:尽管Z语言使用了数学符号,但其符号系统和语法规则都经过严格定义,使得Z规范可以被可靠地解释和理解。

- 可验证性:Z语言规范的严格性使得系统的正确性验证变得可行。

通过形式化推理和模型检测等技术,可以对规范进行自动验证和分析。

- 模块化:Z语言支持模块化规范,可以将系统的不同部分进行独立的规范和验证,从而提高开发过程的灵活性和可重用性。

4. Z语言在软件工程中的应用- 需求分析和规约:Z语言可以用于对软件系统的需求进行精确描述和形式化规约,从而帮助开发人员和用户准确理解和交流需求。

- 设计规约和验证:Z语言可以用于对软件系统的设计进行精确描述和形式化规约,并进行验证和验证。

通过验证,可以发现设计冲突和错误,提高系统的可靠性。

- 系统建模和仿真:Z语言可以用于对软件系统进行形式化的建模和仿真。

通过建立形式化模型,可以进行系统行为的精确分析和评估,从而帮助设计和优化系统。

- 代码生成和自动化工具支持:Z语言可以作为设计工具中的一部分,与代码生成和其他自动化工具集成,从而提高开发效率和系统质量。

第六讲-动态视图

第六讲-动态视图
学以致用,立足岗位成才 版权所有 All Rights Reserved 2008-2012
应知应会
案例导入
项目实战
职场体验
2.2 生命线
生命线是一条垂直的虚线,表示时序图中的对象 在一段时间内的存在.每个对象的底部中心的位 置都带有生命线. 生命线是一个时间线,从时序图的顶部一直延伸 到底部,所用的时间取决于交互持续的时间. 对象与生命线结合在一起称为对象的生命线,对 象的生命线包含矩形的对象图标以及图标下面的 生命线.
学以致用,立足岗位成才 版权所有 All Rights Reserved 2008-2012
应知应会
案例导入
项目实战
职场体验
1.概述 1.概述
时序图示例:
学以致用,立足岗位成才 版权所有 All Rights Reserved 2008-2012
应知应会
案例导入
项目实战
职场体验
2. 时序图的组成
学以致用,立足岗位成才
图定义 一组类,接口, 一组类,接口,协作及它们的关系 一组对象及它们的关系 一组用例, 一组用例,参与者及它们的关系 一个交互, 一个交互,强调消息的时间顺序
一个状态机, 活动图 一个状态机,强调从活动到活动的流动
构件图 一组构件及关系 配置图 一组接点及它们的关系 (实施图 实施图) 实施图
版权所有 All Rights Reserv例导入
项目实战
职场体验
动态视图
交互图
时序图 协作图
行为图
状态图 活动图
学以致用,立足岗位成才 版权所有 All Rights Reserved 2008-2012
应知应会
案例导入
项目实战
职场体验

软件工程 第六讲 结构化分析方法

软件工程 第六讲 结构化分析方法

什么是GOTO语句?
ห้องสมุดไป่ตู้

在以前的程序设计课程中,老师说 goto语句很重要,为什么在这里说不 那么重要呢?
简单明确的概述什么是自顶向下、逐步求 精的思想,它和自底向上的分析方法有什 么不同??




结构化设计程序的方法在软件工程提出后产生, 主要是提出取消“GOTO“语句的使用。我想问的 是在结构化中的模块之间的接口不就算是 “GOTO”语句吗? 问题一:书中104在讲到结构化程序设计(SP)中 提到的“只要三种控制结构(顺序、选择、重复) 就是能表达用一个入口和一个出口的流程图所能 表达的任何程序逻辑”该做如何理解? 问题二:该如何来理解结构化方法的指导思想 (自顶向下、逐步求精)与两个基本原则(抽象、 分解)的联系?

问题六:基本加工是靠自己的经验来确定的,还 是有一定的标准?
返回
数据流



表示数据的流向。 数据流由一组数据项组成。 命名规则和注意事项:

数据流的名字用名词或名词词组 应尽量使用现实系统中已有的名字 把现实环境中传递的一组数据中最重要的那个数据的名字作为数 据流的名字 不要把控制流作为数据流 不要使用意义空洞的名词作为数据流名,如”数据“、“信息 “等。 如果在命名时遇到困难,说明你可能对数据流的分解不恰当,应 进行重新分解。 对流进或流出文件的数据流不需标注名字。



问题P110 怎样准确的判断出父图与子图的平 衡?
父图 与子 图平 衡吗?
父图 与子 图平 衡吗?
问题


110页图8.6为什么平衡不清楚。 P110 对父图与子图的平衡的理解:图8.6中如果 不存在图8.4的情况下,那么这个父图与子图就不 符合自图的平衡了,对吗? 画数据流图中,父图与子图怎样保持平衡? P110:第(6)个注意事项第二段第一句:有时考 虑平衡可忽略一些枝节性的数据流。我对本句中 的“枝节性的数据流”不太理解,不知道什么叫 “枝节性的数据流”,枝节性的数据流有何特点?

软件开发中的形式化方法

软件开发中的形式化方法

3、导出检测报告:将验证结果以报告的形式导出,指出软件系统中的缺陷 和漏洞。
4、修复缺陷:根据报告指出的缺陷和漏洞,对软件系统进行修复和优化。
软件自适应UML建模和形式化验证方法具有以下优点:
1、提高开发效率:通过自动化映射和自动化更新,减少开发人员的工作量, 提高开发效率。
2、增强软件质量:通过形式化验证方法,可以有效地发现软件系统中的缺 陷和漏洞,提高软件质量。
软件开发中的形式化方法
目录
01 一、形式化方法的定 义和作用
03
三、常见的形式化方 法
02
二、实际项目中的运 用
04 参考内容
在软件开发中,形式化方法是一种通过严格定义、规范和证明来保证软件质 量和可靠性的方法。这种方法通过对软件开发全生命周期的各个环节进行形式化 描述和验证,以实现软件开发的规范化和标准化。本次演示将介绍形式化方法的 概念、实际应用以及常见的形式化方法。
参考内容
随着信息技术的快速发展,软件安全问题越来越受到人们的。安全软件体系 结构作为保障软件安全的关键因素,其设计和开发过程的重要性不言而喻。形式 化方法是一种基于数学模型的软件开发方法,可以将需求、设计、验证等软件开 发环节形式化地表达出来,提高软件开发的严谨性和可靠性。因此,研究安全软 件体系结构的形式化方法具有重要意义和应用价值。
软件工程方法的特点主要表现在以下几个方面:
1、过程管理:软件工程方法提供了一套完整的开发流程,从需求分析到设 计、编码、测试和维护,每个阶段都有明确的任务和目标。
2、需求分析:软件工程方法要求在需求分析阶段充分了解用户需求,确保 开发出的软件能够满足用户需求。
3、设计模式:软件工程方法注重设计模式的运用,针对不同的问题和需求, 采用合适的设计模式可以使代码更加清晰、易于维护。

第六讲 软件工程的方法

第六讲 软件工程的方法

第六讲软件工程的形式化说明技术软件工程使用的描述技术有三类:非形式化技术、半形式化技术和形式化技术。

所谓非形式化技术的代表方法是用自然语言描述的需求规格说明;所谓半形式化技术的代表方法有数据流图、E-R图和UML等;所谓形式化技术的方法有很多,其中具有代表性的方法包括有:时序逻辑语言、有穷状态机、Petri网系统和Z语言等;所谓形式化规格说明语言的关键思想是把软件开发过程中的需求规格说明阶段和软件设计说明阶段分开,在需求规格说明阶段精确地描述软件“做什么”,而不涉及“怎么做”。

编写规格说明与编写计算机程序的不同之处在于规格说明是对目标软件系统的功能描述,而计算机系统则是实现目标软件系统功能的过程描述。

形式化和非形式化描述方法各有优缺点形式化描述的优点:1.使用形式化方法可以严格准确地描述出系统对象;2.使用形式化方法描述的系统可以向任意具体系统进行映射转换;3.可以对形式化描述的系统进行严格的数学证明分析;形式化描述的缺点:1.形式化描述方法难以使用;2.使用形式化描述一个庞大的实际系统存在许多困难,在实际应用中有许多问题本身就是模糊或非确定的无法使用严格的形式化方法进行描述;3.形式化描述的模型对于那些没有经过专门的训练用户来说很难理解;4.形式化说明的正确性证明费时费力;5.尚未出现支持形式化风格全过程的软件环境;非形式化方法的优点:1.描述的模型直观,容易理解;2.非形式的描述技术比较简单,容易学习;3.许多的应用只能使用非形式化的方法描述;非形式化方法的缺点:1.非形式化的描述可能存在矛盾、二意性和含糊性等问题;2.难以进行严格的证明工作;3.对于高可靠性的系统,使用该方法描述存在潜在的问题;本文介绍三种形式化方法:有穷状态机、Petri网、Z语言有穷状态机:使用一个六元组来准确地描述系统状态的变化的一种形式化方法。

当前状态+事件+谓词=>下一个状态Petri 网:Petri的背景:Petri网的首次提出是由德国科学家Petri于1962年在他的博士论文《用自动机通讯》中提出的使用网状结构模拟通讯系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2006年8月7日
软件教研室
形式化方法的正确运用
有选择地使用形式化方法 轻量级的形式化方法 –目前最为流行的技术转化方式 –两种方法 形式化方法的轻量级应用:对部分模型有选择的运用形 式化方法 轻量级的形式化方法:允许未加评估的谓词的新方法
2006年8月7日
软件教研室
第三节
建模语言介绍
重点介绍Z 语言和Petri 网
2006年8月7日
软件教研室
Z 语言实例:停车场管理系统
操作定义(续)
2006年8月7日
软件教研室
Z 语言实例:停车场管理系统
操作定义也可以采用以下形式:
表示: –操作“进入停车场”分为“正常停车”和“停车场 满”两种可能情况,具体执行时选择哪种情况,由 环境满足哪种操作的约束条件来决定。
2006年8月7日
2006年8月7日
软件教研室
形式化方法可应用于何处?
形式化需求规约 –作为程序验证的基准 –规约语言Z,VDM,Larch –作为程序行为的模型,与需求相对照 形式化领域知识 –以便就以下问题进行推理 .领域知识是否完整;对未来的系统有何影响 –形式化有助于直接精确地刻画环境 需求的形式化 –以便进行需求模拟 –以便测试逻辑一致性 –以便测试完整性(依据底层的数学模型)
软件教研室
Petri 网
1962 年,联邦德国的Carl Adam Petri在他的博士论文 “KommunikationmitAutomaten”《用自动机通信》中首次 使用网状结构模拟通信系统。 该系统模型后来以Petri 网为名流传。现在,Petri 网一 词既指这种模型,又指以这种模型为基础发展起来的理论, 有时又把Petri 网称为网论(net theory)。 Petri 网分为两类 –位置/迁移Petri 网 –高级网:谓词/迁移Petri 网、有色Petri 网、计时 Petri 网
2006年8月7日
软件教研室
Z 语言实例:停车场管理系统
初始化
–定义系统状态变量的初始值。系统的初始化定义是唯 一的。
停车场初始化
停车数量= 0
2006年8月7日
软件教研室
Z 语言实例:停车场管理系统
操作定义 –每个系统可以定义若干个操作。 –Z 语言中操作的定义是基于状态的,而不是基于过程的。 该操作如何改变了系统的状态变量的值? 该操作有哪些输入变量? 有哪些输出变量? –当一个操作改变了某个系统状态变量x时,在操作定义的第一 行写出状态变化声明Δx。 –当一个操作未改变任何系统状态变量时,即可以在操作定义 第一行写出以下状态声明Ξ状态变量(可省略)。
–常常对研究原型的规模有着过高的期盼
2006年8月7日
软件教研室
为什么不采用形式化?
形式化方法需要作出更大的努力 –延缓项目进展 –需要更多的数学训练
–回报也并非立竿见影
许多项目均不适合运用形式化方法
2006年8月7日
软件教研室
三类不同的模型?
2006年8月7日
软件教研室
模型类型
自然语言 –很强的表达能力及适应性 –不易于表示模型的语义 –适于需求获取及为模型加标注,便于通信 半形式化的表示 –便于表示结构及语义 –可推理、一致性检查、模拟等(如图、表、结构化英语等) –通常是可视化的,以便在多个干系人间通信 形式化表示 –具有精确的语义定义,可能进行广泛的推理 –距离应用领域较远
2006年8月7日
软件教研室
为什么不采用形式化?
形式化方法比其他技术的抽象级别要低 –容易陷入细节 –需提早确定系统边界
形式化方法通常限于正确一致的模型
–但绝大多数情况下,模型都并非绝对正确、一致、完整 不知使用哪个工具合适 –要描述的是程序行为还是需求? –形式化方法的鼓吹者常常过于依赖某一种工具
2006年8月7日
软件教研室
形式验证
一致性分析与类型检查 –该形式模型的表示是否规范? 验证 –针对小型示例的模型模拟 –形式化挑战 –针对给定情况的提问 –状态爆炸 –检查应用程序性质 证明设计的逐级求精是正确的 –设计是否满足需求?
2006年8月7日
软件教研室
第二节 现有形式化方法概述
所谓形式化规格说明语言的关键思想是把软件开发 过程中的需求规格说明阶段和软件设计说明阶段分 开,在需求规格说明阶段精确地描述软件“做什么”, 而不涉及“怎么做”。编写规格说明与编写计算机 程序的不同之处在于规格说明是对目标软件系统的 功能描述,而计算机系统则是实现目标软件系统功 能的过程描述。
软件教研室
关于形式化方法:悲观者的角度
形式化方法仅应用于开发安全要求极高的系统;
形式化方法仅被用于无关紧要的系统,且缺少工具支持;
2006年8月7日
软件教研室
关于形式化方法:乐观者的角度
运用形式化方法将开发出完美的软件;
形式化方法可以替换传统的软件工程方法;
2006年8月7日
软件教研室
形式化方法在软件工程中的作用
2006年8月7日
软件教研室
Z 语言实例:停车场管理系统
状态定义 –每个系统有唯一的状态定义,可以为状态命名。本例 中为系统状态命名为“停车场状态”。状态定义中首先声明一 或多个表示系统状态的变量,这里的变量名为“停车数量”, 类型为整数。该变量的约束条件为取值大于等于0,小于等于 最大停车数量。 –停车场状态 停车数量: Z/*状态变量声明*/ 停车数量≥0 停车数量≤停车场容量
重点研究并发与反应式系统(如实时、嵌入式系统) –支持对安全性、活性与性能的推理 –提供一种精确的规格描述语言 –核心技术:一致性检查,模型检测 在需求工程中的适用性较差 –建模语言专为需求工程设计 举例:Statecharts, RSML, Parnas-tables, SCR, …
2006年8月7日
软件工程导论
第六讲
软件工程的形式 化方法
本节从软件形式化描述的基本概念入手。 在理解应用软件形式化技术的意义的基 础之上,重点介绍软件的Z语言规格说明 技术和Petri。
2006年8月7日
软件教研室
第一节 形式化技术概述
什么是形式化方法?
——从广义上讲,形式化方法是指将离散数学的方法用于解决 软件工程领域的问题,主要包括建立精确的数学模型以及对模 型的分析活动。 ——狭义的讲,形式化方法是运用形式化语言,进行形式化的 规格描述、模型推理和验证的方法。 ——就形式化建模而言,形式化表示必须包含一组定义其语法 语义的形式化规则。这些规则可用于分析给定的表达式是否符 合语法规定,或证明该表达式具有某种性质。
2006年8月7日
软件教研室
形式化语言的基础
一阶命题逻辑中的表达式
表达式的取值可以为真或为假 (x>y ∧y>z) →x>z x=y ≡y=x . x,y,z((x>y ∧y>43;1 < x-1 x(.y(y=x+z)) x>3 ∨x<-6
开表达式与闭表达式 –如果一个变量是受量词约束的,则称之为限定变量,否则 称之为自由变量 –若公式中所有变量均为限定变量,则称该公式为闭表达式 –闭表达式的值非真即假
2006年8月7日
软件教研室
形式规约语言
源自程序证明技术 派生出许多通用的规约语言 –适合描述程序单元的行为 –核心技术:类型检查,定理证明 在需求工程中的适用性较差 –无抽象及结构化机制 –与程序语义密切相关 举例:Larch, Z, VDM
2006年8月7日
软件教研室
并发/反应式系统建模
旨在表达程序行为的动态性
软件教研室
形式化的概念模型
关注需求工程知识的表达 重点对领域实体、行为、主体,断言进行建模 –提供领域模型的形式化本体 –一阶谓词逻辑是形式化基础 –核心技术:推理机,默认的知识库系统命令 解释器 需求工程中的适用性较好 -建模模式能够表达核心需求模式 举例:Reqtsapprentice, RML, Telos, Albert II, …
2006年8月7日
软件教研室
形式化语言的基础
一阶命题逻辑:
一阶命题逻辑提供以下机制 –一组构造表达式的原子公式 变量,数值常量,括号 –一组逻辑连接符 and (∧), or (∨), not(.), implies(→), logical equality (=) 与, 或, 非, 蕴含, 逻辑等价 –量词 :“for all‖全称量词 :“there exists‖存在量词
2006年8月7日
软件教研室
形式化方法的优点?
用数学语言能够解决规格说明的二义性问题,提高其精确性; 数学提供了确认手段,使得证明和验证软件程序满足用户和系 统的需求成为可能; 针对需求和设计模型进行自动的分析和推理; –分析模型性质 –推导模型逻辑结果
模拟/执行模型,有助于可视化及验证;
软件的设计过程就是一个形式化的过程; –软件设计的最终产物是程序,它可看作是一种可执行的 形式规约,用于解决非形式化的问题。
2006年8月7日
软件教研室
软件的正确性
将形式化方法运用于软件工程实践当中的主要目的是保证软件 的正确性。 正确性证明的两个标准 –运行在机器上的程序满足规格说明
–规格说明在给定的领域性质之下满足需求
2006年8月7日
软件教研室
软件的完整性
完整性证明的两个标准 –是否已发现所有重要需求 –是否已发现所有重要领域性质
2006年8月7日
软件教研室
Petri 网概念
就绪 –Petri 网的状态用库所中令牌的分布来描述,可以使 用(1, 0, 0)描述当前状态。即p1(申报)中有一个 令牌,而p2(审核)和p3(就绪)中一个都没有。 –变迁只有满足可点火条件时才能点火,即每个输入库 所中均至少有一个令牌,变迁才具有发生权,点火就 绪。 –如图,p1(申报)是就绪(enabled)的,其他两个 都不是。
相关文档
最新文档