目录

机轮刹车系统安全性验证框架

项目概述

本项目实现了一套完整的一体化机载软件安全性验证框架,以机轮刹车系统(Wheel Brake System, WBS)为案例,覆盖从原始功能需求到最终排序测试用例的完整验证流程。

核心流程

原始功能需求 → 安全性需求生成 → 模型扩展 → 测试用例生成 → 优先级排序
     ↓              ↓              ↓            ↓             ↓
  wbs_input    TKF-SRG      SGSEXT       SA-STCG       ATRL-TCP

四大核心模块

模块名称 功能描述 输入 输出
TKF-SRG 安全性需求生成 原始功能需求JSON 标准化安全性需求JSON
SGSEXT 安全性模型扩展 原始状态图 + 安全性需求 扩展状态图JSON
SA-STCG 测试用例生成 扩展状态图JSON 安全性测试用例JSON
ATRL-TCP 测试用例优先级排序 测试用例JSON 排序后执行序列

目录结构

数据集及源码/
├── 01-安全性需求生成/          # TKF-SRG模块
├── 02-安全性建模/              # SGSEXT模块
├── 03-安全性用例生成/           # SA-STCG模块
├── 04-安全性测试用例排序/        # ATRL-TCP模块
├── 05-端到端集成/              # 一体化集成模块
└── README.md                   # 本文档

01-安全性需求生成 (TKF-SRG)

模块介绍

TKF-SRG (Text-to-Knowledge Framework for Safety Requirements Generation) 负责从原始功能需求中挖掘安全性需求,是整个验证流程的起点。

核心算法

  • D-S证据理论: 用于过滤跨工况规则幻觉
  • RAG检索增强生成: 结合知识库生成安全性需求
  • Z3形式化验证: 逻辑自洽性校验

目录结构

01-安全性需求生成/
├── Baseline/                           # 基线方法对比实验
│   ├── Corrective_RAG.py             # 修正型RAG
│   ├── GraphRAG.py                   # 知识图谱RAG
│   ├── Self-RAG.py                   # 自反思RAG
│   ├── group_a_direct.py              # 直接生成(无RAG)
│   ├── group_b_standard_rag.py        # 标准RAG
│   └── main_evaluation.py            # 评估主程序
│
├── case_study/                        # WBS案例分析
│   ├── wbs_input.json                # ⭐ TKF-SRG输入:原始功能需求
│   ├── wbs_output.json               # ⭐ TKF-SRG输出:安全性需求
│   ├── wbs_case_demo.py              # 案例执行演示脚本
│   ├── scenario1_ds_hallucination_demo.py  # D-S幻觉检测演示
│   ├── scenario2_logic_conflict_demo.py    # 逻辑冲突检测演示
│   └── scenario3_knowledge_boundary_demo.py # 知识边界演示
│
├── data/                              # 数据资源
│   ├── raw_documents/                # 原始文档
│   │   ├── DO-178C.docx              # DO-178C适航标准
│   │   ├── database.json             # 历史故障数据库
│   │   ├── fault_modes_source.json   # 故障模式来源
│   │   └── safety_criteria_source.json # 安全准则来源
│   ├── processed_json/                # 处理后的数据
│   │   ├── fault_nodes.json          # 故障节点
│   │   ├── fcs_requirements.json     # 飞控系统需求
│   │   └── sac_guideline_nodes.json  # 安全准则节点
│   └── 净化后数据/                    # 净化后的测试数据
│
├── data_pipeline/                     # 数据处理流水线
│   ├── pipeline_orchestrator.py       # 流水线编排器
│   ├── entity_extractor.py            # 实体提取器
│   ├── terminology_manager.py         # 术语管理器
│   └── cnl_formatter.py              # 受控自然语言格式化
│
├── knowledge_base/                     # 知识库管理
│   ├── vector_manager.py             # 向量存储管理
│   ├── graph_manager.py              # 知识图谱管理
│   ├── sparse_manager.py             # 稀疏检索管理
│   └── db_orchestrator.py            # 知识库编排器
│
├── retrieval/                         # 检索模块
│   ├── fusion_engine.py              # 多路召回融合引擎
│   └── hybrid_retriever.py           # 混合检索器
│
├── uncertainty/                       # 不确定性量化
│   ├── ds_combiner.py                # D-S证据组合器
│   ├── bpa_mapper.py                 # 基本概率分配映射
│   └── keup_efhi_filter.py           # 知识不确定性过滤
│
├── verification/                      # 形式化验证
│   ├── z3_solver.py                  # Z3求解器封装
│   └── nl2ltl_translator.py         # 自然语言到LTL翻译
│
├── generation/                        # 生成模块
│   ├── prompts.py                    # 提示词模板
│   ├── adversarial_orchestrator.py   # 对抗性编排器
│   ├── red_team.py                   # 红队攻击模块
│   └── blue_team.py                  # 蓝队防御模块
│
├── main.py                           # 主程序入口
├── evaluate.py                        # 评估脚本
├── build_index.py                     # 构建索引
├── requirements.txt                   # 依赖清单
└── 项目代码说明.tex                    # 项目说明文档

核心文件说明

文件 作用 关键类/函数
wbs_case_demo.py WBS案例端到端演示 WBSTKFSRGExecutor
wbs_input.json 原始功能需求输入 5条功能需求
wbs_output.json 安全性需求输出 5条SR + 实体字典
uncertainty/ds_combiner.py D-S证据融合 DSCombiner.combine()
verification/z3_solver.py 逻辑一致性验证 Z3Solver.verify()

TKF-SRG输出示例

{
  "generated_safety_requirements": [
    {
      "sr_id": "WBS-SR-001",
      "cnl_description": "在机轮起转阶段,若轮速低于地速80%且持续超过3秒...",
      "guard_conditions": ["wheel_speed < 0.8 * ground_speed", "duration > 3s"],
      "dal_level": "A"
    }
  ],
  "entity_dictionary": {
    "signal_variables": {"轮速": "wheel_speed", "地速": "ground_speed"}
  }
}

02-安全性建模 (SGSEXT)

模块介绍

SGSEXT (Safety Graph Extension) 基于TKF-SRG生成的安全性需求,对原始功能状态图进行安全性扩展,补充安全路径与节点。

核心算法

  • 显隐混合推理: 隐式拓扑搜索 + 显式结构化解码
  • 三重校验闭环: 格式检查、图连通性检查、时序冲突检查
  • 逆向反馈修复: 带错修正与螺旋式迭代修复

目录结构

02-安全性建模/
├── case_study/                        # WBS案例
│   └── wbs_extension.py               # ⭐ WBS扩展流水线
│
├── data/                              # 状态图数据
│   ├── wbs_original.json              # ⭐ 原始状态图(9状态)
│   ├── wbs_extended.json             # ⭐ 扩展状态图(12状态)
│   ├── wbs_safety_requirements.json   # 安全性需求输入
│   ├── base_data.py                  # 基础数据处理
│   └── State_Original_Test.jsonl      # 状态测试数据
│
├── model/                             # 模型定义
│   ├── hybrid_model.py                # 显隐混合推理模型
│   └── two_stage_sft.py              # 两阶段监督微调
│
├── validator/                          # 验证模块
│   ├── validator_with_repair.py       # 带修复验证器
│   ├── schema_check.py               # 格式字段检查
│   ├── graph_check.py                # 图连通性检查
│   ├── timing_check.py               # 时序冲突检查
│   └── llm_repair.py                 # LLM修复模块
│
├── Purification/                       # 数据净化
│   ├── cot_purifier.py               # CoT净化
│   ├── entropy_calculator.py          # 熵计算
│   └── trace_discretizer.py          # 轨迹离散化
│
├── Baselines/                          # 基线方法
│   ├── icot/                         # 隐式链式推理
│   ├── codi/                         # 连续离散混合
│   ├── coconut.py                     # 隐式CoT
│   ├── Direct_Answering.py           # 直接回答
│   ├── Explicit_CoT.py               # 显式CoT
│   ├── OutcomeReward.py              # 结果奖励
│   └── ProcessReward.py             # 过程奖励
│
├── inference.py                        # 推理入口
├── inference_with_repair.py           # 带修复推理
├── serializer.py                      # 序列化工具
├── main.py                            # 主程序
├── SGSEXT_框架说明文档.tex             # 框架说明
└── README.md                          # 模块说明

核心文件说明

文件 作用 关键类/函数
wbs_extension.py WBS扩展流水线 WBSExtensionPipeline
wbs_original.json 原始9状态状态图 -
wbs_extended.json 扩展12状态状态图 新增S10-S12
validator/graph_check.py 图连通性验证 graph_validate()
inference_with_repair.py 带修复推理 sgsext_extension_with_validation()

扩展状态图结构

原始状态 (9个):
S1: Power_On_SelfTest    S2: Brake_Standby      S3: Wheel_Spin_Up
S4: Normal_Manual_Brake  S5: Auto_Brake         S6: Low_Speed_Taxi
S7: Parked_Lock          S8: Auto_Brake_Disarmed S9: Manual_Override

新增安全状态 (3个):
S10: Sensor_Fault        # 传感器故障 → level 4
S11: Anti_Skid_Depressurize  # 防滑泄压 → level 4
S12: Brake_Alter_Active   # 备用刹车 → level 4

03-安全性用例生成 (SA-STCG)

模块介绍

SA-STCG (Safety-Aware Test Case Generation) 基于扩展状态图生成安全性测试用例,通过覆盖率引导的启发式搜索生成满足MC/DC覆盖要求的测试用例。

核心算法

  • 模拟退火算法: 全局路径寻优
  • SMT求解: 参数配置约束求解
  • 混合变异调度: GA + LLM启发式

目录结构

03-安全性用例生成/
├── data/                              # 测试数据
│   ├── WBS_Safety_Extended_Logic.json  # ⭐ 扩展状态图输入
│   ├── test_cases_output.json          # ⭐ 测试用例输出
│   ├── AntiSkidBrake.json             # 防滑刹车数据
│   ├── FCS.jsonl                      # 飞控系统数据
│   └── CPUTask.json                   # CPU任务数据
│
├── src/                               # 核心源码
│   ├── framework/
│   │   └── integration_pipeline.py     # ⭐ 集成流水线
│   ├── core/
│   │   └── ga_main_loop.py            # GA主循环
│   ├── env/
│   │   ├── graph_parser.py            # 图解析器
│   │   ├── fitness_calc.py            # 适应度计算
│   │   └── state_snapshot.py          # 状态快照
│   ├── mutator/
│   │   ├── ga_operator.py             # GA算子
│   │   ├── smt_solver.py              # SMT求解器
│   │   ├── llm_heuristic.py           # LLM启发式
│   │   └── hybrid_scheduler.py        # 混合调度器
│   ├── output/
│   │   └── testcase_formatter.py     # 测试用例格式化
│   ├── evaluation/
│   │   └── metrics.py                 # 评估指标
│   └── baselines/                      # 基线方法
│       ├── random_fuzz.py             # 随机模糊
│       ├── hybrid_tcg.py              # 混合TCG
│       └── standard_sbst.py           # 标准SBST
│
├── baselines/                          # 对比实验
│   ├── random_fuzz.py                 # 随机模糊
│   ├── hybrid_tcg.py                  # 混合TCG
│   ├── stcg.py                        # 标准TCG
│   └── evaluate_coverage.py            # 覆盖率评估
│
├── main.py                            # 主程序入口
├── config.yaml                        # 配置文件
├── requirements.txt                    # 依赖清单
└── SA_STCG_介绍文档.tex                # 模块介绍文档

核心文件说明

文件 作用 关键类/函数
integration_pipeline.py 端到端测试生成流水线 WBSIntegrationPipeline
WBS_Safety_Extended_Logic.json 扩展状态图输入 12状态+19变迁
test_cases_output.json 测试用例输出 5条测试用例
env/graph_parser.py 状态图解析 StateGraphParser
mutator/smt_solver.py Z3约束求解 Z3SolverMutator.solve_condition()

测试用例输出格式

{
  "test_cases": [
    {
      "ID": "TC-01",
      "完整执行路径": "S1 → S2 → S3 → S4 → S7 → S8 → S9",
      "参数配置": [
        {"变量": "self_test_passed", "值": true},
        {"变量": "ground_speed", "值序列": ["28kts", "0"]}
      ],
      "守卫条件": ["self_test_passed == true", "ground_speed < 30"],
      "dal_level": "B"
    }
  ]
}

04-安全性测试用例排序 (ATRL-TCP)

模块介绍

ATRL-TCP (Attention-based Test case Ranking with Learning and Cold-start handling for Test Case Prioritization) 对测试用例进行安全性优先排序,提高缺陷挖掘效率。

核心算法

  • Actor-Critic网络: 序列决策
  • 注意力迁移机制: 冷启动特征降噪
  • DAL加权奖励: 安全性风险权重

目录结构

04-安全性测试用例排序/
├── data/                              # 数据资源
│   ├── case_study/
│   │   └── wbs_brake_system_input.json # ⭐ ATRL-TCP输入数据
│   └── raw_data/                      # 原始数据
│       ├── Airborne_FCS/              # 机载飞控系统数据
│       │   ├── ci_execution_logs.json # CI执行日志
│       │   └── tc_metadata.json       # 测试用例元数据
│       └── gsdtsr/                    # GSDTSR数据集(34个CSV)
│
├── data_prep/                         # 数据预处理
│   ├── data_pipeline.py              # 数据流水线
│   └── process_public_datasets.py    # 公开数据处理
│
├── src/                              # 核心源码
│   ├── api/
│   │   └── atrl_api.py              # ⭐ ATRL-API接口
│   ├── models/
│   │   ├── feature_encoder.py        # 特征编码器
│   │   ├── attention_transfer.py     # 注意力迁移
│   │   ├── actor_critic.py           # Actor-Critic网络
│   │   ├── pointer_network.py         # 指针网络
│   │   └── glimpse_critic.py         # 凝视 Critic
│   ├── rl_env/
│   │   ├── ci_environment.py         # CI环境
│   │   └── reward_function.py        # 奖励函数
│   └── utils/
│       └── metrics.py                 # 评估指标
│
├── Baselines/                          # 基线方法
│   ├── RandomForest.py               # 随机森林
│   ├── hga.py                        # 分层遗传算法
│   ├── ipso.py                       # 粒子群优化
│   ├── prm.py                        # 优先级方法
│   └── retecs.py                     # 经济效应排序
│
├── run_case_study.py                  # ⭐ WBS案例运行脚本
├── main.py                            # 主程序入口
├── plot_exp2_trend.py                 # 实验2绘图
├── plot_exp3.py                       # 实验3绘图
├── train_a2c.sh                       # A2C训练脚本
└── requirements.txt                    # 依赖清单

核心文件说明

文件 作用 关键类/函数
atrl_api.py ATRL-API接口定义 ATRLAPI, ATRLInput, ATRLOutput
wbs_brake_system_input.json WBS测试用例输入 4条测试用例含历史数据
run_case_study.py 案例演示脚本 run_case_study()
models/actor_critic.py Actor-Critic网络 ActorCriticNetwork
models/attention_transfer.py 注意力迁移 AttentionTransfer

ATRL-TCP输入格式

{
  "test_cases_from_sa_stcg": [
    {
      "tc_id": "TC_01",
      "execution_path": ["S_1", "S_2", "S_3", "S_5", "S_6"],
      "dal_level": "A",
      "estimated_exec_time_ms": 150,
      "history": {
        "history_length": 120,
        "fail_rate": 0.12,
        "recent_results": [0, 1, 0, 1, 0]
      }
    }
  ]
}

ATRL-TCP输出格式

{
  "prioritized_sequence": [
    {"rank": 1, "tc_id": "TC_02", "dal_level": "A", "cold_start_flag": true},
    {"rank": 2, "tc_id": "TC_01", "dal_level": "A", "cold_start_flag": false},
    {"rank": 3, "tc_id": "TC_03", "dal_level": "C", "cold_start_flag": false},
    {"rank": 4, "tc_id": "TC_04", "dal_level": "D", "cold_start_flag": false}
  ]
}

05-端到端集成

模块介绍

一体化集成模块将四个核心模块串联,实现从原始需求到最终排序测试用例的完整流程。

目录结构

05-端到端集成/
├── pipeline_integrator.py    # ⭐ 核心集成器
├── main.py                  # ⭐ 入口程序
├── interface_definitions.py # ⭐ 标准化接口定义
├── test_interfaces.py       # ⭐ 接口一致性测试
├── config.ini               # 配置文件
├── __init__.py              # 模块初始化
├── README.md                # 使用文档
└── output/                  # 输出目录
    └── WBS_Integration/
        ├── pipeline_result.json    # 完整流水线结果
        ├── tkf_srg_output.json    # TKF-SRG输出
        ├── sgsext_output.json     # SGSEXT输出
        ├── sa_stcg_output.json    # SA-STCG输出
        └── atrl_tcp_output.json   # ATRL-TCP输出

核心文件说明

文件 作用
pipeline_integrator.py 实现四个模块的串联调用
main.py 命令行入口,支持单步/全流程执行
interface_definitions.py 定义标准化dataclass接口
test_interfaces.py 接口一致性单元测试
config.ini 流水线配置

使用方式

# 进入集成目录
cd 05-端到端集成

# 完整流程
python main.py

# 演示模式
python main.py --demo

# 单步执行
python main.py --step 1  # 仅TKF-SRG
python main.py --step 2  # 仅SGSEXT
python main.py --step 3  # 仅SA-STCG
python main.py --step 4  # 仅ATRL-TCP

# 运行接口测试
python test_interfaces.py

数据流与接口对应

模块间数据流

┌─────────────────┐
│  wbs_input.json │  (原始功能需求)
└────────┬────────┘
         │ TKF-SRG
         ↓
┌─────────────────┐
│ wbs_output.json │  (安全性需求 + 实体字典)
└────────┬────────┘
         │ SGSEXT
         ↓
┌─────────────────┐
│ wbs_extended.json │  (扩展状态图: 12状态)
└────────┬────────┘
         │ SA-STCG
         ↓
┌──────────────────────┐
│ test_cases_output.json │  (测试用例: 5条)
└────────┬─────────────┘
         │ ATRL-TCP
         ↓
┌──────────────────────┐
│  排序后的执行序列      │  (高危优先)
└──────────────────────┘

接口一致性

接口 关键字段 用途
TKF-SRG输出 entity_dictionary.signal_variables 统一命名空间V_unified
SGSEXT输入 guard字段使用signal_variables 语义对齐
SA-STCG输入 safety_paths 安全性路径覆盖
ATRL-TCP输入 dal_level, history 优先级排序特征

误差传播与拦截机制

三层防御体系

┌─────────────────────────────────────────────────────────────┐
│                     误差传播与拦截机制                         │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  [TKF-SRG上游]                                               │
│  ├─ D-S证据融合 → 过滤高冲突幻觉(K>0.75)                      │
│  └─ Z3逻辑验证 → 逻辑死锁检测                                  │
│                         ↓                                   │
│  [SGSEXT中游]                                                │
│  ├─ 格式字段检查 → 结构完整性                                  │
│  ├─ 图连通性检查 → 死锁状态阻断                                │
│  └─ 时序冲突检查 → 时间窗口审计                                 │
│                         ↓                                   │
│  [SA-STCG下游]                                               │
│  ├─ 路径可行性审计 → UNSAT检测                                 │
│  └─ 覆盖率监控 → 信息丢失识别                                   │
│                         ↓                                   │
│  [ATRL-TCP末端]                                               │
│  ├─ DAL加权奖励 → 冗余用例降级                                 │
│  └─ 冷启动降噪 → 历史偏见消除                                   │
│                                                              │
└─────────────────────────────────────────────────────────────┘

快速开始

1. 独立运行各模块

# TKF-SRG
cd 01-安全性需求生成
python case_study/wbs_case_demo.py

# SGSEXT
cd ../02-安全性建模
python case_study/wbs_extension.py

# SA-STCG
cd ../03-安全性用例生成
python -c "from src.framework.integration_pipeline import *; ..."

# ATRL-TCP
cd ../04-安全性测试用例排序
python run_case_study.py

2. 一体化集成运行

cd 05-端到端集成
python main.py --demo

3. 查看输出结果

# 排序后的测试执行序列
cat output/WBS_Integration/atrl_tcp_output.json

技术栈

组件 技术
编程语言 Python 3.8+
深度学习 PyTorch
形式化验证 Z3 Solver
知识图谱 NetworkX
向量检索 FAISS
LLM调用 OpenAI API / Qwen API

论文参考

本文档描述的一体化安全性验证框架基于以下核心论文技术:

  1. TKF-SRG: 基于D-S证据理论的安全性需求生成
  2. SGSEXT: 显隐混合推理的安全性模型扩展
  3. SA-STCG: 覆盖率驱动的安全性测试用例生成
  4. ATRL-TCP: 基于注意力迁移的测试用例优先级排序

联系方式

如有问题,请参考各模块内的README文档或联系项目维护者。

关于

Safety Verification Methods for Airborne Software

56.0 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号