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

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


         其整体框架如图 3 所示.验证 Ptolemy DE 模型分为转换模型和形式化验证两部分.
             •   在模型的自动转换阶段,将 Ptolemy DE 模型和根据模型提取的属性验证公式作为输入,首先对 Ptolemy
                DE 模型进行解析,获得各个组件的结构信息;然后根据定义的映射规则,将各个组件转换为对应的时
                间自动机;最终,将时间自动机与属性验证公式共同构成一个可进行验证的时间自动机网络结构;
             •   将内存中的时间自动机网络结构输出文件,即可调用 Uppaal 验证引擎进行验证.

                                                翻译模型
                                               映射规则库

                                                                              形式化验证
                    Ptolemy DE  解析离散
                      模型      事件模型     各个组件的     映射             可用于验证的         调用Uppaal
                                       结构信息                     时间自动机          验证引擎
                                                                 网络结构          进行验证
                     属性验证                            各个组件
                      公式                     属性验证     对应的
                                               公式    自动机结构

                                  Fig.3    Framework of verifying Ptolemy DE model
                                     图 3   验证 Ptolemy DE 模型的整体框架
         4.2   Ptolemy DE模型验证实现

             算法 2 是 Ptolemy DE 模型自动化转换的伪代码,以 Ptolemy DE 模型和属性验证公式为输入/输出一个时间
         自动机网络结构.第 4 行获取 Ptolemy DE 模型中的组件.第 5 行~第 8 行将各个组件转换为时间自动机,并保存
         到 beans 中.第 6 行 getAByRule(A)是组件转换的核心函数,其过程是:首先,根据组件类型读取模板库中对应的模
         板文件;然后,通过获取组件 A 中的参数、接口,生成对应的声明字符串;进而对获取的模板文件中的字符串进行
         替换,从而实现根据模板文件生成一个完整的时间自动机.第 9 行表示将各个时间自动机和属性验证公式一起
         构成可用于形式化验证的自动机网络结构.

             算法 2. Translation of Ptolemy Discrete Event Model.
             1:   Input: TP model, Formula;
             2:    Output: Network of automata.
             3:   bean←∅
             4:   actorArr←parse(TP model)
             5:   for each actor A in actorArr do
             6:      bean←getAByRule(A)
             7:      bean.add(bean)
             8:   end for
             9:   Network←getCode(beans,Formula)
             10: return Network

             图 4 是调用插件的界面,在 Output Type 中选择输出
         可进行形式化验证的时间自动机文件或者直接进行验
         证,在 Temporal Formula 中输入属性验证公式,在 Terminal

         中返回验证结果.
                                                          Fig.4    Interface of verifying Ptolemy DE model
                                                          图 4   调用自动化转换插件及验证引擎的界面
   260   261   262   263   264   265   266   267   268   269   270