Page 22 - 《软件学报》2025年第4期
P. 22

1428                                                       软件学报  2025  年第  36  卷第  4  期



                                                                   ICUSensorWorkingCurrentOpen!ICUDataLoadCommand?
                             It>=5  I_time=0  ComOn      I_time<=3  ICUWork          DataLoad  ICUDataLib?
                          It<=5
                               It<=5  ICUSensorWorkingCurrentClose!  It=0
                    ICUOpenPulse?
                               AutoOn   I_time=0   It>=5  I_time>=3  It=0         ICU_Load=0
                     It=0  I_time>=3                                                    2
                                  ICUSensorWorkingCurrentOpen!  AutoOff  ICUClosePulse?
                         It=0
                                    I_time=0  It>=5   It<=5
                          ICUOff                         8  ComOff      ICUDataLoadResult!  ICU_Load=1
                          I_time<=3  It>=5  I_time=0  ICUSensorWorkingCurrentClose!  It<=5
                                                   (f) 设备TA: IntegrateControlUnit
                      ICUTemperate?  JPUTemperate?  ICUWorkingCurrentOpenCommandFromOTPSend=1  SPUWorkingCurrentOpenCommandFromOTPSend=1
                                                                   ICUOpenPulse!
                                                                   ICUAutoOn           SPUAutoOn
                                           CRUTemperateRead?  ICUt<=75  JPUT  end1  SPUt<=75    end2
                                                    CRUT    ICUt<120  ICUt>75  SPUt<120  SPUt>75
                    CRUTemperate?  SPUTemperate?
                                            SPUT                   L1                  L2
                                                JPUTemperateRead?
                                                           ICUt>=120  ICUAutoOff  SPUt>=120  SPUAutoOff
                           TR_time<=5
                                                                   ICUClosePulse!
                                                                           SPUWorkingCurrentCloseCommandFromOTPSend=1
                            TemperateDataToDCD!    ICUWorkingCurrentCloseCommandFromOTPSend=1
                               TR_time=0           JPUWorkingCurrentOpenCommandFromOTPSend=1  CRUAutoOff
                                                                                        CRUt>=120  CRUt<120
                                           SPUTemperateRead?        JPUAutoOn
                                                                           CRUWorkingCurrentCloseCommandFromOTPSend=1
                                                  OTP               JPUt<=75
                                            ICUT                                              L3
                       TR_time>=5                            JPUt>75  JPUt<120       CRUt>75
                      TemperateDataSend!
                                                       end4                 end3
                                           ICUTemperateRead?  JPUAutoOff  JPUt>=120  CRUAutoOn  CRUt<=75
                                                   JPUWorkingCurrentCloseCommandFromOTPSend=1  CRUWorkingCurrentOpenCommandFromOTPSend=1
                         (g) 软件构件TA:                         (h) 软什构件TA: OverTempProtect

                        TemperatureReport
                                              图 13 验证子系统超温保护        NTA (续)

                    接下来对超温保护可执行验证子系统模型进行模型声明、变量和信道声明以及变量初始化. 使用                                  system  关
                 键字进行模型声明, 使用       chan  关键字声明信道, 使用     int 对整型变量进行声明. 最终包含        7  个模型声明, 26  个信道
                 声明, 5  个时钟变量, 8  个整型变量. 具体声明情况如表          4  所示.

                                        表 4 验证子系统超温保护可执行验证系统声明情况

                  声明                                         声明变量
                 模型声明 system OverTempProtect, TemperatureReport, JPUSensor, CRUSensor, ICUSensor, SPUSensor, DisplayControlDevice
                        chan JPUTemperate, JPUSensorWorkingCurrentOpen, JPUSensorWorkingCurrentClose, CRUTemperate,
                        CRUSensorWorkingCurrentOpen, CRUSensorWorkingCurrentClose, ICUTemperate, ICUSensorWorkingCurrentOpen,
                        ICUSensorWorkingCurrentClose, SPUTemperate, SPUSensorWorkingCurrentOpen, SPUSensorWorkingCurrentClose,
                        ICUTemperateRead, ICUWorkingCurrentOpenCommandFromOTPSend, TemperateDataToDCD,
                 信道声明 ICUWorkingCurrentCloseCommandFromOTPSend, CRUTemperateRead, TemperateDataSend,
                        CRUUWorkingCurrentOpenCommandFromOTPSend, CRUWorkingCurrentCloseCommandFromOTPSend,
                        SPUTemperateRead, SPUWorkingCurrentOpenCommandFromOTPSend, JPUTemperateRead,
                        SPUWorkingCurrentCloseCommandFromOTPSend, JPUWorkingCurrentOpenCommandFromOTPSend,
                        JPUWorkingCurrentCloseCommandFromOTPSend
                        clock TR_time, ICU_workt, CRU_workt, SPU_workt, JPU_workt;
                 变量声明
                        int ICUt, CRUt, SPUt, JPUt, ICUcount, CRUcount, SPUcount, JPUcount

                    步骤  4: 一致性验证与不一致定位. 对于生成的一组可执行验证系统模型, 使用                      UPPAAL  工具进行一致性验
                 证. 使用  TCTL  撰写一致性验证性质. 针对嵌入式系统中可能存在的设备调度冲突, 使用的性质模板为“A[] not 模
                 型  a. 状态  m and 模型  b. 状态  n”对每个设备生成相应的性质描述, 放入        UPPAAL  工具进行验证. 本案例有该类待
                 验证性质   10  条.
                    这里以超温保护可执行验证子系统模型为例, 说明一致性验证过程. 验证系统是否存在设备调度冲突, 其中涉
                 及一条一致性性质“A[] not OverTempProtect.ICUAutoOff and not IntegrateControlUnit.AutoOn”, 该性质验证是否存
                 在超温保护在温度过高时关闭           ICU  和  ICU  定时自动开关之间是否存在调度冲突, 验证结果为“不满足”. 通过不一
                 致性定位, 由于其他依赖需求没有问题, 则推出              OverTempProtect 存在不一致问题. 其他可执行验证子系统模型的
                 验证结果综合如后文表        5  所示.

                 5.2   方法评估
                    方法评估的目的就是要回答如下两个问题: 1) 本方法是否能够减少复杂嵌入式系统需求的验证状态空间?
   17   18   19   20   21   22   23   24   25   26   27