[uppaal笔记] uppaal介绍-以fischer互斥demo和一个imply规约为例

#软件验证 #verification #uppaal #自动机

  • 2024-07-16
  • 5000+字

叠甲

和Nuxmv一样,也是临时做作业,学了几天,有了一点点体会,如果表达不当或者有错误,万望读者指出🥹
同样的,写作的出发点,一同样是中文互联网的资料太少,而该工具其实很实用,所以写出来降低新使用者的成本;二是"沉淀"下自己的使用体会(互联网黑话就是不一样)。

UPPAAL简介

  • UPPAAL:
    UPPAAL是一个用于建模、模拟和验证实时系统的集成环境。
    它基于时序自动机理论,提供了易用的图形化界面,支持系统建模、属性规约、模型检查等功能。
    官网:https://uppaal.org
    手册/Reference:GUI Reference :: UPPAAL Documentation

  • UPPAAL的主要特点包括:

  1. 提供直观的GUI界面
  2. 支持时间约束、同步通信等复杂机制
  3. 集成了模型检查器,可验证系统是否满足特定属性
  4. 提供仿真和调试功能,帮助理解系统行为
  5. 可扩展的框架,支持多种分析算法和工具
  6. 使用UPPAAL,开发人员可以构建时序自动机模型,并对其进行全面的形式化分析和验证,从而提高实时系统的可靠性和正确性。UPPAAL在嵌入式系统、协议设计、硬件电路等领域都有广泛应用。

安装 & 使用

在UPPAAL的官网里很容易找到下载链接,基于JVM,作者们实现了多平台的发布。
因为JRE环境要求是Java11及以上,所以我感觉直接安装【Includes Java】的版本比较方便。
运行还需要license,license 申请得去veriall.dk这个链接这里发邮件,研究性目的、学校邮箱、研究机构一般很快就有回复。

打开以后,GUI大概是这样,还挺漂亮的↓

我想到一个类比的方式来介绍这个项目目录的作用:

  1. 第一个【声明】文件,这里是一个全局作用域的声明和定义区。
  2. 下面这个【Template】以及Template里的子【声明】,是一个名为【Template】的状态机和该状态机局部所有的对象和声明。
    • 可以类比为一个Java对象,以及他的成员变量
  3. 最后的【模型声明】类似C/Java里的main方法,就是启动项目、模拟项目前需要做的代码声明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值