33、基于合约的控制集成到软件系统

基于合约的控制集成到软件系统解析

基于合约的控制集成到软件系统

1. 定时交互不变量

静态交互不变量能确保每当有人访问 Web 服务器时,控制器会被激活。在此基础上进行自然扩展,加入时间约束,即不仅要保证某件事会发生,还要设定其必须发生的截止时间,这类约束被称为定时交互不变量。它通过定量时间对静态交互不变量进行了扩展。

以下公式为从新的访问日志记录开始,为控制器激活添加了 6 秒的截止时间(5 秒是初始调度周期):

□( log activate →(♦in<6seconds utilController activate))

在 FCDL 中表示为:

temp inv loopLivenessWithDeadline =
[] (activate@server.log -> <>(in < 6.seconds) activate@server.adaptor)

同样,我们可以跟踪单个组件的进度。例如,要确保无论 Web 服务器活动如何,控制器至少每 6 秒触发一次:

temp inv controllerLiveness =
[] (<>(in < 6.seconds) activate@utilController)

与静态交互不变量不同,定时不变量仅在运行时进行验证。其实现基于 Stolz 和 Bodden

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值