当前位置: 首页 > news >正文

华为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缺陷跟踪系统)确保模型与代码的一致性。

总结

  1. 质量目标制定需基于国际标准、分层量化,并结合AUTOSAR架构特点强化模型验证和集成测试;
  2. AUTOSAR开发是模型生成与手动编码的混合模式,模型代码主要用于应用层和接口,底层驱动仍需手动实现。
    如需具体案例或工具链配置细节,可进一步查阅AUTOSAR官方文档或企业技术白皮书。
http://www.xdnf.cn/news/1338571.html

相关文章:

  • FCN网络结构讲解与Pytorch逐行讲解实现
  • Go语言中的迭代器模式与安全访问实践
  • open3d-点云函数:变换:旋转,缩放、平移,齐次变换(R,T)等
  • 开源,LangExtract-Python库用LLM从非结构化文本提取结构化信息
  • 移动应用抓包与调试实战 Charles工具在iOS和Android中的应用
  • 自然语言处理——04 注意力机制
  • 基于Spring Cloud Gateway动态路由与灰度发布方案对比与实践指导
  • 记一次 .NET 某光谱检测软件 内存暴涨分析
  • CentOS7安装部署PostgreSQL
  • 搭建FTP文件共享服务器
  • SQL中对视图的操作命令汇总
  • 【数据结构入门】排序算法:插入排序
  • 带有 Angular V14 的 Highcharts
  • 动学学深度学习03-线性神经网络
  • hadoop-3.3.6和hbase-2.4.13
  • Linux下Docker版本升级保姆攻略
  • 数据结构之排序大全(4)
  • LLaVA-3D,Video-3D LLM,VG-LLM,SPAR论文解读
  • WebSocket通信:sockjs与stomp.js的完美搭档
  • 【问题思考】为什么需要文件后缀?(gemini完成)
  • Web3 的发展挑战:技术、监管与生态的多重困境
  • 机器学习聚类算法
  • 什么是默克尔树
  • 缓存与Redis
  • C++---辗转相除法
  • 2025-08-21 Python进阶1——控制流语句
  • 【网络运维】Shell:变量数值计算
  • SQL-leetcode—3451. 查找无效的 IP 地址
  • 从vue2到vue3
  • C++STL-stack和queue的使用及底层实现