这份草稿在我的电脑上已经放了快一个月了。 我会在今天整理出来,请大家批评指正。
需求文档的编写是战略开发工程师的核心工作。 本文计划描述功能开发文档在软件开发中的作用以及如何编写它们。
我最近参加过几次面试,这个问题被问了两次:
“你们在VCU策略制定中主要负责哪些功能模块,文档是怎么写的?这些技术文档是如何指导开发和测试阶段的。” 不知道你能不能解释清楚。
了解需求开发从整车V型开发流程开始
V型开发流程包括以下步骤:
A。 通过市场调研、产品定位,从车辆功能开发的角度,制定车辆功能清单;
b. 将其分解为系统级功能,进行系统需求分析、系统架构开发、车载网络设计;
C。 将功能分解为组件,实现具体控制单元ECU的软件功能需求文档安全软件,
d. 进行软件架构设计和软件算法实现;
e. 完成软件的单元测试、集成和测试;
F。 模块集成并完成系统功能测试;
G。 车辆功能集成、标定、测试和发布
车辆功能开发的主线是总体-分总架构,如下图(1)所示,功能定义→设计→分解实现→验证→集成验证→发布。
对于软件开发流程,还可以参考ISO26262(26262 Part 6)中软件级产品开发的需求描述。 软件开发阶段推荐的流程模型如下:
A。 定义系统需求(软件功能需求规范)
:明确软件开发的功能需求。 此步骤的输出是功能需求文档。
b. 软件架构设计
:设计软件架构功能模块文档安全软件,实现功能需求。
C。 软件单元设计与算法实现(软件单元设计与实现)
:功能单元模块的详细设计和算法建模
d. 软件单元验证
:完成模块MIL测试并确认满足软件子模块要求。
e. 软件集成与验证
:整合各个子功能并确认其满足软件要求。
F。 软件运行测试(嵌入式软件测试)
:对软件代码进行HIL和实车测试,以确认其满足功能要求。
系统功能需求文档编写结构范式
通过V流程,我们可以基本了解软件开发中功能需求开发的现状。
对于VCU、BMS、HCU等控制器项目的开发,首先要求策略开发人员编写系统/组件的功能需求文档(或“xx系统功能需求文档”、“xx功能设计规范”、“xx系统需求说明书》),通过项目评审,最终确认控制器功能列表项和单项功能的功能需求。
如果是系统级需求,则需要进一步分解为各个组件。 例如,整车开关机功能的实现需要分解为FDC、VCU、BMS、MCU、OBC等控制器组件。
在广义的软件开发行业中,这个功能需求文档通常被称为“xx功能需求规范软件/系统需求规范”
a) 软件功能列表
以三电系统开发为例,根据车型特点开发系统功能。 除了常规的基本配置功能(例如:能源管理、热管理、驾驶模式切换、档位切换、高压电源开关等)外,部分功能(电子驻车、ADAS相关功能、坡道辅助、等)也会根据车型的市场定位进行增减。 等待)。
其中,复杂度较高的功能模块可以进一步分解为子功能需求。 以某项目的VCU功能列表为例,如下表所示:
2)功能需求文件主要内容
功能开发文档的任务是清晰地描述需求,为软件开发人员提供必要的技术数据输入,包括功能应用模型平台、功能描述、系统网络拓扑图、功能输入输出接口、应用场景描述等。
以下是参考文档级别格式:
1. 目录
2. 变更记录历史轨迹
描述:追溯记录文档版本管理
3. 简介
3.1 本文件的范围
描述:描述本文档的适用范围。 通常此文档仅用于xx功能的概要设计阶段
3.2 应用范围适用于开发平台
描述:描述应用的车型平台
3.3 引用标准
说明:列出需要遵循的国家行业标准
3.4相关内部文件相关内部文件
描述:列出该功能开发设计需要了解的技术文档,如车辆EE电子电气架构等。
3.5 术语和缩略语的定义 术语和定义
注:为了阅读的准确性,需要列出文中使用的缩写并进行解释;
4. 函数定义
4.1 函数名称 函数名称
说明:功能命名,如滑翔能量回收再生滑行
4.2 功能目的 功能目的
描述:简要描述该功能的用途,例如:当驾驶员期望车辆滑行时,该功能自动激活。 通过将电机设置为发电模式,车辆的动能被回收并转化为电池电力。
4.3 网络架构拓扑 EE 网络拓扑 绘制 CAN/lin 网络拓扑图
描述:描述车辆功能实现所依赖的车辆电气网络架构的状态。
4.4 功能总体图 功能总体图
描述:该功能实现的相关控制器节点和通信方式的详细描述。
4.5 函数接口函数接口
描述:详细描述系统间交互的信号并绘制信号表(信号名称From To)
4.6 功能设计说明 功能设计说明
描述:描述功能设计,说明功能实现形式和功能需求。 我们以滑行恢复为例:从系统的角度来看,VCU内部设定并实现与车速相关的车辆目标减速度。 中央控制面板为驾驶员提供了设置恢复强度的界面。
如果是分配给VCU组件的功能需求文件,则可以对设定的车速-目标减速度曲线进行详细描述。 最大回收扭矩限制、不同回收等级下的车速-扭矩曲线、车速范围、档位要求等(可以将要求一一列出,变成条款)
4.6.1 功能进入/退出条件 功能进入/退出条件
4.6.2 功能工作状态/状态转换
说明:状态转换条件,绘制状态机
4.7 工作场景功能场景
注意:这部分类似于软件的用例规范,描述可能的应用场景中的操作。
4.7.1 场景一绘制流程图及文字说明
注:流程图可以清晰展示功能实现的过程,如车辆的开关机、PRND档位切换逻辑等。
4.7.2 场景2 绘制流程图及文字描述
注意:场景应尽可能全面,充分覆盖用户的使用范围,这样可以大大避免可能出现的系统漏洞和安全风险。
4.8 功能故障分析 功能故障分析
描述:描述功能故障的类型、故障级别以及车辆应如何反应。 示例:VCU 与 MCU 通讯故障故障级别 5 紧急停机。
还有许多其他未完成的事情。 请记住,功能开发文档的目的是清晰地描述功能,清晰地指导软件开发人员进行软件设计,并作为车辆测试人员功能验收的基础。 因此,文件要尽可能严谨,语气要强硬。 使用“应该”、“需要”,并在满足 xx 条件时执行 xx 操作。 不要使用“好”和“最好”之类的词。
关于软件需求文档,待续。 。 。