关键词:
形式化方法
CBTC
轨旁系统
Event-B
SCADE
建模与验证
精化
切片准则
Rodin平台
摘要:
基于无线通信的列车自动控制系统(Communication based train control, CBTC)是新一代轨道信号系统。CBTC发车间隔短、轨道负荷大、运行平稳,大幅提高了城市公共交通的运载能力。为了应对日益严峻的城市交通问题,中国正加紧建设CBTC轨道信号系统。其中,轨旁系统是CBTC系统中安全需求最高的子系统之一。在实际情况中,一旦轨旁系统出现问题,会导致列车脱轨、碰撞等极为恶劣的后果。因此,在轨旁系统的开发过程中,保障系统安全性是极为重要的一环。然而,由于轨旁系统中的物理环境和系统行为比起传统轨道系统更为复杂,在验证系统安全的过程中极易产生状态爆炸问题。这使得轨旁系统的建模与验证工作困难重重。传统的开发方法没有引入降低模型复杂度的方法,显然不能满足大型系统的建模与验证需求。因此,在对轨旁系统进行建模与验证研究之前,我们必须考虑:如何降低模型的复杂度;如何对模型中的状态迁移进行划分;如何对系统的状态空间进行约减等一系列问题。同时,我们必须保证划分、约减后的模型与原模型之间的一致性。除此之外,我们必须定义并证明模型划分方法中的一些定理,使得划分后的模型能够在形式化方法的演绎系统中进行推理证明。在轨道信号系统建模领域中,Event-B方法和安全关键软件开发环境(Safety critical application development environment, SCADE)是主流的形式化方法,具有广阔的工业应用前景。由于大型系统中往往涵盖着复杂的状态迁移,所以对大型系统建模不能够一蹴而就。基于Event-B方法,我们能够在系统级直观地描述一个大型系统的所有行为,并且保证这些行为满足安全需求。通过Event-B方法的精化方法(refinement)我们能够逐步地引入系统的状态变量并强化模型中的事件约束,使模型逐步逼近实际的系统行为。同时,通过Event-B证明义务我们能够保证在不同精化层下,模型之间的状态变量保持一致。在安全关键软件的软件级开发过程中,基于SCADE方法,我们可以实现从模型设计、仿真、证明到自动代码生成的完整软件开发生命周期。基于该方法开发的软件具有较高的系统安全性,同时具备较好的可维护性。本文在Event-B精化方法的基础上,提出了模型的划分精化范式。该方法能够有效地降低模型的复杂度,使得状态空间约减后的模型能够被自动证明。首先,我们提出该方法的语法定义,图形描述以及推理演算规则。然后,对划分精化的证明义务进行了推理和证明,从而保证数学模型在约减前后状态的一致性。基于该范式,我们还提出了对大型系统的精化、划分、分解的迭代开发范型。为了实现该开发范型的自动化迭代,我们基于Event-B的建模平台Rodin开发了模型划分精化的插件。基于SCADE方法,我们提出了SCADE模型的切片准则,从而分割模型的状态变量空间。首先,我们给出切片准则的LUSTRE语法定义、基于时钟的数据流(data flow)的表达式以及相应的数学方程。通过对模型的状态空间进行切分,我们能够有效地解决SCADE模型在安全性质验证过程中的空间爆炸问题。最后,我们提出了基于CBTC的轨旁系统的形式化建模精化与验证方法。通过划分精化范式及插件实现,我们能够将轨旁系统的Event-B模型分解为低耦合的子模型,并在Rodin平台中完成轨旁系统安全性质的证明。在轨旁系统的软件开发过程中,我们基于SCAD E方法实现了模型驱动开发。通过SCADE运算符,我们形式化地描述了轨旁系统的物理环境和移动授权运算模块中的主要行为。为了防止状态空间爆炸问题,我们应用本文提出的切片准则对模型中的状态空间进行分解。最后,在Design Verifier工具中我们证明了约减后的SCADE模型的安全性质。