浅析形式化描述方法的应用

合集下载

形式化方法在电信服务系统中的应用与研究

形式化方法在电信服务系统中的应用与研究

sr e c b r表 示 的 是 所 有 在 电 话 系 统 中 的 注 册 用 户 . r i Fe 表示 电话 处 于 空 闲状 态 , uv表 示 电话 处 于 繁 忙 状 态 . Bs
R q et eu s表示一个 电话用户请求 与另外一个用 户连接 .
和 稳 定性
随 着 电信 服 务系 统 的软件 规模 和复 杂性 不 断增
加 . 且对稳定性和安全性要求极高 . 并 因此 可 以把 形 式
化方法应用到 电信服务系统 的开发 中.通过形式化 方
法来 提 高其 软件 质 量 和 稳 定 性 【 形 式 化 方 法 是 用 数 学 l l 。

形式化方法在 电信服务 系统 中的应 用与研 究
彭 展
( 东 石 油化 工 学 院教 育 信 息 技 术 中心 , 名 广 茂
摘 要 :为 提 高 电信 服 务 系统 的稳 定性 , 形 式 化 方 法 引入 到 电信 服 务 系统 的 研 究 中 , 用 典 型 的 把 并
形 式 化 规 格 语 言 Z 开发 电信 系统 中基 本 功 能 的 形 式 化 规 格 , 套 形 式 化 规 格 对 拔 打 电话 、 该
关 键 词 :形 式 化 方 法 ;z语 言 :电信 系统 ;形 式 化规 格
0 引

本文以电信 服务系统最基本的服务 内容 P T ( O S 模
拟电话业务 ) 切入点 . 先对 P T 为 首 O S的业 务 流 程 进 行 详 细 的分 析 . 后 开 发 出基 于 Z语 言 的 P T 然 O S模 块 的形 式 化 规 格 .精 确 的 形 式 化 规 格 可 以应 用 到 软 件 开 发 生 命 周 期 的 各 个 阶段 .以提 高 电信 服 务 系 统 的软 件 质 量

形式化方法

形式化方法

15.1 概 述
15.1.1 非形式化方法的缺点 15.1.2 软件开发过程中的数学 15.1.3 应用形式化方法的准则
15.1.3 应用形式化方法的准则
关于形式化方法是有争议的。这种方法 对某些软件工程师很有吸引力,其拥护 者甚至宣称这种方法可以引发软件开发 的革命,另一些人则对把数学引入软件 开发过程持怀疑甚至反对的态度。编者 认为,对形式化方法也应该“一分为二 ”,既不要过分夸大它的优点也不要一 概排斥。
15.1.1 非形式化方法的缺点
假设在系统规格说明中还规定,系统的 某个命令是:
AVERAGE命令的功能是在PC上显示由某 个特定传感器在两个日期之间获取的平 均水深。
15.1.1 非形式化方法的缺点
抽象层次混杂是指在非常抽象的陈述中 混进了一些关于细节的低层次陈述。这 使得系统规格说明的读者很难了解系统 的整体功能结构。
S (D, e, f ) + DC (e, f ) → M (D, e, f−1) S (N, e, f ) + DC (e, f ) → W (e, f )
15.2 有穷状态机
15.2.1 基本概念 15.2.2 电梯问题 15.2.3 评论
15.2.3 评论
有穷状态机方法采用了一种简单的格式 来描述规格说明
15.2.1 基本概念
15.2.1 基本概念
15.2.1 基本概念
从上面这个简单例子可以看出,一个有 穷状态机包括下述5个部分:状态集J、 输入集K、由当前状态和当前输入确定下 一个状态(次态)的转换函数T、初始态 S和终态集F。
15.2.1 基本概念
有穷状态机的概念在计算机系统中应用 得非常广泛,如每个菜单驱动的用户界 面都是一个有穷状态机的实现。一个菜 单的显示和一个状态相对应,键盘输入 或用鼠标选择一个图标是使系统进入其 他状态的一个事件。状态的每个转换都 具有下面的形式

形式化验证方法浅析

形式化验证方法浅析

形式化验证方法浅析陈波1,李夫明2(1.山东理工大学计算机科学与技术学院,山东淄博255000;2.山东理工大学数学与统计学院,山东淄博255000)摘要:随着信息技术的发展,软硬件系统越来越复杂,其中软硬件系统设计的正确性至关重要。

形式化验证方法在硬件设计和软件开发等领域发挥越来越重要的作用,成为模拟验证的重要补充。

本文主要介绍了形式化验证方法的发展现状并对其发展进行展望。

关键词:形式化验证方法;软件设计;硬件验证;模型检测;定理证明中图分类号:TP301文献标识码:A文章编号:1009-3044(2019)34-0239-02开放科学(资源服务)标识码(OSID):Summary of Formal Verification MethodCHEN Bo 1,LI Fu-ming 2(1.College of Computer Science and Technology,Shandong University of Technology,Zibo 255000,China;2.School of mathematics and statis⁃tics,Shandong University of Technology,Zibo 255000,China)Abstract:With the development of information technology,hardware and software systems become more and more complex.The correct⁃ness of hardware and software system design is very important.Formal verification method is playing important role in hardware design and software development,and become an important supplement to simulation verification.Thepaper introduce the state of the art and fu⁃ture directions of formal method.Key words:formal verification method;software engineering;hardware verification;model checking;theorem proving1概述硬件和软件系统在规模和功能上的增长增加了复杂性,也增加了潜在错误的可能性,这些错误引起了金钱、时间上的损失,甚至会危及人们的生命。

第十章.形式化描述

第十章.形式化描述
描述的结构化——将非形式化的接口描述组织成一组抽象数 据类型或对象类 描述的命名——给每个抽象类型描述赋予一个名字,决定它 们是否需要一般性参数,并对确定的类型命名 操作选择——根据识别出的接口功能为每个描述选择一组操 —— 作 非形式化的操作描述——为每个操作写一个非形式化的描述 语法定义——定义每个操作及其参数的语法 公理定义——定义操作的定义,给出每种不同的操作组合需 要满足的条件
• 图10-6
10.3 行为描述
• 代数方法适合于描述操作独立于对象状态 的接口 • 假如某个操作的结果依赖于先前操作的结 果,结果将非常复杂, • 因此在行为描述的采用基于模型的方法 • 常见的方法有VDM方法,B方法,Z方法
• 软件的形式化描述 • 使用一种规范语言,其词汇,语法和语义 都是有严格定义的
• • • • • 1.非形式化方法的缺点 矛盾,指一组相互冲突的陈述。 二义性,指读者可以用不同方式理解的陈述。 含糊性,几乎不可避免地会出现含糊性。 不完整性,不完整性可能是在系统规格说明 中最 常遇到的问题之一。 • 抽象层次混乱, 指在非常抽象的陈述中混进 了一 些关于细节
• 2.形式化的优点 • (1)有能力在需求系统需求中揭示问题和暴露
图10-5 代数描述的结构
描述体的四个组成部分
• 介绍 ——用来声明被定义的尸体种类(类型名) • 描述部分——用于对操作的非形式化描述 • 标记部分——定义对象类或抽象数据类型的接口 语法 • 公理部分——通过一组刻画抽象数据类型的行为 特征的公理来定义操作的定义。
子系统接口的形式化描述的开发过 程的各项活动
问题二义性 • (2)数学能够简洁准确地描述物理现象、对象或 动作的结果,因此是理想的建模工具。 • (3)可以在不同的软件工程活动之间平滑地过渡。 • (4)它提供了高层确认的手段,可以使用数学的 方法证明,设计符合规格说明,程序代码正确地 实现了设计结果

形式化方法与应用专题前言

形式化方法与应用专题前言

软件学报ISSN 1000-9825, CODEN RUXUEWE-mail:************.cn Journal of Software ,2021,32(6):1579−1580 [doi: 10.13328/ki.jos.006256] ©中国科学院软件研究所版权所有. Tel: +86-10-62562563形式化方法与应用专题前言∗ 田 聪1, 邓玉欣2, 姜 宇31(西安电子科技大学 计算机学院,陕西 西安 710071) 2(华东师范大学 软件学院,上海 200062) 3(清华大学 软件学院,北京 100084)通讯作者: 田聪, 邓玉欣, 姜宇,E-mail:*****************,***************,********************* 中文引用格式: 田聪,邓玉欣,姜宇.形式化方法与应用专题前言.软件学报,2021,32(6):1579−1580. /1000- 9825/6256.htm计算机科学的发展主要涉及硬件和软件的发展,而软、硬件发展的核心问题之一是如何保证它们是安全可靠的.如今,硬件性能变得越来越高,运算速度也越来越快,体系结构、软件的功能也更加复杂,如何开发可靠的软、硬件系统,是计算机科学发展面临的巨大挑战.特别是现在计算机系统广泛应用于许多安全攸关系统中,如高速列车控制系统、航空航天控制系统、医疗设备控制系统等等,这些系统中的错误可能导致灾难性后果. 形式化方法己经成功应用于各种硬件设计,特别是芯片的设计.各大硬件制造商都有一个非常强大的形式化方法团队为保障系统的可靠性提供技术支持,例如IBM 、AMD 等等.近年来,随着形式验证技术和工具的发展,特别是在程序验证中的成功应用,形式化方法在处理软件开发复杂性和提高软件可靠性方面已显示出无可取代的潜力.各个著名的研究机构都投入了大量人力和物力从事这方面的研究.例如,美国宇航局(NASA)拥有的形式化方法研究团队在保证美国航天器控制软件正确性方面发挥了巨大作用,在研发“好奇号”火星探测器时,为了提高控制软件的可靠性和生产率,广泛使用了形式化方法.在新兴领域,如区块链及人工智能等领域,形式化方法也逐步得到应用,提升系统的整体安全可控.本专题公开征文,共征得投稿27篇.特约编辑先后邀请了国内外在该领域比较活跃的学者参与审稿工作,每篇投稿至少邀请2位专家进行初审.大部分稿件经过初审和复审两轮评审,部分稿件经过了两轮复审.通过初审的稿件还在FMAC 2020大会上进行了现场报告,作者现场回答了与会者的问题,并听取了与会者的修改建议.最终有18篇论文入选本专题.《C2P:基于Pi 演算的协议C 代码形式化抽象方法和工具》提出一种检测安全协议代码语义逻辑错误的形式化验证方法,通过将协议C 源码自动化抽象为Pi 演算模型,基于Pi 演算模型对协议安全属性进行形式化验证.《大粒度Pull Request 描述自动生成》利用图神经网络和强化学习的技术,提出一种为GitHub 平台中大粒度Pull Request 自动生成描述的方法.《Petri 网的反向展开及其在程序数据竞争检测的应用》针对安全Petri 网的可覆盖性判定问题提出一种目标导向的反向展开算法,并应用于并发程序中数据竞争检测问题的形式化验证.《面向SPARC 处理器架构的操作系统异常管理验证》提出了基于Hoare-logic 的验证框架,用于证明面向SPARC 处理器架构操作系统异常管理的正确性,基于该框架验证了我国北斗三号在轨实际应用的航天器嵌入式实时操作系统SpaceOS 异常管理功能的正确性.《基于分支标记的数据流模型的代码生成方法》针对具有复杂分支组合的数据流模型提出了基于分支调度标记的代码生成方法.《面向AADL 模型的存储资源约束可调度性分析》提出一种面向软件架构级别、基于抢占调度序列的缓存相关抢占延迟计算方法,用来分析缓存相关抢占延迟约束下AADL(架构分析和设计语言)模型的可调度性.收稿时间: 2021-01-301580 Journal of Software软件学报 V ol.32, No.6, June 2021《基于锁增广分段图的多线程程序死锁检测》对已有的锁图和分段图模型进行改进,提出一种新的死锁检测方法,该方法能有效消除各种误报,提高死锁检测的准确率.《基于污染变量关系图的Android应用污点分析工具》提出了一种基于污染变量关系图的污点分析方法,并描述了基于该方法所实现的工具FastDroid的架构、模块及算法细节.《以太坊中间语言的可执行语义》对以太坊中间语言Yul进行形式化,利用Isabelle/HOL证明辅助工具给出了其类型系统和小步操作语义的形式化定义,为智能合约正确性、安全性验证奠定了基础.《个体交互行为的平滑干预模型》提出一种基于个体交互行为系统平滑干预模型,能够很好地引导用户行为平滑变化,且产生足够的区分性使得行为伪装异常检测场景下模型的准确性显著提高.《支持乱序执行的Raft协议》使用 TLA+为分布式共识协议ParallelRaft提供严格的形式化规约,并证明了在参与者数量较小的情形下算法的正确性.《面向CPS时空性质验证的混成AADL建模与模型转换方法》提出了面向CPS时空性质验证的混成AADL建模与模型转换方法,并通过一个飞机避撞系统实例验证该方法的有效性.《芯片开发功能验证的形式化方法》提出了一种新型验证设计模型和生成代码一致性的方法.该方法利用MSVL语言进行系统建模,通过统一模型检测的原理,验证模型是否满足性质的有效性.《面向数据流的ROS2数据分发服务形式建模与分析》采用概率模型检验的方法,分析、验证机器人操作系统ROS2系统数据分发机制的实时性和可靠性.《Ptolemy离散事件模型形式化验证方法》提出了一种基于形式模型转换的方法来验证离散事件模型的正确性,通过在Ptolemy环境中实现一个插件,可以自动将离散事件模型转换为时间自动机模型,并通过调用Uppaal验证内核完成验证.《面向MSVL的智能合约形式化验证》介绍了如何使用建模、仿真与验证语言(MSVL)和命题投影时序逻辑(PPTL)对智能合约进行建模和验证.《面向ROS的差分模糊测试方法》提出了一种差分模糊测试方法对机器人操作系统ROS不同版本的功能包进行测试,找出其中的漏洞.《基于Coq的分块矩阵运算的形式化》完善了基于Coq记录类型的矩阵形式化方法,其中包括提出新的矩阵等价定义、并证明了一组新的引理,最终实现了矩阵与分块矩阵形式化的不同类型的基础库.本专题重点关注形式化基础方法、技术、支持工具以及领域交叉应用,反映了我国学者在该领域的最新研究进展.感谢《软件学报》编委会、CCF形式化方法专委会对专题工作的指导和帮助,感谢编辑部各位老师从征稿启示发布、审稿专家邀请至评审意见汇总、论文修改、定稿及出版所付出的辛勤工作,感谢专题全体评审专家及时、耐心、细致的评审工作,感谢踊跃投稿的所有作者对《软件学报》的信任.希望本专题能够对形式化方法的科研工作有所促进.田聪(1981-),女,博士,西安电子科技大学计算机科学与技术学院教授,博士生导师,CCF杰出会员,主要研究领域为形式化方法,程序验证,等.姜宇(1989-),男,博士,清华大学软件学院副教授,博士生导师,CCF会员,主要研究领域为形式化方法,程序分析,嵌入式软件,等.邓玉欣(1978-),男,博士,华东师范大学软件工程学院教授,博士生导师,CCF高级会员,主要研究领域为形式化方法,程序理论,等.。

软件测试中的模型验证与形式化方法

软件测试中的模型验证与形式化方法

软件测试中的模型验证与形式化方法软件测试是一项重要的质量保证活动,它旨在发现和修复软件中的错误和缺陷。

为了提高测试的效率和准确性,研究人员和测试人员一直在探索新的方法和技术。

模型验证和形式化方法是软件测试中一种被广泛研究和应用的方法,它们能够提供严格的证明和分析,以确保系统的正确性和可靠性。

模型验证是一种基于模型的测试方法,它利用形式化规范来描述系统的行为和属性,然后使用数学工具来验证这些规范是否被满足。

模型验证可以帮助测试人员找到系统中可能存在的问题,并且能够提供形式化的证据来支持这些问题的存在。

例如,模型验证可以帮助测试人员发现系统中的死锁、资源争用和安全漏洞等问题,并且能够提供清晰的证明来支持这些问题的存在。

形式化方法是一种利用数学符号和形式化语言来表示和分析软件系统的方法。

通过使用形式化方法,测试人员可以对系统的行为和属性进行精确的描述,并且能够使用数学工具来进行验证和分析。

形式化方法的一个重要应用是规约和约束的描述,这样测试人员可以通过实例化和验证来验证系统是否满足特定的规约和约束。

例如,测试人员可以使用形式化方法来验证系统的数据结构是否满足特定的约束条件,或者验证系统的算法是否满足特定的性质。

模型验证和形式化方法在软件测试中具有重要的作用。

它们能够提供严格的证明和分析,以确保系统的正确性和可靠性。

通过使用模型验证和形式化方法,测试人员可以更加准确地发现和修复软件中的错误和缺陷。

模型验证和形式化方法还可以帮助测试人员提高测试的效率,减少测试的时间和成本。

通过使用这些方法,测试人员能够系统地分析系统的行为和属性,并且能够更好地选择测试用例和执行测试活动。

然而,模型验证和形式化方法在软件测试中也存在一些挑战和限制。

使用模型验证和形式化方法需要具备一定的数学和形式化领域的知识和技能。

对于复杂的系统和大规模的软件,模型验证和形式化方法可能会导致验证问题的爆炸,使得验证变得困难和耗时。

模型验证和形式化方法还可能无法覆盖系统的所有方面,导致无法发现系统中的隐藏错误和缺陷。

数学解题的形式化方法

数学解题的形式化方法

数学解题的形式化方法形式化的数学解题方法是一种有效的方法,可以帮助学生们更有效地学习以及解决数学问题。

它是把数学概念或技巧组织起来,用可以复制、练习和理解的形式表示出来的步骤。

使用这种方法,学生可以更容易地掌握数学概念和应用,避免出错及时间的浪费。

本文将详细介绍形式化的数学解题方法,并研究如何使用它,以解决现实生活中的数学问题。

一、什么是形式化的数学解题方法形式化的数学解题方法是将解决问题的步骤标准化的方法,以便方便学生学习以及快速解决数学问题。

它采用可复制的标准步骤,从而可以一次引导一个学生,也可以指导多个学生同时进行解决问题的过程。

它不仅使学生们更容易掌握数学概念和方法,还可以减少出错和时间的浪费。

二、解决数学问题的步骤1.准备工作:了解题目的内容,了解问题所需要的数据,然后仔细阅读问题。

2.分析问题:根据问题所提供的信息,准备适当的公式,找出问题所要求的答案。

3.建立方程:根据问题准备的公式,把具体的问题转化为更为抽象的数学问题,并把它写成一个方程式。

4.解方程:使用数学技巧,根据问题的具体要求,把方程式转化为可以解决的形式,然后再求得问题的答案。

5.审核结果:最后,检查问题的答案是否正确,是否符合问题的具体要求,如果不正确,可以重新审查,继续解决问题。

三、形式化解题方法的优点1.步骤合理:使用形式化的数学解题方法,可以把解决问题的步骤按照顺序阐述出来,而不是把这些步骤混合在一起,容易误解。

2.方便快捷:利用形式化的数学解题方法,可以更快捷地解决问题,因为把所有的步骤整理好了,直接开始做就行了,不用浪费时间麻烦的想法了。

3.提高效率:由于使用形式化的方法,可以把复杂的问题简单化,减少了出错,节约了大量的时间,提高了效率。

4.提升学习成绩:学习出完善的数学解题方法,可以帮助学生有规划地学习知识,同时也给了他们一种解决问题的方式,帮助他们在数学考试中取得更好的成绩。

四、形式化的数学解题方法的应用形式化的数学解题方法是容易被应用的方式,也是在大多数情况下可以应用的方法。

形式化方法

形式化方法

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

式化 方法 使用具有精确 的、一致性 的和 完整性 的数学符 号来描述软件系统 ,因此 只要保证 软 件规约对实 际问题 描述的正确性 ,就能确保 软 件系统实现 的完备性与可靠性 。
2 . 2 形 式 化 方 法 的 内容
有效地提 高软件质量和开发效率 ,减少开发成 本 。形式化描述 的优势在于实 际问题 的抽象和 语法准确 、语义清晰、描述准确规范 、表达无 二义性。形式化方法还可 以通过数学工具求解 些问题的确定解进行有效地检查软件系统 中 的非功能特 性。
z语 言 是 由英 国 O x f o r d大 学 程 序 研 究 组 设计 的一种基于 一阶谓词逻辑和 集合 论的形式 规格说 明语 言,它采用 了严格 的数学理论,可 以产生简 明、精确 、无歧义且可 证明的规格 说
【 关键词 】软件工程 形式化描 述 形式规约语
言 Z语 言
明。它支持形式化方法 中的两种 类型的抽 象, 并分别称之为表示抽 象和操作抽 象。在表示抽 象 中,数据从数据结构 的表示细节抽 象出来 , 使用关系 、函数 、集合 、序列 、包等抽 象的数
1 引 言
随着计算机 硬件和应 用技术 的快速发展 , 软件工程 和软件开发技术也发展迅速 ,那么在 这种情况 下,开发 出正确 的、可靠 的、安全 的、
可扩展 的、 结构复杂的软件就变得越来越重要 , 形式化描述方法 的出现成为 了解决此 问题 的一 种方法 。软件工程和 设计模 式的规格和功能描 述可 以采用非形式化和 形式化描述两种方法, 非形式化的描述方法主要有 自然语言、流程图 等 ,但 是这种方法存在一定 的局限性、不准确 性和 易混淆性 。而形式化描述 方法 则是使 用严 格 的数 学方法进行描述 ,并且具有严格 的语 法 和语义 定义,可 以准确 、抽象 、规范地描述 软 件系统 的模 型、功能和规格 ,从而提 高软件 的 正确性和可靠性 ,更好地满 足用户的需求。
实例。
软件 开发 的 形式 化描 述方 法有 两个 重要
内容 :形 式规 约 ( F o r ma l S p e c i i f c a t i o n ) 和 形 式
4 z 语言与形式化应用实例
4 . 1 Z 语 言
验证 ( F o ma l V e r i i f c a t i o n ) 。形 式规 约是 用具 有 精确 语义 的数 学 语言 描述 程序 的 功能 ,它 是 设计和编写程序 的依据 。其 中典型的是基于状 态 的描 述方法,利用一些 已知特性 的数 学抽 象 ( 域 、元组 、集合、序列 、包 、映射等 )来 为 软件系 统的状 态特征和行为特征构造模 型。形 式验证与形 式规约之间有着密切 的联系 ,形式 验证就是验证 最终 的程序是否满足其规约 的要 求,这是形式化方法 重要的问题 。形式化方法 是用数学方法解决计 算机 科学研究和软件工程 中程序开发 问题 的工具,集合论、数理逻辑 、
据类型,这些类型构成 z语言的类型系统 ;而 操作抽象则描述 了在数据抽象 中所引入 的数据 代数理论、范畴论 、抽 象构造类型论等数学理 上的抽象算法与操作。在 z语 言中,表示抽象 论是形式化方法坚实 的理论基础 。 通 过类型定义、全局变量或常量 以及状态空间 在形 式化 描述 中,数据 抽 象和 过程 抽 象 声 明来进 行表述 ;操作 抽象通 过函数和基于一 是软件规格过程 中的两类重要抽象。数据抽象 阶谓 词逻辑 的操作来表述 。 又称为表示抽 象,是 利用 抽象的数据结构 ( 如 模式 ( s c h e ma ) 是 z语言的基本描述单位 , 关系、函数等 )来进 行功能性的描述 ,而不关 它从软件系 统的状态和状态之 间的转化 两个 方 心这些抽象数据结构在计 算机中是如何表示和 面来进行软件系统 的描述 。模式分为状态模 式 实现的;过程抽象是指忽 略任务具体完成的过 和操作模式 ,状态模式定义 了软件系统某一部 程 ,而只精确描述该任务所 要完 成的功能,即 分的状态空 间及其约束特性 ,它通过相应抽 象 描述 了从输入到输 出的映射 ,该映射的定义域 数据类型的变量 以及在它们上面所定义 的一些 和值域均使 用数据抽象来刻画 。 约束关系来进行描述;操作模式则描述系统某 2 . 3形 式化 方 法 的 分 类 部分的行为特征,通过描述在操作之前的该部 分的状 态值 与操作之后的该部分的状态值之间 根 据表 达 的方法 和 性 能,形 式化 方法 可 的关 系,来 定义该部分 的某种操作 的特性 。 以分为五类 : . 2 问题 简介 ( 1 )面向模 型的方法 :也称为基 于状态 4

软件 的需求规格 、 设 计和 实现 等。 使 用这 种描 述 方法 可 以帮助 开发 者发 现 软件 系统 的设 计、 实现和 程序 中的 问题 和缺 陷,能够较 好 的提 高软 件 系统的正 确 性和 可 靠 性。 本文 介 绍 了形 式化 方法 的基 本 内容 、分 类 以及应 用 等 方 面, 分析 了其思 想 和应 用 情况 ,以及 形 式化 方法在 软 件 工程 中的优 势 和可 靠性 ,并 列举 了一个 简单 的
S o f t wa r e D e v e l o p me n t・ 软件开发
浅析形式化描述 方法的应用
文/ 冯 松 军
形 式 化 方 是 一 种 使 用 严 格
的 数 学模 型 和 方法 准确 、抽 象、
规 范 地 描 述 和 验 证 软 件 系 统 的 行 为 和性 能 的方 法 ,其 中主要 包括
的形式方法 ,利用 一些 己知特性 的数学抽 象, 实 现一 个 多用户共 享使 用一 台计 算机 的 如集合 、序列 、映射等为 目标软件 的状态特征 机 制,每 一个 用户 必须 登录 并且 必须 要有 一 和行为特征构造模 型,如 z语言。 2 形式 化方法的介绍 个 口令 ( p a s s wo r d ) 。使用 Z语 言规格说 明一个 ( 2 )代 数方法 :通过分 析不 同操 作 间的 系 统 的登录 与验 证,必 须保 持注册 过 的用户 2 . 1形 式化 方法的含 义 行 为 关 系 给 出操 作 的 隐式 定 义 , 而不定义状态 , ( Re g i s t e r e d Us e r s ) 和他们 的 口令信 息,而 且必 支持描述的结构化 ,代数 方法仅 使用一阶逻辑 形 式化 方 法 ( F o r ma l Me t h o d )的基 本含 须跟踪 当前系统中登录的活动的用户。具体来 表示,如 OB J 语 言。 义是借助数 学的方法来研究计算机科学 中的有 说 就 是 描述 系 统 的 状 态 、注 册 一个 新 的 用 户 和 ( 3 ) ’ 基于 过程代 数方法 :给 出并发 过程 关 问题 。形式 化方法提供 了一个框架 ,在框架 口令 、已经注册过 的用户 的登录 、注销 一个用 的一个 显式模型 ,并通过过程 间的约束来表示 中可 以用数学 的方式开发和验证系统 。在软件 户 和 它 的 口令 ,注 意 为该 系 统定 义 的许 多 操作 行 为。 开发的全过程 中,凡是采用严格的数学语 言, 都 将 检 查 给 定 的用 户 是 否 已经 注 册 。 ( 4 ) 基 于 逻 辑 的 方 法 : 采 用 逻 辑 描 述 系 具有精确 的数 学语义 的方法,都可称为形式化 统 的特性 ,包 括程序行为 的低级规 范和系统行 4 . 3 给 定 类 型 的方法 。总之 ,形式化 方法是软件开发过程 中 为规 范,使用与所选逻辑相关 的公理系统证明 规格、设计及实现 的系统工程方法,是软件规 [ Us e r ] :用 户 的集 合 系统具有 预期 的性能。如时态逻辑 。 格 和验证 的方法 。而形 式化 的软件开发就是用 [ Wo r d ] :用户 口令的集合 ( 5 )基 于 网络 的方法 :根据 网络 中的数 形 式化语言来描述软件 的需求和功能,并通过 [ r e g d ] :已经注册 的用户 的集合 据 流显 式地 给 出系 统的 并发 模型 ,包括 数据 推 理验证来保证最终 的软件 系统实现了这些需 [ a c t i v e ] : 已经 登 录 的活 动 用 户 的 集 合 在 网 中从一 个结 点流 向另一 个结 点 的条件 。 求和 功能。形式化方法 的规格描述所 采用的形 如 P e t r i 网。 式化 描述 语言是严格 的数学语 言,其 语法和 语 义都 是无 二义的、精确 的, 目前形式化规格 描 3形式化方法 的评 论 述 语言主 要有 Z语 言、VDM 语 言等。因为 形 形 式化 方法 在 软件 开发 各阶段 的应 用 能
相关文档
最新文档