3. 版本变更的分类与影响分析
在航空软件配置管理中,版本变更从来不是“改一行代码”这么简单。一次变更可能只影响一个显示字符串,也可能牵动飞控律、总线时序、机载数据库乃至适航符合性证据。因此,变更分类与影响域识别是回归验证策略的起点:分类决定了验证的深度,影响域决定了验证的广度,而风险等级则决定了两者投入的优先级。
一、按变更性质分类
工程实践中,航空软件变更通常归入以下五类,每类的验证关注点差异显著。
- 功能变更:新增、删除或修改软件对外可见的行为,例如增加“低油量告警抑制”逻辑、修改自动驾驶断开条件。验证重点是功能需求追溯、边界条件与异常路径。
- 接口变更:涉及ARINC 429、AFDX、CAN、离散量或软件API的数据格式、周期、标签、量纲、取值范围变化。验证重点是接口控制文件(ICD)一致性、端到端数据完整性、时序余量。
- 算法变更:控制律、滤波、余度表决、导航解算等内部计算逻辑调整。验证重点是数值精度、收敛性、极端工况下的稳定性与等效性。
- 平台迁移:处理器、操作系统、编译器、RTOS或硬件板卡更换。验证重点是时序行为、字节序、浮点一致性、资源占用与驱动适配。
- 缺陷修复:针对已确认问题的局部修正。验证重点是缺陷复现路径、修复不引入新缺陷、相邻功能无回归。
需要强调的是,真实变更往往跨类。例如“将高度滤波算法从一阶改为二阶,并把输出通过AFDX发送”,同时属于算法变更与接口变更,影响域必须叠加考虑。
二、影响域识别方法
影响域识别不能凭经验拍脑袋,建议沿三条线索展开:需求追溯线、数据流线、接口依赖线。
需求追溯线从变更需求出发,向上查其父需求与派生需求,向下查其实现代码、测试用例和验证证据。数据流线从被修改的变量或函数出发,追踪其输入来源、中间处理、输出消费者。接口依赖线则检查该软件项与外部LRU、总线、数据库的交互边界。
以“修改迎角传感器表决算法”为例,影响域至少包括:迎角信号采集模块、余度表决逻辑、失速告警功能、飞控律增益调度、AFDX迎角数据输出、以及依赖迎角的显示与记录功能。若遗漏了显示记录链路,试飞数据回放就可能出现不一致。
三、风险等级评估
风险等级通常由失效后果严重度与变更引入缺陷的概率共同决定。航空领域可参考DO-178C的软件等级(A~E)与变更影响分析结果,将风险划分为高、中、低三级。
| 风险等级 | 典型判据 | 回归策略 |
|---|---|---|
| 高 | 涉及A/B级功能、余度表决、时序关键路径、接口协议核心字段 | 全量回归+专项验证+独立复核 |
| 中 | 涉及C级功能、非关键显示、局部算法优化 | 影响域内回归+接口一致性检查 |
| 低 | 注释、日志文本、不影响行为的重构 | 编译验证+冒烟测试 |
评估时应避免两个极端:一是“改得少就风险低”,忽略了缺陷修复可能触及共享状态;二是“涉及A级就全量回归”,造成资源浪费。合理做法是先定影响域,再按影响强度与功能等级定风险。
四、分类与影响分析的可视化关系
下图将五类变更、影响域三条线索与风险等级判定整合为一张关系图,便于在变更评审时快速定位验证重点。
五、从分类到回归范围的落地
完成分类与影响分析后,应输出一份可执行的回归范围说明。其核心字段包括:变更标识、变更类别、受影响软件项、影响强度、风险等级、验证方法、通过准则。例如:
变更标识:CR-2024-017
变更类别:算法变更 + 接口变更
变更描述:迎角表决算法由“中值选择”改为“双余度比较+故障隔离”,
表决结果通过AFDX标签0x1A2发送,周期由20ms改为10ms。
受影响项:迎角采集、表决逻辑、失速告警、飞控律增益、AFDX发送、显示记录
影响强度:表决逻辑/失速告警=直接;飞控律/显示=间接;其余=无
风险等级:高(涉及A级失速告警与总线时序)
验证方法:全量功能回归 + 迎角故障注入 + AFDX时序测量 + 试飞数据回放
通过准则:告警触发阈值偏差≤0.5°,AFDX周期抖动≤±1ms,无未预期告警
这份说明既是验证计划的输入,也是适航审查中“变更影响分析”证据的一部分。分类越准确,影响域越完整,风险等级越有依据,回归验证就越能做到“该测的测到位,不该测的不浪费”。
综上,版本变更的分类不是贴标签,而是为影响域识别提供切入点;影响域识别不是罗列模块,而是沿需求、数据、接口三条线索追踪真实传播路径;风险等级评估不是主观打分,而是严重度与变更概率的综合判断。三者环环相扣,共同决定回归验证的范围与深度。