0 引言
1 Petri网基本概念
2 导弹作战流程建模
2.1 导弹作战流程说明
2.2 导弹作战流程Petri网建模
表1 库所、变迁的意义说明 |
| 库所 | 意义 | 变迁 | 意义 |
|---|---|---|---|
| s1 | 战前准备好 | t1 | 作战系统准备 |
| s2 | 等待目标 | t2 | 接收目标信息 |
| s3 | 获得目标信息 | t3 | 目标信息处理 |
| s4 | 目标信息确认 | t4 | 火力分配 |
| s5 | 攻击方式确认 | t5 | 判定目标在可攻击区 |
| s6 | 目标可攻击 | t6 | 判定目标不在可攻击区 |
| s7 | 弹道规划完毕 | t7 | 弹道规划特征点计算 |
| s8 | 导弹等待击发 | t8 | 发射参数计算并装定 |
| s9 | 导弹飞行 | t9 | 导弹击发 |
| s10 | 指挥系统和观瞄 设备准备就绪 | t10 | 命中目标 |
| s11 | 等待指挥系统信息 | 进行协同作战 | |
| s12 | 等待观瞄设备信息 | 进行独立作战 | |
| s13 | 发现目标 | 指挥系统传递信息 | |
| 射手 | 观瞄设备传递信息 |
3 导弹作战流程测试用例生成
表2 测试序列生成算法 |
| 功能:生成测试序列集合,覆盖可达标识链表 | |
|---|---|
| Input:可达标识链表 | |
| Output:测试序列集合,测试序列数 | |
| 1) | 建立堆栈Stack,链表根节点M0入栈 |
| 2) | while 存在未覆盖变迁 do |
| 3) | while 栈顶节点及后续节点存在未覆盖变迁 do |
| 4) | if 栈顶节点有未覆盖变迁 then |
| 5) | 未覆盖变迁后置节点入栈,标记变迁为已覆盖 |
| 6) | else 已覆盖变迁后置节点入栈 |
| 7) | end if |
| 8) | if 栈中存在重复节点then, |
| 9) | break |
| 10) | end if |
| 11) | end while |
| 12) | 将栈中素保存为测试序列,测试序列数加1 |
| 13) | 重复出栈操作,直至栈中只留根节点M0 |
| 14) | end while |