乐于分享
好东西不私藏

如何理解系统功能需求文档&软件需求文档

如何理解系统功能需求文档&软件需求文档

这篇草稿在我电脑里呆了快一个月了,趁着今天月底,死活也把它整理发出来,请大家指摘。


需求文档的编写是策略开发工程师的核心工作,本文计划描述功能开发文档在软件开发中的角色以及如何编写。

近期参加了几次面试,提了两次这个问题:

“VCU策略开发你主要负责哪些功能模块,文档如何编写的?这些技术文档如何指导开发和测试阶段工作。”不知道您是否可以说的明白。

理解需求开发从整车V字开发流程说起


V字型开发流程包括以下步骤:

a.  通过市场调研,产品定位,在整车功能开发角度,制定整车功能列表;

b.  分解到系统级功能,开展系统需求分析,系统架构开发,整车Network设计;

c.  将功能分解到零部件,并落实到特定控制单元ECU的软件功能需求,

d.  开展软件架构设计、软件算法实现;

e.  完成软件的单元测试、集成和测试;

f.   模块集成,完成系统功能测试;

g.  整车功能集成、标定、测试以及发布

整车功能开发主线是总-分-总架构,如下图(1),功能定义→设计→分解实施→验证→集成验证→发布。

对于软件开发流程,也可以参考ISO26262中关于软件层级产品开发的要求描述(26262 Part 6),软件开发阶段推荐流程模型如下图:

a.  定义系统需求(software function requirement specification)

 :明确软件开发功能需求,这一步的输出物就是功能需求文档

b.  软件架构设计(software architectural design)

 :对软件架构功能模块进行设计,以实现功能需求。

c.  软件单元设计及算法实现(software unit design and implementation)

 :对功能单元模块进行详细设计以及算法建模

d.  软件单元验证确认(software unit verification)

 :完成模块MIL测试,确认符合软件子模块需求。

e.  软件集成及验证确认(software integration and verification)

 :对各子功能进行集成,确认符合软件需求。

f.  软件运行测试(testing of the embedded software)

:开展软件代码的HIL及实车测试,确认符合功能需求。

系统功能需求文档编写结构范式


通过V流程基本可以理解功能需求开发在软件开发中所处的地位。

对于VCU、BMS、HCU等控制器项目开发,首先要求策略开发人员编写系统/零部件的功能需求文档(或称《xx系统功能需求文档》、《xx Function Design Specification》、《xx System Requirement Specification》),通过项目评审并最终确认控制器功能List项及个项功能的功能需求。

如果是系统级需求,还需进一步分解到各零部件。如整车上下电功能实现需要分解到FDC、VCU、BMS、MCU、OBC等控制器零部件。

宽泛含义上的软件开发行业,该功能需求文档通常又叫做《xx功能需求规格说明书 Software/system requirements specification

a)软件功能清单

以三电系统开发为例,系统功能的制定依据车型特点开发。除了常规基础配置功能(例:能量管理、热管理、驾驶模式切换、档位切换、高压上下电 etc.),也会根据车型市场定位增删部分功能(电子驻车、ADAS相关功能、坡道辅助等)。

其中复杂度较高的功能模块,又可进一步分解到子功能需求。以某项目VCU功能清单为例,如下表

2)功能需求文档主要内容

功能开发的文档的任务是把需求描述清楚,需要给软件开发人员提供必要的技术资料输入,包括功能的应用车型平台、功能描述、系统网络拓扑图、功能输入输出接口、应用场景描述等。

以下为参考的文档层级格式:

1.     目录

2.     变更记录History track

        说明:追溯记录文档版本管理

3.     介绍

3.1  文档范围Scope of this document 

       说明:描述该文档的应用范围,通常此文档仅用于xx功能的概要设计阶段

3.2  应用范围 Apply to development platform 

       说明:说明应用的车型平台

3.3  参考标准 Referenced standards 

       说明:列举需要遵守的国家行业标准

3.4  相关内部文件 Related internal documents 

       说明:列举与本功能开发设计需要知道的技术文件,例如整车EE电子电气架构

3.5  术语及缩略语的定义描述 Terms and definition

       说明:为阅读的准确性,需列举文中用到的简称,并做解释;

4.    功能定义 Function Definition

4.1  功能名称 Function name

说明:功能命名,如滑行能量回收Regeneration Coasting

4.2  功能目的 function purpose 

说明:简述功能所要达到的目的,如:在驾驶员期望进行车辆进行滑行时,该功能自动激活。通过将电机设置为发电模式,将车辆动能回收转换为电池电能。

4.3  网络架构拓扑图 EE Network topology 绘制CAN/lin网络拓扑图

       说明:将整车功能实现所依赖的整车电气网络架构状态进行说明

4.4  总体功能图Function overall diagram 

       说明:详细说明该功能实现相关控制器节点及通讯方式。

4.5  功能接口 function interfaces 

       说明:详细说明系统间交互的信号并绘制信号表(信号名  From To)

4.6  功能设计描述function design description

       说明:对功能设计进行描述,说明功能实现形式以及功能要求。还以滑行回收为例:站在系统的角度,VCU内部设置与实施根据车速相关联的车辆目标减速度。中控面板提供驾驶员设置回收力度的接口。

        如果是分配到VCU零部件的功能需求文档,则可以详细描述设置的车速-目标减速度曲线。最大回收扭矩限制、不同回收等级下的车速-扭矩曲线、车速区间、档位要求等。(可以逐条罗列要求,条款化)

4.6.1   功能进入退出条件Function enter/exit condition

4.6.2   功能状态及状态转移 function work states/state transition 

说明:状态转移条件,绘制状态机

4.7  工作场景function scenario 

       说明:该部分内容类似于软件的用例规约,描述可能出现的应用场景下动作

4.7.1   场景1绘制流程图及文字说明

        说明:用流程图可以较为清晰的展示功能实现的过程,如整车上下电、PRND档位切换逻辑等。

4.7.2  场景2 绘制流程图及文字说明

说明:场景应尽可能全面,充分的覆盖用户的使用范围,可以极大的避免可能出现的系统漏洞和安全风险。

4.8  功能失效分析 function failure analysis

      说明:描述功能失效的类型 故障等级 以及整车该如何动作。例:VCU和MCU通讯失效 故障等级5级 紧急停车。

其他未尽事项,不一而足。记住,功能开发文档的目的是把功能描述清楚,清晰的指导软件开发人员进行软件设计,并作为整车测试人员的功能验收依据。所以文档应尽可能的严谨,语气词要强硬。使用应当、需要、当xx条件满足时执行xx动作。不要使用可以,最好等词汇。

关于软件需求文档,未完待续。。。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 如何理解系统功能需求文档&软件需求文档

评论 抢沙发

8 + 4 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮