1.设计阶段
需求分析:功能需求、非功能需求
板载管理需求、外设管理需求、 络管理需求、自动驾驶算法平台化、自动驾驶功能管理、人机交互、数据闭环等功能需求。
通讯管理、数据管理、操作系统部署、配置管理、诊断、健康度管理等平台需求。
功能分解定义:SOA、子系统和组间模板(复杂度高功能需要利用功能组再次分解)
功能分解要遵循高内聚低耦合的思想。
低耦合场景尽可能使用服务化切面。
但如果某个功能块复杂度还是很高,需要继续拆分,建议用功能组继续拆分。
软件抽象平台:
功能组模板、健康度管理模板、状态管理框架、通讯管理框架、软件资源管理、标准状态机、数据部署和管理、监控和诊断、共存管理器等
软件功能平台:
络管理(通道冗余最好在此实现)、外设管理、板载状态机、电源管理、休眠唤醒、低功耗、温度管理、CPU监控、内存监控、ota、时间同步、sensor service、vehicle service、cockpit service、自动驾驶算法平台、自动驾驶功能管理平台、数据闭环、标定管理、双ecu方案等
模型闭环MIL:
验证系统设计的可行性,可以不在目标板上实现
集成测试:
集成的是软件子系统和功能
系统生命周期:
目标系统渐进实现的过程管理、定义系统开发任务和工具链、系统开发节点和风险管理等
2.开发阶段
代码系统:代码层面的系统设计,类型、接口、配置、数据、逻辑、集成、状态机、编译选项、代码规范等等
文件目录系统:代码部署和管理的载体,合理的体现软件系统和代码系统设计,遵循统一的工程规范、便于后期管理和开发
测试驱动开发:静态测试(代码规范、需要覆盖幅度)、单元测试(功能和接口测试可以打桩测试)(需要覆盖幅度)、目标板上的集成冒烟测试
版本管理
软件开发节点和风险管理
3.集成测试阶段
文件集成:以不同形式搜集到所有交付功能的文件载体,可以是源文件、库等;可以通过不同的形式如git、svn等。需要明确的文件管理。
代码集成:以明确的编译选项和编译工具,将文件交付编译生成可以在仿真系统或者目标板上跑的可执行文件。需要明确的编译管理。
功能集成:以soa或者其他方式的切面和接口,将不同的子功能集成为完整的交付软件系统和功能,并通过合适的测试验证。需要明确的功能管理。
工具:git、编译器、静态和单元测试工具、Jenkins等
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!