华为AUTOSAR质量目标与开发实践
一、如何根据特征制定软件质量目标(以华为为例)
1. 基于ISO/IEC 25010标准分解质量特性
华为等大型企业在制定软件质量目标时,通常会参考国际标准ISO/IEC 25010定义的八大质量特性(功能性、可靠性、性能效率、安全性、兼容性、易用性、可维护性、可移植性)。具体步骤如下:
- 特性识别:结合产品需求,从上述特性中选择关键项。例如,自动驾驶软件需优先保障功能性和安全性;
- 量化指标设计:为每个特性定义可测量的指标,如:
- 功能性:需求覆盖度≥98%,功能正确性测试通过率≥95%;
- 可靠性:系统故障率≤0.001次/小时,MTBF(平均无故障时间)≥1000小时;
- 安全性:威胁检测率≥99%,漏洞修复周期≤48小时。
2. 质量目标的分层与过程管理
华为采用V模型开发流程,将质量目标分解到各开发阶段:
- 需求阶段:定义需求覆盖度(如100%需求可追溯)、评审缺陷密度(如每千行代码缺陷数≤1);
- 设计阶段:通过静态代码分析工具(如Polyspace)确保MISRA-C/C++规范合规性;
- 测试阶段: 设置测试通过率(如单元测试≥95%,集成测试≥90%)、缺陷修复率(如关键缺陷修复率≥98%)。
3. 结合AUTOSAR特性的质量策略
针对AUTOSAR架构,华为可能采用以下方法:
- 模型验证:对Simulink生成的AUTOSAR模型进行覆盖率分析(如路径覆盖≥80%);
- 代码规范性:确保生成的C/C++代码符合AUTOSAR编码规范(如使用Vector工具链进行静态检查);
- 集成测试:通过CANoe等工具验证通信协议栈(如CAN/LIN/Ethernet)的实时性和鲁棒性。
二、AUTOSAR是否全部为模型代码?
1. AUTOSAR开发中的模型与代码关系
AUTOSAR开发并非完全依赖模型生成代码,而是采用模型驱动开发(MDD)与手动编码结合的模式:
- 模型生成代码:
- 应用层(SWC)和接口定义通常通过工具(如Matlab/Simulink、DaVinci)生成C代码和ARXML描述文件;
- 例如,线控制动系统的转矩控制组件可通
过Simulink自动生成C代码及ARXML配置文件。- 手动编码部分:
- 基础软件层(BSW):如微控制器抽象层(MCAL)需针对具体芯片(如英飞凌Aurix)手动配置寄存器驱动;
- 复杂驱动:传感器/执行器的底层逻辑可能需手动实现。
2. AUTOSAR平台的技术分工
开发类型
工具/语言
典型场景
模型驱动开发
Matlab/Simulink、ETAS ISOLAR
应用层算法设计、接口定义
手动编码与配置
C语言、EB tresos、Vector工具链
MCAL配置、复杂驱动开发
自动化代码生成
RTA工具链、Geny
RTE和BSW代码生成
3. 华为在AUTOSAR开发中的实践
- 工具链整合:可能采用自研工具链(如鸿蒙OS适配的AUTOSAR模块)与第三方工具(如Vector)结合;
- 质量管控:通过持续集成(CI)和自动化测试(如Mantis缺陷跟踪系统)确保模型与代码的一致性。
总结
- 质量目标制定需基于国际标准、分层量化,并结合AUTOSAR架构特点强化模型验证和集成测试;
- AUTOSAR开发是模型生成与手动编码的混合模式,模型代码主要用于应用层和接口,底层驱动仍需手动实现。
如需具体案例或工具链配置细节,可进一步查阅AUTOSAR官方文档或企业技术白皮书。