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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

a.定义系统需求(softwarefunctionrequirementspecification)

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

b.软件架构设计(softwarearchitecturaldesign)

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

c.软件单元设计及算法实现(softwareunitdesignandimplementation)

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

d.软件单元验证确认(softwareunitverification)

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

e.软件集成及验证确认(softwareintegrationandverification)

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

f.软件运行测试(testingoftheembeddedsoftware)

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

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

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

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

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

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

a)软件功能清单

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

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

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

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

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

1.目录

2.变更记录Historytrack

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

3.介绍

3.1文档范围Scopeofthisdocument

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

3.2应用范围Applytodevelopmentplatform

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

3.3参考标准Referencedstandards

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

3.4相关内部文件Relatedinternaldocuments

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

3.5术语及缩略语的定义描述Termsanddefinition

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

4.功能定义FunctionDefinition

4.1功能名称Functionname

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

4.2功能目的functionpurpose

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

4.3网络架构拓扑图EENetworktopology绘制CAN/lin网络拓扑图

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

4.4总体功能图Functionoveralldiagram

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

4.5功能接口functioninterfaces

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

4.6功能设计描述functiondesigndescription

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

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

4.6.1功能进入退出条件Functionenter/exitcondition

4.6.2功能状态及状态转移functionworkstates/statetransition

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

4.7工作场景functionscenario

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

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

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

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

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

4.8功能失效分析functionfailureanalysis

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

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

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



转载请注明地址:http://www.shanghaibinbei.com/kflw/9137.html
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章