优点
强调开发的阶段性, 强调早期计划及需求调查, 强调产品测试;
缺点
1. 由于瀑布模型是一种线型结构的模型, 也就意味着前一个阶段结束, 后一个阶段才能开始, 这就导致了风险往往会迟至后期的测试阶段才显露, 因而失去了及早纠正的机会.
2. 瀑布模型中测试被后置, 导致测试不充分, 缺陷直接暴露给用户, 不能很好的迎接变化.
适用场景
需求固定的小型项目
螺旋模型是在瀑布模型额基础上增加了风险分析, 生成新的原型.
特点
各个结点引入风险分析, 原型, 来降低可能存在的风险
缺点
1. 瀑布模型增加了风险分析阶段, 有一定的耗时耗力
2. 成本高, 团队需要耗费一定的资金和时间去招聘风险分析人才.
适用场景
需求不确定, 变化的可能性很大的大型项目
优点
产品可以在较短时间内快速多频次的交付.
增量模型
将项目进行模块化, 使其每个模块都能够进行独立开发和上线.
优势 : 产品能够在较短的时间内尽快的交付软件给用户去使用.
迭代模型
假如一个产品包含 5 个功能 A,B,C,D,E, 迭代模型会先完成这个5 个功能的基础版本, 然后再经历一期一期的迭代优化, 直到这 5 个功能都非常的成熟.
《敏捷宣言》
1. 个体与交互重于过程和工具 --- 强调团队内部人员尽可能的进行高效的沟通
2. 可用的软件重于完备的文档
3. 客户协作重于合同谈判
4. 响应变化重于遵循计划
敏捷模型的特点 : 轻流程, 轻文档, 重目标, 重产出
敏捷开发的方式有很多种, 其中 scrum 是比较流行的一种.
了解scrum 中的三个重要角色和五个重要会议
三个角色
产品经理 : 负责整理用户需求, 定义其商业价值, 对其进行排序, 制定发布计划, 对产品负责.
项目经理 : 负责召开各种会议, 协调项目, 为研发团队服务.
研发团队 : 由不同技能的成员组成, 通过紧密协同, 完成每一次迭代的目标, 交付产品.
五个重要会议
会议1 ->需求发布会议 : 确定本次迭代要实现的需求
会议2 -> 迭代计划会议 : 将需求拆分成一个个任务, 明确每个任务对应的责任人, 初步评估工时.
会议 3 -> 每日会议 : 会议中每个研发团队成员需要回答三个问题
1. 昨天做了什么 --> 及时的, 实时的知道研发团队的工作进度, 已经完成了什么任务.
2. 今天要做什么 --> 重目标.
3. 遇到了什么问题 -->研发团队针对你这个问题给出一个合理的额建议, 尽快的解决问题.
会议 4 -> 演示会议, 产物 : 用户的需求, 然后放入需求池中, 为下一个周期提供新的需求.
会议5 -> 回顾会议.
V 模型的特点
明确了测试有不同的类型, 而且每个测试类型和前期的开发工作之间有对应关系
缺陷 : 测试后置
W 模型的特点
测试从一开始就介入 (软件测试贯穿于软件的整个生命周期) , 有利于尽早的全面的发现问题.
缺陷
1. 开发和测试虽然是同步的, 但是仍然存在 着前后的线性关系.
2. 不支持敏捷模型.