通过模型检查理解SIP
1. 形式模型的有效性与正确性
在形式模型中,有效性和正确性都至关重要。一个有效的模型需忠实于读者的需求和假设,而一个正确的模型则要符合其预期属性的形式规范。由于正确性是两个形式对象之间的关系,因此可以使用模型检查等技术进行形式验证。
本文中的模型旨在描述SIP,而非实现特定的用户目标,所以其外部规范较弱。对于简单模型,唯一的外部规范是每个对话都应结束,并且两个用户代理都应同意对话已结束。为了将这一属性形式化,在对话的期望结束状态下,两个布尔变量 endedc 和 endeds 为真。这两个变量用于线性时间时态逻辑公式:
32(endedc = true ∧ endeds = true)
该公式被称为稳定性属性,它表示在任何轨迹中,最终( 3 )会有一个点,从该点起变量断言在轨迹的其余部分始终为真( 2 )。Spin工具可以验证简单模型是否满足这一属性规范。
此外,在模型的可执行代码中穿插状态变量断言也是一种更有用的规范形式。每个断言都是一个规范,即在断言所在的控制点,断言的谓词必须始终为真。例如,在UAS的简单模型中,当发送 invSucc 消息时,布尔变量 acked 被设置为 false 。在UAS代码中,无论何时接收到 ack 消息,都会有一个断言表明 acked
超级会员免费看
订阅专栏 解锁全文
8

被折叠的 条评论
为什么被折叠?



