图1 软件设计V模型
1. 客户需求文档:需求改变要向客户要钱的
2. 产品设计文档
3. 软件需求文档:用软件专业角度描述产品需求
4. 软件设计文档:架构师充分考虑设计余量,考虑客户更改需求, 程序员 各种情况的分析 以便于后期测试
5. 源代码编写:coding 每个模块完成后有单元测试,出具测试报告。
6. 软件集成:然后集成测试,看是否满足软件需求
7. 系统级测试:是否满足客户需求
不同的软件开发流程不同,如汽车还要功能安全级别
下面是ADI的软件开发流程;
1. 项目前期准备: 项目计划,软件源代码管理工具,bug管理工具Gantt,git源代码管理工具。SVN源代码管理工具。
2. 与客户讨论需求,甚至帮助客户弄清需求,对于function safty 的需求需要客户签字。完成需求文档,以及和其他硬件review。
3. 设计阶段:根据需求文档,由架构师完成软件架构实现。要考虑客户需求的改变。软件设计文档要详细,每个模块的接口定义清楚,每个模块都有详细的文档。微软开发windows就是这样的,模块文档很详细,实习生都能完成某些模块。
4. 模块代码:模块代码的程序规范和代码风格。
5. 单元测试: ADI的单元测试是在嵌入式里面运行的,所以需要在PC上搭建仿真环境。
6. 集成实现级集成测试: 根据需求文档制定测试计划。测试会依赖很多工具,bug管理工具。软件bug管理工具,各种报告和报表。软件的自动化测试。
7. 软件发布和维护
汽车行业对C语言要求严格,什么语法不能用(指针)!!!!!保证代码的功能安全性!