Page 21 - 《软件学报》2025年第4期
P. 21
杨晓 等: 复杂嵌入式系统需求一致性的组合验证方法 1427
表 3 机载侦查系统验证子系统架构组成 (续)
验证子系统 对应需求组 架构组成 验证子系统 对应需求组 架构组成
软件构件: 1个 软件构件: 1个
干扰处理单元断电控制 温度上报
(JPUPowerCloseControl) {8} 设备构件: 2个 (TemperatureReport) {18} 设备构件: 6个
连接件: 2个 连接件: 6个
软件构件: 9个 软件构件: 2个
信号电流控制 {1, 2, 3, 4, 超温保护
(WorkingCurrentControl) 5, 6, 7, 8, 9} 设备构件: 18个 (OverTempProtect) {18, 19} 设备构件: 8个
连接件: 34个 连接件: 9个
初始化 (Initialization) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 软件构件: 10个, 设备构件: 18个, 连接件: 39个
步骤 3: 可执行验证子系统模型生成. 根据 19 个验证子系统架构, 从领域设备知识库中获取设备 TA. 根据软
件构件以及输入的情景图生成软件构件 TA, 将设备 TA 与软件构件 TA 组合成 NTA 生成可执行验证系统模型集
合, 共包括设备 TA 模型 12 个, 软件构件 TA 模型 19 个. 这里以超温保护可执行验证子系统模型为例进行说明.
根据图 12, 首先从领域设备知识库中获取设备构件对应的设备 TA. 设备构件中有 6 个属于因果领域可以直接获
取对应 TA 模型如图 13(a)–(f) 所示, 两个属于词法领域没有 TA 模型. 接下来根据超温保护子系统架构中的两个
软件构件对应的情景图生成软件控制器 TA, 如图 13(g) 和 (h) 所示.
CRUTemperate! CRUTemperate! JPUTemperate! JPUTemperate!
CRU_workt=0,CRUcount=0 CRUSensorWorkingCurrentOpen? CRUcount==5 JPU_workt=0,JPUcount=0 JPUSensorWorkingCurrentOpen? JPUcount==5
CRUcount==5 CRU_workt<=1 CRU_workt<=1 CRU_workt=0,CRUcount=0 JPUcount==5 JPU_workt<=1 JPU_workt<=1 JPU_workt=0,JPUcount=0
CRUcount<5 CRUSensorOn JPUcount<5 JPUSensorOn
CRU_workt=0 CRUSensorOff CRUcount<5 JPU_workt=0 JPUSensorOff JPUcount<5
CRU_workt=0 CRU_workt=0 JPU_workt=0
CRUt-=5,CRUcount+=1 JPUt-=5,JPUcount+=1 JPU_workt=0
CRU_workt>=1 && CRUt>26 JPU_workt>=1 && JPUt>26
CRU_workt=0 CRUt+=2,CRUcount+=1 JPU_workt=0 JPUt+=2,JPUcount+=1
CRUcount+=1 JPUcount+=1
CRU_workt>=1 && CRUt<=26 CRUSensorWorkingCurrentClose? CRU_workt>=1 JPU_workt>=1 && JPUt<=26 JPUSensorWorkingCurrentClose? JPU_workt>=1
(a) 设备TA: CRUSensor (b) 设备TA: JPUSensor
SPUTemperate! SPUTemperate! ICUTemperate! ICUTemperate!
SPU_workt=0,SPUcount=0 SPUSensorWorkingCurrentOpen? SPUcount==5 ICU_workt=0,ICUcount=0 ICUSensorWorkingCurrentOpen? ICUcount==5
SPUcount==5 SPU_workt<=1 SPU_workt<=1 SPU_workt=0,SPUcount=0 ICUcount==5 ICU_workt<=1 ICU_workt<=1 ICU_workt=0,ICUcount=0
SPUcount<5 SPUSensorOn ICUcount<5 ICUSensorOn
SPU_workt=0 SPUSensorOff SPUcount<5 ICU_workt=0 ICUSensorOff ICUcount<5
SPU_workt=0 ICU_workt=0
SPUt-=5,SPUcount+=1 SPU_workt=0 ICUt-=5,ICUcount+=1 ICU_workt=0
SPU_workt>=1 && SPUt>26 ICU_workt>=1 && ICUt>26
SPU_workt=0 SPUt+=2,SPUcount+=1 ICU_workt=0 ICUt+=2,ICUcount+=1
SPUcount+=1 ICUcount+=1
ICU_workt>=1 && ICUt<=26
ICU_workt>=1
SPU_workt>=1 && SPUt<=26 SPUSensorWorkingCurrentClose? SPU_workt>=1 NoJamResult?
ICUSensorWorkingCurrentClose?
(c) 设备TA: SPUSensor (d) 设备TA: ICUSensor
JPUWorkingCurrentCloseCommandFormOP1!
JPUWorkingCurrentCloseCommandFormOP0?
DeviceDataLoadResult?
JPUWorkingCurrentOpenCommandFormOP1!
ReconnaissanceGuide TargetInfoDisplay JamStatusDisplay DCDJPUOff
JPUWorkingCurrentOpenCommandFormOP0?
Dataload_time<=20
DCDJPUOn
DCDSPUOff
DCD_Load=1
SPUWorkingCurrentCloseCommandFormOP0?
DeviceDataLoadResultDisplay TrapPolicy?
DataLib1! SPUWorkingCurrentCloseCommandFormOP1!
ReceivePolicy1! TrapPolicy1!
Dataload_time=0 DataLoad
ReceivePolicy? JamResult? DCDSPUOn
DataLib?
TargetInfo? Jam_state=1
SPUWorkingCurrentOpenCommandFormOP0?
DeviceDataLoadCommand1!
DeviceDataLoadCommand? SPUWorkingCurrentOpenCommandFormOP1!
TemperatureReport DCDCRUOff
TemperateDataToDCD?
CRUWorkingCurrentCloseCommandFormOP0?
TemperatureReportStoIns=1 DCDWork
SpectrumDisplay CRUWorkingCurrentCloseCommandFormOP1!
SpectrumDataSend? CRUWorkingCurrentOpenCommandFormOP1!
SpectrumSurveillanceStoIns=1 CRUWorkingCurrentOpenCommandFormOP0?
DeviceInitCommand1! DeviceInitCommand?
DCDCRUOn
Init_time=0
ICUWorkingCurrentCloseCommandFormOP1!
Init_time<=10 Jam_state=0 ICUWorkingCurrentCloseCommandFormOP0?
Init_state=1,DCD_Init=1
TargetDelete?
DeviceInitResult? JamProhibited?
JamAllowed1! TargetDelete1!
JamProhibited1! DCDICUOff
DeviceInitResultDisplay JamAllowed? JamStyle1!
TargetJamLib1! ICUWorkingCurrentOpenCommandFormOP1!
DeviceWorkingCurrentControlResult? JamStyle?
TargetJamLib? ICUWorkingCurrentOpenCommandFormOP0?
DeviceWorkingCurrentStatusDisplay
DCDICUOn
Device_state+=1
NoJamStatusDisplay
(e) 设备TA: DisplayControlDevice
图 13 验证子系统超温保护 NTA