点击蓝字 关注我们
汽车电子软件开发流程
今天在这里和大家交流一下汽车电子软件开发流程Automotive SPICE(Software Process Improvement and Capabili),互相学习。
有别于互联网软件工程,软件工程组在汽车软件开发中根据系统需求与系统架构进行软件需求分析与软件架构设计及软件详细设计和单元构建并进行相关验证(测试)工作。
Automotive SPICE过程参考模式提供了过程集合。
此文仅针对上图中的系统过程组与软件工程组(不包含软件集成和集成测试、软件和个性测试、系统集成和集成测试、系统合格性测试),该篇从软件需求分析开始谈起。
Vehicle
软件工程组
软件工程师角色的任务:软件需求分析、软件架构设计、软件详细设计和单元建模、软件单元验证、软件集成和集成测试、软件合格性测试。
Vehicle
1、软件需求分析:
1、软件需求分析(Software Requirements Analysis):将系统需求的相关部分转化为一组软件需求。具体为:
a. 指定软件需求:使用系统需求、系统架构及以上两者的变更需求来确定所需软件的功能和特性。在软件需求规范中指定功能性和非功能性软件需求。只有在软件开发过程中,系统需求和系统架构才会设计到一个给定的操作环境;
b. 结构化软件需求:结构化软件需求可以按照项目相关的集群分组,或按照软件适配的硬件功能部件、逻辑顺序、相关标准分组,或者为干系人需求设置优先级;
c. 分析软件需求:分析软件需求:分析指定的软件需求包括他们的相互依赖关系、确保正确性、技术可行性、可验证性和支持风险识别。分析成本、进度和技术的影响;
d. 分析对操作环境的影响:分析系统元素(模块)接口和操作环境对软件需求的影响;
e. 开发验证标准:为每个软件需求开发验证标准、以便于每条需求验证准则可以定性和定量的度量;
f. 建立双向可追溯性:建立系统需求和软件需求之间的双向可追溯性,建立系统架构和软件需求之间的双向可追溯性;
g. 确保一致性:确保系统需求和软件需求之间的一致性,保证系统架构和软件需求之间的一致性要求;
h. 沟通已确认的软件需求:沟通已确认的软件需求并为所有相关方更新这些软件需求。
输出物:a. 沟通记录;
b. 审查记录;
c. 变更控制记录;
d. 追溯性记录;
e. 分析报告(Analysis Record):分析的内容、分析人、所采用的分析准则(选择的准则或采用的优先级计划、决策准则、质量准则)、记录结果(决定或选择的内容、选择的原因、做出的假定、潜在风险)、正确性分析的方面(完整性、可理解性、可测试性、可验证性、可行性、有效性、一致性、内容的充分性);
f. 接口需求规格说明书(IRS Interface Requirement Specification):更新细化;
g. 软件需求说明书(Software Requirement Specification):识别适用的标准、识别软件架构考虑及约束条件、识别必须的软件元素(模块)、识别软件元素之间的关联关系、考虑给出以下信息(必须的软件性能特性、必须的软件接口、必须的安全特性、数据库设计需求、必须的错误处理及属性恢复机制、必须的资源消耗特性)
h. 验证准则。
Vehicle
2、软件架构设计:
软件架构设计(Software Architectural Design):建立一个建构设计、确定软件需求分配给软件元素(模块),并根据定义的标准评估软件架构设计。
过程成果:a. 定义了软件体系结构设计,确定了软件的元素(模块);
b. 软件需求分配给软件的元素(模块);
c. 定义了每个软件元素(模块)的接口;
d. 软件元素(模块)的动态行为和资源消耗目标已经定义清楚;
e. 建立软件需求和软件架构设计之间的一致性和双向可追溯性;
f. 软件架构设计被所有受影响的各方达成一致并已沟通。
实现步骤:
a. 软件架构设计:指定软件要素和相关方面的功能和非功能软件需求;软件在适当的层级分解为元素(模块),并在详细设计中描述组件(所谓组件,指软件架构设计的最底层的元素);
b. 分配软件需求:分配所有软件需求到软件架构设计元素;
c. 定义软件元素(模块)接口:识别、开发和文档化软件元素(模块)之间的接口;
d. 描述动态行为:参照系统动态行为,评估和文档化软件元素(模块)间的时序和动态交互行为。(动态行为是由操作模式确定的,如启动、关闭、正常模式、校准、诊断等等;软件功能实现优先级等。另外,在评估动态行为时,目标平台和潜在载荷应被考虑);
e. 定义资源消耗目标:在软件架构设计的适当层级,为相关元素(模块)定义并记录所有软件组件的资源消耗目标。(资源消耗通常被明确为资源,如内存ROM、RAM、外部/内部EEPROM或Flash数据,CPU负载等)
f. 评估可替代的软件架构;
g. 建立软件需求与软件架构之间的双向可追溯性;
h. 确保软件需求与软件架构的一致性;
i. 和相关方沟通已确定的软件架构设计。
输出物:
1)、软件架构设计:
a. 软件架构整体描述;
b. 包含任务结构的运行系统描述;
c. 确定任务与进程之间通信;
d. 识别必须的软件元素;
e. 识别自助开发及供应商提供的代码;
f. 识别软件元素(模块)之间的关联及依赖关系;
g. 确定数据存储及灾备方案;
h. 描述不同模型系列或配置如何衍生出产品变体;
i. 描述软件的动态行为;
j. 确定数据存储位置及数据损坏的预防方法;
k. 软件必须的性能特性、软件必须的接口、软件必须的安全特性、数据库设计需求
2)、接口需求规格说明书;
3)、跟踪记录;
4)、审查需求;
5)、沟通记录。



