- 瀑(pu)布模型:是线性模型的一种,每个阶段执行一次,按线性顺序进行软件开发
需求分析-》设计-》编码-》实现-》软件测试-》完成-》维护
优点:1.开发的各个阶段比较清晰
2.强调早期计划及需求调查,就是提前计划好了,少走一些流程
3.适合需求稳定的产品,就是模仿之前的产品,需求有很多相似的
缺点:1.依赖于早期的需求调查,不适应需求的变化
2.单一流程不可逆
3.风险往往延至后期才显露,失去及早纠正的机会
4.问题在项目后期才开始暴露
5.前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败
2.快速原型模型:在开发之前,构造一个原型,让用户对原型进行评价,逐步调整,使其满足用户的最终需求
优点:适合用户需求不明确的开发,减少需求不明确带来的项目开发的风险,
缺点:不适合大型系统的开发
3.螺旋模型
相当于把瀑布模型执行几轮
4.测试模型
v模型:需求分析 验收测试
概要设计 系统测试
详细设计 集成测试
编码 -》单元测试
优点:1.v模型既包含了底层测试又包含了高层测试
底层测试:检查源代码质量的测试,如,单元测试
高层测试:检查整个系统的需要,如,系统测试
2.v模型清楚地标识了开发和测试的阶段 (方便领导·一级一级的把控工程流程)
3.自上而下求精,每个阶段分工明确,便于整个项目的把控
缺点:1.测试工作在编码之后,导致错误不能及时进行修改
2.用户需求经常改变,v模型步骤反复执行,导致返工量大,灵活度低
改良:每个步骤,融入小的迭代工作,开个会讨论啥的,没问题再进行下一步
w模型:开发一个v,测试一个v,组成w
测试伴随着整个开发周期,测试的不仅仅是程序,需求和设计同样要测试
w模型:需求分析 验收/系统测试设计 交付 验收测试
概要设计 集成测试设计 实施 系统测试
详细设计 单元测试设计 集成 集成测试
编码 -》 单元测试
优点:1.测试的不仅仅是程序,需求和设计同样要测试
2.更早的接入测试,可以发现开发初期的缺陷,用更低的成本进行修复
3.便于控制项目过程
缺点:1.软件开发和软件测试要保持一前一后的线性关系,无法支持迭代,需求的变更,依然不方便
2.使用起来复杂度高,对于需求和设计的测试要求很高,实施起来困难
3.对于一些项目,在执行的过程中根本不产生文档,就不能用w模型
h模型:将测试活动完全独立出来,形成一个完全独立的流程,同时将测试准备和测试执行也清晰表现出来
优点:可以尽早测试,有很强的灵活性,
缺点:管理有求高,技能要求好,测试就绪点分析困难