开发模型???
- 一:什么是需求??
- 二:开发模型
- 2.1:软件的生命周期
- 2.1.1:软件生命周期
- 2.2:常见开发模型
- 2.2.1:瀑布模型
- 2.2.2:螺旋模型
- 2.2.3:增量模型 && 迭代模型
- 二级目录
- 一级目录
- 二级目录
- 二级目录
- 二级目录
- 三级目录
一:什么是需求??
用户需求:通常就是一句话,没有经过合理的评估;
用户需求不能直接作为开发和测试的依据.针对用户的需求,产品经理需要进行需求分析(技术可行性,市场可行性,成本投入和收益占比等)
软件需求:对用户需求进行评估后,可以实现用户需求,往往包含步骤和细节.
二:开发模型
2.1:软件的生命周期
软件生命周期实际上就是软件的开发模型.
2.1.1:软件生命周期
1)需求分析:
分析用户需求是否合理,分别从市场需求,技术,成本,收益等方面进行分析;
该阶段会输出需求等文档.
2)计划:对成立的需求执行计划,多久时间内完成该需求,每段时间具体完成哪些功能;
该阶段会输出计划等文档(包含不同角色完成某个动作所需要的时间)
3)设计:将需求细化成一个个的任务,团队人员各司其职,进行技术设计(如何进行架构设计,设计哪些接口,采用什么技术)
该阶段会输出技术等文档
不同的角色涉及到的工作是不同的,
产品经理:定需求,明确需求是否正常执行中
项目经理:为整个项目负责,人员调配等工作
交互:设计交互图
前端:设计前端内容(框架,技术,工具)
后端:设计后端内容(框架,技术,工具)
测试:明确需求,设计测试用例,测试计划(明确本次测试设计用到的工具,设计用到的测试类型…)
4)编码:开发人员参考需求文档,设计文档,交互图等文件进行代码的编写.
该阶段生成代码文件等文档
5)测试:测试人员需要介入到软件的测试中来,参考测试用例对软件进行测试
该阶段生成测试用例,测试设计与计划,测试报告等文档
6)运行维护:软件上线后,在线上环境下可能会出现一些意想不到的情况
线上的维护主要分为三个方面:修复性维护,完善性维护,预防性维护.
修复性维护:对项目中未发现的问题进行修复.
完善性维护:对功能进行完善.
预防性维护:居安思危,为了避免产品在线上出现一些其他不可预料的问题,进行一些防护的手段.
2.2:常见开发模型
2.2.1:瀑布模型
1)需求分析
2)计划
3)设计
4)编码
5)测试
特点:每个流程只执行一次,线性的开发流程
优点:(1)强调开发的阶段性
(2)线性结构,每个阶段只执行一次
(3)是其他模型的基础框架
缺点:(1)前面各阶段遗留的风险推迟到测试阶段才被发现,导致项目大面积的返工,失去了及早修复的机会
(2)必须有足够的时间给测试人员,否则测试不充分,将缺陷直接暴露给用户(产品质量差)
(3)大量的返工会导致产品很迟才能被看到和使用,可能会导致需求/功能过时
瀑布模型的适用场景:需求固定的小项目.
2.2.2:螺旋模型
优点:(1)强调严格的全过程风险管理
(2)强调各开发阶段的质量
(3)增加风险分析和原型
缺点:(1)项目中可能存在的风险性与风险管理人员的技术水平有直接的关系
(2)需求人员,资金,时间的增加和投入,可能会导致项目的成本太高
适用场景:规模庞大,复杂度高,风险大的项目.
2.2.3:增量模型 && 迭代模型
增量模型:是将一个大的需求拆分成若干个小的需求,每个小的需求独立开发上线.
迭代模型:根据需求首先上线一个基础版本,后续不断对基础版本进行优化.
增量模型和迭代模型现在已经不会单独去使用,而是配合着去使用.
增量模型是先画人的头部,在画身体,在画手脚…
迭代模型:献花整体轮廓,再勾勒出基本雏形,再细化,着色…
适用场景:大型项目,需求不明确.