目录
0 前言
软件开发的V型流程其实非常使用,一些大型的软件企业都是遵循这样的开发过程,虽然有时候各个阶段的名称未必一样,但是大概流程是如此,V型流程如下:
ps:虽然看起来简单,一旦你养成了这样一种开发素养,应该是收益匪浅的。
1. 用户需求 9.验收测试
\ /
2.需求分析和系统分析 8.系统测试
\ /
3.概要设计 7.集成测试
\ /
4.详细设计 6.单元测试
\ /
5.编码
1. 用户需求
从使用者的角度来描述需求的,可以是使用者希望这个产品具有什么样的功能,或者是企业老板希望产品有什么样的功能,是撇开技术层面的东西,用户单纯的需要。
2. 需求分析和系统分析
从用户需要上出发,转化到转化到产品设计上来。怎么去完成这个产品呢?这时,考虑到技术实现的问题,即产品需求。真正的产品,往往是有点复杂度的,需要进行系统地分析,按照产品需求,考虑到技术可行性,拆分形成不同的功能模块,规划出软硬件的构架。首先进行硬件的设计(往往是从类似的产品上借鉴,形成自己的硬件开发板:确定好CPU、MCU、存储空间、传感器等等),“框架型”(可能不完善,但是可以支持软件架构了)硬件开发板完成后,软件架构也在开始。软件架构要协调好拆分的各个功能模块,满足产品的需求。此处的软硬的设计便是架构设计,架构设计为接下来的工作奠定了重要的基础。
3. 概要设计
概要设计的目的是描述系统的每个功能模块的内部设计,对架构设计和详细设计承担承上启下的作用。概要设计承接架构设计的功能模块,再细化,并且在架构设计基础上,形成一定的技术化描述的操作流程。每个功能模块都有自己的概要设计,各功能模块设计的同时,需要不断地和架构设计的人进行打磨,对架构设计的合理性不断地进行考验、纠正、托起,同时自身也在不断地理解架构设计,做出更好的概要设计,以求对详细设计进行更准确的指导。
4. 详细设计
详细设计阶段就是依据概要设计阶段的分解,设计每个模块内的算法、流程,为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
详细设计这个阶段,设计者的工作对象是一个模块,根据概要设计,设计并表达出模块的算法、流程、状态转换等内容。这里要注意,如果发现有结构调整(如分解出子模块等)的必要,必须返回到概要设计阶段,将调整反应到概要设计文档中,而不能就地解决,不打招呼。详细设计文档最重要的部分是模块的流程图、状态图、局部变量及相应的文字说明等。一个模块对应一篇详细设计仕样书。
5. 编码
根据详细设计书进行编码。