1、瀑布模型
定义:将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型
核心思想:瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
优点:容易理解;管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。
缺点:用户必须完整表达需求;开始时难以评估项目状态;在结束前有大量测试和集成工作;结束前都不能展示系统的能力;对项目风险的控制能力较弱。
2、V模型
V模型描述了质量保证活动和沟通、建模相关活动以及早期构建相关的活动之间的关系。
验收测试
可行性分析 -- ---> 验收测试
↘ 预系统测试 ↗
需求分析 -----> 系统测试
↘ 预集成测试 ↗
概要设计 ----> 集成测试
↘ 预单元测试 ↗
详细设计 -----> 单元测试
↘ ↗
编码
优点:
1)缩短开发周期
2)提高开发效率
缺点:
V模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,需求的满足情况一直到后期的验收测试才被验证。
解决的思路是,当一个软件开发的时候,研发人员和测试人员需要同时工作,测试在软件做需求分析的同时就会有测试用例的跟踪,这样,可以尽快找出程序错误和需求偏离,从而更高效的提高程序质量,最大可能的减少成本,同时满足用户的实际软件需求。
3、增量模型
定义:该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的增量。
当使用增量模型时,第一个增量往往是核心产品。
用户对每个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。
强调每一个增量均发布一个可操作的产品。
优点:1)具有瀑布模型的全部优点
2)第一个可交付版本所需的成本和时间很短
3)开发由增量表示的小系统所承担的风险不大
4)由于很快发布了第一个版本,因此可以减少用户需求的变更
5)在项目开始时,可以仅对一两个增量投资
缺点:1)没有对用户的需求变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定
2)如果需求不像开始时稳定和完整,那么一些增量可能需要重新开发
3)管理麻烦
演化模型包括:原型模型和螺旋模型。