Model Checking(模型检测)

1. Definition

给定一个系统和一个我们期待拥有的属性P, Model checking 会探索这个系统的每个状态,验证系统是否满足定义的性质。如果满足直接返回True,否则会给出一个反例(counter example)。如果系统被证明是正确的,说明该系统的所有的行为都已经被探索并满足了所定义的规约。

Advantages: (1)这是一个完全自动的过程,不需要测试有专业的数学方面的知识;(2)当设计不满足所期待的属性时,model checking会产生一个反例展示违反的属性。这个faulty trace提供了一个无价的见解帮助我们理解falure,并作为一个重要的线索帮助我们修复/解决问题。

2.Motivation

How to ensure the correctness of a design?

3. Traditional validation methods

(1) Testing

将被测系统当作一个黑盒,给予输入到系统本身,然后观察系统得输出,如果所有的输出结果符合预期的话,就通过测试。(作用于实际的系统)

Model Checking(模型检测)_第1张图片

 (2) Simulation

给予输入到原型系统,然后观察对应的输出(作用于模拟的系统或者系统的抽象)

Limitation:上述的两种方法没有办法证明系统正确性,只能发现了问题。

(3) Reasoning and deducation

使用数学的方法去证明系统的正确性

Limitation:不能够自动,很难处理复杂的系统,对测试人员要求比较高

4. How does it work?

(1) General framework

Model Checking(模型检测)_第2张图片

(2) Modeling Language — Petri Net

Model Checking(模型检测)_第3张图片

 (3) Formula Language — LTL;CTL

(a) LTL concepts

Model Checking(模型检测)_第4张图片

 (b) LTL 模型检测框架

Model Checking(模型检测)_第5张图片

 4. Weakness or Problem?

Model Checking(模型检测)_第6张图片

 

你可能感兴趣的:(Software,Engineering,软件工程)