形式化说明

合集下载

形式化开发方法

形式化开发方法

T={RtoG,GtoY,YtoR},
I(RtoG)={Red}, I(GtoY)={Green}, I(YtoR)={Yellow}, O(RtoG)={Green}, O(GtoY)={Yellow}, O(YtoR)={Red}
图3.19 红绿灯的petri网
(3)Z语言
以电梯问题为例,简要介绍Z语言。 用自然语言书写的系统规格说明书,可能存在
矛盾、二义性、含糊性、不完整性及抽象层次 混乱等问题。为了克服非形式化方法的缺点, 人们把数学引入软件开发过程,创造了基于数 学的形式化方法。
常见的形式化方法工具
(1)有穷状态机
(2)Petri网
(3)Z语言
(1)有穷状态机
Petri网包含4种元素:一组位置P、一组转换T、
输入函数I以及输出函数O。下图举例说明了
Petri网的组成。
图3.18 Petri网的组成
一组位置P为{P1,P2,P3,P4},在图中用圆圈代表位置。 一组转换T为{t1,t2},在图中用短直线表示转换。
两个用于转换的输入函数,用由位置指向转换的箭头表示,
最简单的形式化规格说明含有下述4个部分:
1.给定的集合
一个Z规格说明从一系列给定的初始化集合开始。
所谓初始化集合就是不需要详细定义的集合,这
种集合用带方括号的形式表示。对于电梯问题,
给定的初始化集合称为Button,即所有按钮的集
合,因此,Z规格说明开始于:〔Button〕
2.状态定义 一个Z规格说明由若干个“格(schema)”组成,每个 格含有一组变量说明和一系列限定变量取值范围的 谓词。例如,格S的格式如图3.20所示
自动门的状态机可以用图3.17表示:
图3.17 自动门的有穷状态机

软件工程 第4章 形式化说明技术

软件工程 第4章 形式化说明技术

行为建模
1)
2)
3)
系统的需求规格说明通常是用自然语言来叙 述的,但是用自然语言描述往往会出现二义 性。 为了直观地分析系统的动作,从特定的视点 出发描述系统的行为,需要采用动态分析的 方法。 最常用的动态分析方法

有穷状态机

时序图 Petri网
状态迁移图
状态迁移图是通过描述系统的
状态及引起系统状态转换的事 件来表示系统的行为。
形式化方法
形式化方法是建立在严格数学基础上、具有精确数学语义 的开发方法,即就是用数学语言来描述软件的设计规约。 形式化方法可以分为形式化描述和建立在形式化描述基础之 上的形式化开发 形式化的描述:用形式化的语言(具有严格的语法语义定 义的语言)描述描述软件系统及其行为模式,以更好地刻 画软件系统的性质。 形式化的开发:用形式化的语言来描述软件需求和特征, 并且通过推理验证来保证最终的软件产品是否满足这些需 求和具备这些特征,符合给定的行为模式。
应用形式化方法的准则





应该选用适当的形式化方法:主要包括有限状态机、时 序图、Petri网、Z、VDM等。 应该形式化,但不要过分形式化 应该估算成本 应该有形式化方法顾问随时提供咨询 不应该放弃传统的开发方法 应该建立详尽的文档 不应该放弃质量标准 不应该盲目依赖形式化方法 应该测试、测试再测试 应该重用
半形式化方法
软件工程使用方法可分成:非形式化、半形式化和形式化 半形式化: 结构化分析(SA)方法 利用图形等半形式化的描述方式表达需求:用数据流图、 状态转换图或实体-联系图建立数据、行为和功能模型, 形成需求说明书中的主要部分。 利用结构化语言描述加工逻辑:结构化语言是介于自然 语言和形式语言之间的一种半形式语言。加工逻辑结构 可分成外层和内层两层:外层用来描述控制结构,采用 顺序、选择、重复三种基本结构;内层对于顺序执行和 循环执行的动作,用结构化语言描述。 缺点:可能存在矛盾、二义性、含糊性、不完整性及抽 象层次混乱等问题。

4 形式化说明技术

4 形式化说明技术

10
图4.1 保险箱的状态转换图 状态集J:{保险箱锁定, , ,保险箱解锁,报警}。 状态集 :{保险箱锁定,A,B,保险箱解锁,报警}。 :{保险箱锁定 输入集K:{ :{1L, , , , , }。 输入集 :{ ,1R,2L,2R,3L,3R}。 转换函数T: 所示。 转换函数 :如Page78 表4.1所示。 所示 初始态S:保险箱锁定。 初始态 :保险箱锁定。 终态集F:{保险箱解锁,报警}。 :{保险箱解锁 终态集 :{保险箱解锁,报警}。
8
应用形式化方法的准则
(1) 应该选用适当的表示方法。 (2) 应该形式化,但避免过分形式化。 (3) 应该估算成本。 (4) 应该有形式化方法顾问随时提供咨询。 (5) 不应该放弃传统的开发方法。 (6) 应该建立详尽的文档。 (7) 不应该放弃质量标准。 (8) 不应该盲目依赖形式化方法。
9
4.2 有穷状态机
4
非形式化方法的缺点
自然语言描述需求规格说明: 矛盾:指一组相互冲突的陈述。 二义性:读者可以用不同方式理解的陈述。 不完整性:缺乏对细节的描述 含糊性。笼统的陈述,没有给出有用的信息。 抽象层次混乱:在非常抽象的陈述中混进了一些关于细节 的低层次陈述。 使得读者很难了解系统的整体功能结构。
5
6
14
4.4 Z语言
含有下述4个部分: 给定的集合、数据类型及常数。 状态定义。 初始状态。 操作。
15
4.5 小结
基于数学的形式化规格说明技术,目前还没有 在软件产业界广泛应用。 与欠形式化的方法比较起来,它有实质性的优 点:
形式化的规格说明可以用数学方法研究、验证(例如, 一个正确的程序可以被证明满足其规格说明,两个规格说明 可以被证明是等价的,规格说明中存在的某些形式的不完整 性和不一致性可以被自动地检测出来)。 此外,形式化的规格说明消除了二义性,而且它鼓励软 件开发者,在软件工程过程的早期阶段使用更严格的方法, 从而可以减少差错。

形式化说明技术是软件工程常用的说明方法

形式化说明技术是软件工程常用的说明方法

形式化说明技术是软件工程常用的说明方法
形式化说明技术是软件工程中常用的说明方法,它基于数理逻辑、集合论和形式语言等数学基础,通过形式化的符号和规则描述软件系统的行为和性质,从而对软件进行精确、严谨和可检验的描述。

形式化说明技术包括以下几个方面:
1.数学符号:形式化说明技术使用代数符号、逻辑符号和其他数学符号对软件进行建模和描述。

这些符号具有严格的定义和规则,可以消除不同认知和语言带来的歧义和难以理解的问题。

2.形式规范:形式化说明技术还提供了一系列形式规范用于描述软件系统的行为和性质,如状态机、Petri网、Z规范等。

这些规范提供了一种形式化的表达方式,可以清晰地描述系统的结构和行为。

3.模型检验:形式化说明技术可以使用模型检验工具来对建模和规范进行验证。

这些工具可以从数学上证明软件是否满足其规范,从而帮助开发者发现软件中潜在的错误和缺陷,并提供相应的改进方案。

4.可重复性:形式化说明技术提供了一种可重复的方法,可以对软件进行精确且可检验的描述。

这些描述可以被其他人复用和修改,使软件的开发和维护变得更加高效和便捷。

总之,形式化说明技术是一种高度精细、严密和可靠的软件描述方法,广泛应用于软件工程领域,有助于提高软件质量和可靠性。

形式方法规格化说明语言-Z期末复习

形式方法规格化说明语言-Z期末复习

形式方法规格化说明语言—Z考前复习3.集合和类型是什么关系?(类型是集合,但集合不一定是类型,最大集合才是类型)4.对象声明(有了类型就可以声明对象了。

)5.扩充表示法(谓词的扩充表示法p37,集合的扩充表示法p38){Decls|Pred Expr }(集合的扩充表示法,何时能省略表达式部分一定要清楚)3。

2 中的例3.8(代表性的例题)6.公理定义(用来定义全程变量)7.通用式定义(包括,,的通用式定义)(留意书上的例题)有关习题 3.9、3。

14、3。

20、3。

21(这些题会做了,就表示掌握了)第4章1.关系(一部分序偶)笛卡尔积(所有的序偶)的子集2.源集和目标集(不一定关系关联到的)、定义域和值域(关系关联到的,定义域是源集的子集,值域是目标集的子集)3.关系运算,特别是复合、逆、定义域限定(减)、值域限定(减)、映像。

(形式定义)(都有形式定义)4.函数(特殊的关系):部分函数、全函数、入射函数、满射函数(形式定义)5.二元关系和一个自变量的函数有什么区别?(二元关系是多对多的关系,函数对应到一个值域)6.函数迭加操作(要求掌握)7.表示法(要求掌握)8.书中的例题和习题 4.6、4.17、4。

22、4。

34—4.36第5 章1.模式的用途2.状态模式、、和初始状态模式(标准方式)3.模式包含(在何时使用)4.模式运算(包括连接词连接、复合等)5.操作模式、前置条件模式、前置条件模式的计算过程6.熟悉“电话号码数据库”的例子和“班级管理"的例子第6章1.什么是序列?序列与通常的集合有什么区别?(序列有次序,可以多次)2.序列的连接、逆置(包括通用式)(一定要清楚定义)3.head、tail、front和last操作(包括通用式)(序列的常用操作)4.压缩函数、序列抽取、序列过滤的操作(包括通用式)(都要求掌握,包括通用式)5.什么是包?包与通常的集合有什么区别?(集合的元素出现一次,包可以多次)6.包的表示7.包的操作函数的通用式定义In、子包、包并、包差等其他 1模式例子(如果能把这几个掌握了就很好了)1.PhoneDB2.Class3.SM(存储管理程序)4.自动售货机(该例子介绍包的运算,确实很精彩!)其他 21.序列归纳法的证明方法2.序列连接的结合律3.序列逆置考试题型1.选择题(A,B,C,D四选一)2.填空题(比如给了一个关系的定义域的限定解,给了一个入射函数的定义域,缺一个谓词和表达式的部分,要求把形式定义补完整。

一种结构化形式化说明的方法

一种结构化形式化说明的方法

J n 0 2 u e2 0
一Leabharlann 种 结 构 化 形 式化 说 明 的方 法
邓 勇 丁 峰 沈钧 毅
‘ 安 交 通 大 学 软 件 所 , 西 西安 7 04 ) 西 陕 1 0 9

要 : 式 化 方 法使 用 教 学 井 号 采描 速 系统 的性 质 , 形 它具 有 精 确 性 、 二 义 性 和 一 致 性 等 优 点 . 些 优 点 使 形 式 化 方 无 这
中圈 分 类 号 : P 】 T 3l 文献标识码 : A
1 前

有条理的方式 来表达形式化说 明. 这就改 善了可读性.
z定 义 了一 个 数 学 工 具 包 ( te al [ o l i . 其 Mah m t a T o— t 在 e k) 中 引 人 了许 多数 学 符 号 . 对 这 些 数 学 符 号的 语 义 作 了 形 式 并
的组件之 间存在着 一种关系 , 这种关系可 以把某些 系统状态 的变化与可索引 的组 件 的状态相关 联. 了用一 种结 构化的 为
方 式 来 描 述 这 种 关 系 . 要 一 种方 法 把 全 局 操 作分 解 为 局 部 需 操 作 和 混舍 操 作 ( 示 局 部 状 态 和 全 局 状 态 问 的 关 系 ) 这 种 表 . 方 法称 为框 架 , 它在 形 式 化 说 明 中放 人 一 框 架 , 只有 在 框 架 内 的 事 物可 以改 变 , 框架 外 的事 物 则 不 受 影 响 . 而 使 用框 架 , 可 把 复 杂 的 全 局 操 作 分 解 为 两 个 相 对 简单
的. 了改善形式化说明的可读性 . 为 需要一种结构化形式化说 明的方法. 种方法能 把复杂的形式 化说明分解为若干 个较 这

用z语言描述的最简单的形式化规格说明

用z语言描述的最简单的形式化规格说明

用z语言描述的最简单的形式化规格说明最简单的形式化规格说明是通过使用Z语言来定义和描述系统的行为和特性。

Z语言是一种形式化规范语言,它用于描述软件系统、硬件系统或任何其他系统的规范。

Z语言使用数学符号和形式化的术语,以一种精确而准确的方式来定义系统的规范。

它可以描述系统的状态、操作、约束和性质,并提供一种清晰和可验证的方法来确定系统是否满足规范。

例如,假设我们要描述一个简单的计算器系统。

我们可以使用Z语言来说明该系统的规范。

以下是一个简单的示例:基本规范:- 系统具有一个输入口和一个输出口。

- 输入口接收用户输入的数字和操作符。

- 输出口显示计算结果。

状态规范:- 系统具有一个变量x,表示当前的结果。

- 系统具有一个变量input,表示用户的输入。

操作规范:- 用户输入的每个数字将更新变量x的值。

- 用户输入的操作符将触发相应的操作,如加法、减法、乘法或除法。

约束规范:- 变量x的值必须在合理的范围内,否则应显示错误。

- 用户输入的操作符必须是有效的操作符之一,否则应显示错误。

性质规范:- 当用户输入正确的数字和操作符时,系统应按预期进行计算,并正确显示结果。

- 当用户输入无效的数字或操作符时,系统应显示错误信息,以指示输入错误。

通过使用Z语言,我们能够明确地定义系统的规范,包括输入、状态、操作和性质。

这种形式化的规范能够帮助开发人员、测试人员和项目相关人员共享和理解系统的期望行为,从而提高系统的可靠性和正确性。

需要注意的是,以上只是一个简化的示例,实际的形式化规格说明可能会更加复杂和详细。

但使用Z语言作为规范语言可以帮助我们准确地描述系统的要求和行为,以便开发出高质量的软件系统。

形式化说明技术

形式化说明技术

详细描述
定理证明采用数学逻辑和公理系统,对系统 行为进行严格的证明或反证,以验证系统是 否满足预期的行为和性质。这种方法在计算 机科学和数学领域广泛应用。
模拟与实验验证
总结词
模拟与实验验证是通过模拟或实际实验来验 证系统行为正确性的方法。
详细描述
模拟与实验验证通过模拟系统的运行环境或 进行实际实验,观察系统的行为表现,并与 预期行为进行比较,以验证系统是否满足预 期的行为和性质。这种方法在系统开发过程
现状
目前,形式化说明技术已经得到了广泛的应用和发展,成为软件和 系统开发领域的重要分支之一。
02
形式化说明的表示方法
逻辑表示法
总结词
逻辑表示法是一种基于逻辑推理规则的表示方法,用于描述系统的性质和行为。
详细描述
逻辑表示法使用逻辑公式和推理规则来描述系统的输入、输出和状态转换。它 能够精确地表达条件、关系和推理规则,适用于描述具有复杂逻辑关系的系统。
验证成本
形式化说明技术的验证过程往往需要 大量的人力和时间,增加了开发成本。
形式化说明技术的未来发展方向
智能化
标准化
利用机器学习、人工智能等技术,提高形 式化说明技术的自动化程度,降低人工干 预。
制定统一的形式化说明技术标准,提高不 同工具和平台之间的互操作性。
可视化
跨领域应用
利用图形、动画等可视化技术,提高形式 化说明技术的可读性和易用性。
硬件描述语言
使用形式化说明技术可以创建精 确的硬件模型,例如使用Verilog 或VHDL等硬件描述语言。
硬件逻辑验证
通过形式化说明技术,可以对硬 件设计的逻辑正确性进行验证, 确保硬件在所有可能的情况下都 能正常工作。
硬件优化
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(3) 应该估算成本。为了使用形式化方法,通常需 要事先进行大量的培训。最好预先估算所需的成本 并编入预算。 (4) 应该有形式化方法顾问随时提供咨询。绝大多 数软件工程师对形式化方法中使用的数学和逻辑并 不很熟悉,而且没受过使用形式化方法的专业训练, 因此,需要专家指导和培训。 (5) 不应该放弃传统的开发方法。把形式化方法和 结构化方法或面向对象方法集成起来是可能的,而 且由于取长补短往往能获得很好的效果。 (6) 应该建立详尽的文档。建议使用自然语言注释 形式化的规格说明书,以帮助用户和维护人员理解 系统。
(7) 不应该放弃质量标准。形式化方法并不能保证 软件的正确性,它们只不过是有助于开发出高质量 软件的一种手段。除了使用形式化说明技术外,在 系统开发过程中仍然必须一如既往地实施其他质量 保证活动。 (8) 不应该盲目依赖形式化方法。这种方法不是包 治百病的灵丹妙药,它们只不过是众多工具中的一 种。形式化方法并不能保证开发出的软件绝对正确, 例如,无法用形式化方法证明从非形式化需求到形 式化规格说明的转换是正确的,因此,必须用其他 方法(例如,评审、测试)来验证软件正确性。
使用谓词S(d,e,f),形式化转换规则为: FBOFF(d,f)+FBP(d,f)+not S(d,1…n,f) FBON(d,f) FBON(d,f)+EAF(1…n,f)+S(d,1…n,f)FBOFF(d,f) 其中,d=UorD。 也就是说,如果在f层请求电梯向d方向运动的楼层 按钮处于关闭状态,现在该按钮被按下,并且当时 没有正停在f层准备向d方向移动的电梯,则该楼层 按钮打开。反之,如果楼层按钮已经打开,且至少 有一部电梯到达f层,该部电梯将朝d方向运动,则 按钮将关闭。
接下来考虑楼层按钮。令FB(d,f)表示f层请求电梯 向d方向运动的按钮,楼层按钮FB(d,f)的状态转换 图如图4.3所示。 楼层按钮的状态如下: FBON(d,f):楼层按钮(d,f)打开 FBOFF(d,f):楼层按钮(d,f)关闭 如果楼层按钮已经打开,而且一部电梯到达f层, 则按钮关闭。反之,如果楼层按钮原来是关闭的, 被按下后该按钮将打开。这段叙述中包含了以下两 个事件。
电梯按钮的状态转换图如图4.2所示。令EB(e,f)表 示按下电梯e内的按钮并请求到f层去。EB(e,f)有两 个状态,分别是按钮发光(打开)和不发光(关闭)。 更精确地说,状态是: EBON(e,f):电梯按钮(e,f)打开 EBOFF(e,f):电梯按钮(e,f)关闭 如果电梯按钮(e,f)发光且电梯到达f层,该按钮将熄 灭。相反如果按钮熄灭,则按下它时,按钮将发光。 上述描述中包含了两个事件,它们分别是: EBP(e,f):电梯按钮(e,f)被按下 EAF(e,f):电梯e到达f层
在讨论电梯按钮状态转换规则时定义的谓词 V(e,f), 可以用谓词S(d,e,f)重新定义如下: V(e,f)=S(U,e,f)or S(D,e,f)or S(N,e,f) 定义电梯按钮和楼层按钮的状态都是很简单、直观 的事情。现在转向讨论电梯的状态及其转换规则, 就会出现一些复杂的情况。一个电梯状态实质上包 含许多子状态。 下面定义电梯的3个状态: M(d,e,f):电梯e正沿d方向移动,即将到达的是第f 层 S(d,e,f):电梯e停在f层,将朝d方向移动(尚未关门) W(e,f):电梯e在f层等待(已关门)
(1) 应该选用适当的表示方法。通常,一种规格说 明技术只能用自然的方式说明某一类概念,如果用 这种技术描述其不适于描述的概念,则不仅工作量 大而且描述方式也很复杂。因此,应该仔细选择一 种适用于当前项目的形式化说明技术。 (2) 应该形式化,但不要过分形式化。目前的形式 化技术还不适于描述系统的每个方面。但是,也不 能因此就认为完全没必要采用形式化方法。形式化 规格说明技术要求我们非常准确地描述事物,因此 有助于防止含糊和误解。事实上,如果用形式化方 法仔细说明系统中易出错的或关键的部分,则只用 适中的工作量就能获得较大回报。
在软件开发过程中使用数学的另一个优点是,可以 在不同的软件工程活动之间平滑地过渡。不仅功能 规格说明,而且系统设计也可以用数学表达,当然, 程序代码也是一种数学符号(虽然是一种相当繁琐、 冗长的数学符号)。 数学作为软件开发工具的最后一个优点是,它提供 了高层确认的手段。可以使用数学方法证明,设计 符合规格说明,程序代码正确地实现了设计结果。
图4.2 电梯按钮的状态转换图
图4.3楼层按钮的状态转换图
为了定义与这些事件和状态相联系的状态转换规则, 需要一个谓词V(e,f),它的含义如下: V(e,f):电梯e停在f层 如果电梯按钮(e,f)处于关闭状态〔当前状态〕,而 且电梯按钮(e,f)被按下〔事件〕,而且电梯e不在f 层〔谓词〕,则该电梯按钮打开发光〔下个状态〕。 状态转换规则的形式化描述如下: EBOFF(e,f)+EBP(e,f)+not V(e,f) EBON(e,f) 反之,如果电梯到达f层,而且电梯按钮是打开的, 于是它就会熄灭。这条转换规则可以形式化地表示 为: EBON(e,f)+EAF(e,f) EBOFF(e,f)
图4.1 保险箱的状态转换图
图4.1是一个有穷状态机的状态转换图。状态转换 并不一定要用图形方式描述,表4.1(见书68页) 的表格形式也可以表达同样的信息。 从上面这个简单例子可以看出,一个有穷状态机包 括下述5个部分:状态集J、输入集K、由当前状态 和当前输入确定下一个状态(次态)的转换函数T、 初始态S和终态集F。对于保险箱的例子,相应的 有穷状态机的各部分如下。 状态集J:{保险箱锁定,A,B,保险箱解锁,报 警}。 输入集K:{1L,1R,2L,2R,3L,3R}。
4.1 概述
4.1.1 非形式化方法的缺点
用自然语言书写的系统规格说明书,可能存在矛盾、 二义性、含糊性、不完整性及抽象层次混乱等问题。 所谓矛盾是指一组相互冲突的陈述。 二义性是指读,因此,几乎不可 避免地会出现含糊性。实际上,这样笼统的陈述并 没有给出任何有用的信息。 不完整性可能是在系统规格说明中最常遇到的问题 之一。 抽象层次混乱是指在非常抽象的陈述中混进了一些 关于细节的低层次陈述。这样的规格说明书使得读 者很难了解系统的整体功能结构。
4.1.2 形式化方法的优点
人在理解用自然语言描述的规格说明时,容易产生 二义性。为了克服非形式化方法的缺点,人们把数 学引入软件开发过程,创造了基于数学的形式化方 法。 在开发大型软件系统的过程中应用数学,能够带来 下述的几个优点: 数学最有用的一个性质是,它能够简洁准确地描述 物理现象、对象或动作的结果,因此是理想的建模 工具。数学特别适合于表示状态,也就是表示“做 什么”。
FBP(d,f):楼层按钮(d,f)被按下 EAF(1…n,f):电梯1或…或n到达f层 其中1…n表示或为1或为2…或为n。 为了定义与这些事件和状态相联系的状态转换规则, 同样也需要一个谓词,它是S(d,e,f),它的定义如下。 S(d,e,f):电梯e停在f层并且移动方向由d确定为向 上(d=U)或向下(d=D)或待定(d=N)。 这个谓词实际上是一个状态,形式化方法允许把事 件和状态作为谓词对待。
第4章 形式化说明技术
4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结 习题
按照形式化的程度,可以把软件工程使用的方法划 分成非形式化、半形式化和形式化3类。用自然语 言描述需求规格说明,是典型的非形式化方法。用 数据流图或实体-联系图建立模型,是典型的半形 式化方法。 所谓形式化方法,是描述系统性质的基于数学的技 术,也就是说,如果一种方法有坚实的数学基础, 那么它就是形式化的。
(9) 应该测试、测试再测试。形式化方法不仅不能 保证软件系统绝对正确,也不能证明系统性能或其 他质量指标符合需要,因此,软件测试的重要性并 没有降低。 (10) 应该重用。即使采用了形式化方法,软件重用 仍然是降低软件成本和提高软件质量的惟一合理的 方法。而且用形式化方法说明的软件构件具有清晰 定义的功能和接口,使得它们有更好的可重用性。
4.2 有穷状态机
4.2.1 概念
下面通过一个简单例子介绍有穷状态机的基本概念。 一个保险箱上装了一个复合锁,锁有三个位置,分 别标记为1、2、3,转盘可向左(L)或向右(R)转动。 这样,在任意时刻转盘都有6种可能的运动,即1L、 1R、2L、2R、3L和3R。保险箱的组合密码是1L、 3R、2L,转盘的任何其他运动都将引起报警。图 4.1描绘了保险箱的状态转换情况。
转换函数T:如表4.1所示。 初始态S:保险箱锁定。 终态集F:{保险箱解锁,报警}。 如果使用更形式化的术语,一个有穷状态机可以表 示为一个5元组(J,K,T,S,F),其中: J是一个有穷的非空状态集; K是一个有穷的非空输入集; T是一个从(J-F)×K到J的转换函数; S∈J,是一个初始状态; F J,是终态集。
C2:除了大厦的最低层和最高层之外,每层楼都 有两个按钮分别请求电梯上行和下行。这两个按钮 之一被按下时相应的指示灯亮,当电梯到达此楼层 时灯熄灭,电梯向要求的方向移动。 C3:当对电梯没有请求时,它关门并停在当前楼 层。 现在使用一个扩展的有穷状态机对本产品进行规格 说明。这个问题中有两个按钮集。n部电梯中的每 一部都有m个按钮,一个按钮对应一个楼层。因为 这m×n个按钮都在电梯中,所以称它们为电梯按 钮。此外,每层楼有两个按钮,一个请求向上,另 一个请求向下,这些按钮称为楼层按钮。
4.2.2 例子
为了具体说明怎样用有穷状态机技术表达系统的规 格说明,现在用这种技术给出大家熟悉的电梯系统 的规格说明。首先给出用自然语言描述的对电梯系 统的需求: 在一幢m层的大厦中需要一套控制n部电梯的产品, 要求这n部电梯按照约束条件C1,C2和C3在楼层 间移动。 C1:每部电梯内有m个按钮,每个按钮代表一个楼 层。当按下一个按钮时该按钮指示灯亮,同时电梯 驶向相应的楼层,到达按钮指定的楼层时指示灯熄 灭。
相关文档
最新文档