Event-B
文章平均质量分 91
Campsisgrandiflora
记录下当前的学习内容,记录下当前的所思所想,书写与图画是为了更好地总结与思考,想做的事从现在开始就做,持之以恒地做一件事情,持续地学习与思考
展开
-
Event-B建模(九)——用Rodin手动证明
目录环境更改证明规则练习1前面我们用Rodin建模了各种各样的模型,想必大家都知道Rodin的自动证明器有时候是会出错的吧?有时候,在自动证明器无法证明的情况下,我们需要进行手动的证明环境更改我们现在用的是SMT自动证明器,那玩意儿太高级了,为了体验一下手动证明的感觉,我们要首先更改一下我们的环境,来到这个界面,点击new我们新建的这个证明环境命名为prp1,然后先把右边Loop On All Pending这个东西拖到中间然后左边的都是证明的方法,把这个Goal in Hypotheses原创 2021-05-11 13:35:10 · 2293 阅读 · 8 评论 -
Event-B建模(八)——文件传输协议
目录需求初始模型第一次精化这一次的建模与前面的实例有相当的不同之处,这里建模的是一个协议,并且我们在此次建模使用的精化属于一种时间方面的精化。需求首先来看看这个任务的需求文件传输协议是用一个代理方向另一个代理方传送一个顺序文件。接收到的文件应该和源文件相同顺序文件由一个数据项的序列文件需要以一个个片段的方式在站点之间传输整个协议相当于一个分布式程序初始模型第一次精化...原创 2021-04-28 18:22:17 · 1158 阅读 · 1 评论 -
Event-B建模(七)——冲压机控制器
目录需求分析初始模型第一次精化需求分析这一次我们要建一个冲压机的模型系统的整体结构如下图所示:该系统的需求为:首先定义了各种部件,电动机、离合器和安全门,中间有一个控制器控制着它们然后给出各个部件与控制器的连接方式定义系统的安全需求:最后离合器和安全门之间要增加更多的约束初始模型在初始模型中,我们摇号完成连接控制器和电动机初始模型如图所示:第一次精化...原创 2021-04-25 18:06:23 · 1623 阅读 · 1 评论 -
Event-B建模(六)——控制桥上汽车,精化
目录第一次精化状态的精化事件的精化第二次精化状态的精化事件的精化这篇的上一篇在这个地方Event-B建模(三)——控制桥上汽车,初始模型第一次精化在第一次精化时,我们要考虑的不再是桥岛组合体,而是要引入“桥”的概念,现在要考虑的模型如下图所示:因为多了“桥”这个概念,所以我们要考虑更多的事件,例如汽车进入或者离开小岛,称为IL_in和IL_out,而ML_out和ML_in在这次精化中依然存在,分别对应于汽车离开大陆上桥和离开桥进入大陆状态的精化在第一次精化时,我们让常量d保持原样,而变量使原创 2021-03-23 20:17:47 · 4010 阅读 · 17 评论 -
Event-B建模(五)——银行系统小例子
目录需求文档初始建模初始化不变量初始化变量定义open定义close定义deposit定义withdraw第一次精化第二次精化这章就用event-b建模一个小小银行系统,某些Rodin具体操作就不展示了,可以参看建模桥上的汽车需求文档我们要建立一个银行系统的模型,它的需求文档如下所示:说明标签这个系统包含账户(account)和人(person)ENV-1一个账户有余额(balance),余额是一个有上限的非负树ENV-2一个账户只有一个所有者(owner),原创 2021-03-22 15:53:59 · 3014 阅读 · 7 评论 -
Event-B建模(四)——Rodin平台使用及Event-B语言
目录Rodin基本操作Event-B表示法最近在做一些Event-B建模的事情,而Rodin平台使用的方法的中文说明实在太少,在各个模型建模时候,更想写一些建模的思路与需求文档分析方法,这里就总结一下Rodin平台的使用方法以及Event-B的语法结构Rodin基本操作Rodin基于Eclipse开发,所以基本操作和Eclipse差不多新建工程填写项目名称新建Event-B组件组件类型有Context(上下文)和Machine(机器),组件名字随便起,不过后面会有精化操作,可以从0开始原创 2021-03-18 17:57:52 · 5578 阅读 · 3 评论 -
Event-B建模(三)——控制桥上汽车,初始模型
目录需求文档分析新建工程状态的形式化事件的形式化安装完了Rodin,现在让我们开始动手验证吧~以一个控制软件为例,开启我们整个Event-B分析建模验证的过程需求文档现在有这么一座岛屿Island,有一座桥(Bridge)连通着大陆(Mainland)与这座小岛,而我们的系统主要功能是实现对桥上汽车的控制。在这里我们的需求文档有两类需求,一些需求与控制器的功能有关,我们标记为FUN(Function的缩写),另一些与环境有关,标记为ENV(Environment的缩写)。(和软件功能直接相关的原创 2021-03-10 15:08:06 · 4864 阅读 · 21 评论 -
Event-B建模(二)——Rodin安装,插件安装
目录步骤1:下载步骤2:安装和运行步骤3:插件安装步骤1:下载可以去wiki找到下载的地址https://wiki.event-b.org/index.php/Main_PageRodin提供了windows,mac,linux的版本,选择对应版本将压缩包下载到电脑上步骤2:安装和运行将压缩包解压到合适的位置,然后打开rodin.exe,即可运行rodin因为是基于eclipse平台开发的IDE,所以操作起来和eclipse差不多我们打开个项目看看左边是项目树结构,中间是编写代码的原创 2021-01-31 22:43:52 · 5151 阅读 · 4 评论 -
Event-B建模(一)——概念与基础
目录Event-B是什么?Event-B形式化验证过程Event-B的辅助工具Event-B的特点前置知识形式化是什么?参考资料Event-B是什么?Event-B是一种用于系统级别的建模和分析的形式化方法Event-B形式化验证过程首先根据系统的需求文档(requirements document),使用event-b建模语言将系统建模为一个抽象离散模型(model),在模型中也刻画了对应组件需要满足的性质,因为在模型状态变化过程中,模型的某些组件可能无法满足全局的性质,这时候会产生一些需要证明原创 2021-01-30 21:51:53 · 3233 阅读 · 0 评论