根据最新的ASPICE V3.1流程,介绍了软件需求分析的开发流程。(PS:未考虑功能安全)
众所周知,当前主流的软件开发是按照V型开发流程进行的。早期的有瀑布式开发流程,最近敏捷开发流程也比较火。前段时间去欧洲出差,发现欧洲很多软件公司都在推敏捷开发流程。
V型开发流程的步骤如下图所示:
软件需求分析->软件架构设计->详细设计和代码实现->单元测试->集成测试->软件测试
今天我们讨论的是软件的需求分析。
软件需求分析(software requirement analysis)在ASPICE里面的Process ID是SWE.1。SWE是Procee Group的名字。ASPICE里面有很多流程组,软件开发流程组称为Software Engineering Process Group。
软件需求分析的目的首先我们需要明确为什么要做软件需求分析。
软件需求分析的目的是将系统需求中与软件需求相关的部分转换成一系列软件需求的集合。
这是ASPICE的定义,是从软件需求来源的角度定义的。软件需求不是从客户那里来的,而是从系统需求那边划分得到的。即通过与客户的沟通,我们会得到客户的系统需求,产生系统需求文档。系统需求文档会输入给系统架构工程师,产生系统架构文档。以系统需求文档和系统架构文档作为输入,产生软件的需求文档。
下图是由系统需求和系统架构得出软件,硬件,传感器的需求示例(暂不考虑功能安全):
备注:我们还可以从其他角度来分析软件需求分析的目的,或者说是作用
a. 软件需求分析中需要包含对架构设计文档的认识,理解以及记录
b. 需求文档使得任何变动,澄清以及后续的分解变得易于管理
c. 为软件架构设计,详细设计,测试提供了依据
2.1对软件需求进行详细说明(