开发模型???
- 一:什么是需求??
- 二:开发模型
- 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:增量模型 && 迭代模型
增量模型:是将一个大的需求拆分成若干个小的需求,每个小的需求独立开发上线.
 迭代模型:根据需求首先上线一个基础版本,后续不断对基础版本进行优化.
 增量模型和迭代模型现在已经不会单独去使用,而是配合着去使用.
 增量模型是先画人的头部,在画身体,在画手脚…
增量模型是先画人的头部,在画身体,在画手脚…
 迭代模型:献花整体轮廓,再勾勒出基本雏形,再细化,着色…
 适用场景:大型项目,需求不明确.



















