Page 271 - 《软件学报》2021年第6期
P. 271

陆芝浩  等:Ptolemy 离散事件模型形式化验证方法                                                     1845


             Pgrn 和 Cgrn 分别是定义的表示行人交通灯绿灯和车辆交通灯绿灯亮灭的参数.当该属性满足时,证明系统
         不存在车辆交通灯和行人交通灯同时为绿的情况.
             (3) A[⋅](Decision.AbNormal imply!TrafficLight.normal)
             AbNormal 是异常生成器 Decision 中表示出现异常的状态,当系统出现异常时,交通灯控制器 TrafficLight
         不能处于 normal 状态.如果该属性满足,则证明当系统出现异常时,交通灯控制器 TrafficLight 处于异常状态.
             (4)  A[⋅](Decision.AbNormal  imply(Pgrn==0 and  Pred==0 and  Cgrn==0 and  Cred==0 and (Cyel==0 or
         Cyel==1)))
             Decision 处于 AbNormal 状态时,表示系统出现异常,此时,Pgrn,Pred,Cgrn 和 Cred 的值都为 0,Cyel 的值在 0
         和 1 之间交替变换.如果该属性满足,则证明当系统出现异常时,只有指示车辆暂停行动的黄灯闪烁,其他灯灭.
             (5) A[⋅] not deadlock
             该属性验证公式用于验证系统中是否存在死锁.
             表 1 是上述验证公式详细的验证情况,当时间自动机模型中有不满足的属性时,Uppaal 验证引擎可以返回
         异常路径.
                                      Table 1  Details of verifying formulas
                                           表 1   属性公式验证消耗
               验证公式     验证费时(s)   Kernel 费时(s)  总费时(s)  常驻内存(KB)  虚拟内存的使用峰值(KB)      验证结果
                 (1)       0          0        0.003     6 804          26 228        满足
                 (2)       0          0        0.004     6 892          26 216        满足
                 (3)       0          0        0.042     6 930          271 251       满足
                 (4)       0          0        0.045     7 012          280 134       满足
                 (5)      81.62      0.218    82.751    137 340         284 156       满足
         6    相关工作

             在模型驱动开发过程中,模型从各个角度对系统进行了描述                     [10] ,是早期对可靠性进行分析的一个重要环节.
         然而,工业界建模工具中的模型通常缺乏形式语义,无法进行形式验证,所以研究人员采用模型转换的思想                                    [11,12] ,
         在保证语义一致的基础上,将构建好的模型转换为可以进行验证的形式化模型,如将 UML,AADL,Yakindu
         statecharts,POOSL,TASM 或者 Simulink 构建的模型转换为一种形式化模型,进而实现验证.北京大学的研究团
         队提出了 UML 到 Markov 链的语义转换,通过在 UML 的用况图、活动图、顺序图、构件图中加入可靠性相关
         的信息,构造出整个系统的构件转移图;根据系统的构件转移图,并结合构件图中描述的单个构件的可靠性,最
         终构造出用于可靠性分析的 Markov 链          [13] .空中客车公司的 TOPCASED 项目提出了 AADL       [14] 到中间语言 Fiacre
         的语义转换,主要给出了线程执行和通信的转换原理,所关注的研究子集和转换规则采用自然语言进行描述                                      [15] .
         法国 IRIT 实验室采用动作时序逻辑描述语言 TLA+对 AADL 执行模型的部分语义做了初步研究,包括端口通
         信、共享变量的构件间通信、抢占式调度策略以及模式的语义.这是 AADL 语义形式化的最早研究工作,其转
         换规则主要以语义函数的方式给出,但 TLA+的模型检测工具 TLC 的验证能力较弱                         [16] .伊利诺斯理工大学的研
                                                                     [9]
         究团队提出了 Yakindu statecharts 到时间自动机模型的相关转换、验证工作 ,并给出了判断转换前后模型一致
         性的条件以及验证属性不满足时追溯原模型中路径的方法;该团队还提出了将 Stateflow 模型转换为时间自动
         机模型,进而使用 Uppaal 进行验证的方法           [17] .特文特大学的研究团队提出了一种将简化了的运动控制系统的
                                            [8]
         POOSL 模型转换为时间自动机模型的方法 ,并验证了其功能行为和最坏情况下的延迟.北京航空航天大学的
         研究团队给出了 TASM 到时间自动机模型地转换语义,并开发了一个自动转换工具                            [18] ,通过 atlas 转换语言,将
         TASM 转换为时间自动机模型,进而进行相关的形式化验证工作.以色列的某研究团队设计了一个转换验证工
         具 TVS,将 Simulink 模型转换成优化的 C 代码        [19] ,并重点介绍各种技术问题,比如特征不变量的自动生成.中国
         科学院软件研究所的研究团队提出了将 Simulink/Stateflow 图形模型转换成 HCSP 形式模型的方法,并使用
         HHL 及其定理证明器形式化验证了转换后的形式模型                   [20] .清华大学的研究团队提供了使用时间自动机描述和
         验证多时钟系统的方法         [21,22] .
   266   267   268   269   270   271   272   273   274   275   276