一、瀑布模型
模型概述
瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,开发过程是通过
设计一系列阶段顺序开展的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反
馈,因此,如果有信息未被覆盖或者发现问题,那么最好“返回”上一个阶段并进行适当的修改,项
目开发进程从一个阶段流动到下一个阶段,这也是瀑布模型名称的由来。
例如开发一个软件项目时,如果采用这个模型的话,一般将软件开发分为问题的定义及规划
(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护
等几个阶段,如下图所示。
瀑布模型的优点:
1、为项目提供按阶段划分的检查点。
2、当前阶段完成后,只需关注后续阶段。
3、可在迭代模型中应用瀑布模型。
4、适用于大规模系统项目。
缺点:
1、各阶段划分完全固定,阶段之间产生大量文档,增加了工作量。
2、用户直到工程末期才能见到开发成果,增加了开发风险。
3、不适应用户需求变化。
二、V模型
模型概述
V模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称软件测试的
V模型。
V模型大体可以划分为以下几个不同的阶段步骤:客户需求分析、软件需求分析、概要设计、
详细设计、软件编码、单元测试、集成测试、系统测试、验收测试等级和阶段,如下图所示。
V模型优点:
1、V模型中的过程从左到右,描述了基本的开发过程和测试行为。
2、 他非常明确的表现了测试过程中存在不同的级别。
3、 能够清楚的描述这些测试阶段和开发过程期间各阶段的对应关系。
缺点:
1、V模型仅仅把测试过程作为需求分析、系统设计及编码之后的一个阶段,忽视了测试
对需求分析,系统设计的验证,需求的满足情况一直到后期的验收测试才被验证。
2、 因此需求变更较大,所以反工量大。
三、W模型
模型概述
是一种软件开发模型,由Evolutif公司提出,相对于V模型,W模型增加了软件开发各阶段中同
步进行的验证和确认活动。这种模型由两个V字型模型组成,分别代表测试与开发过程,明确表示
出了测试与开发的并行关系。W模型强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是
程序,还包括需求和设计等开发输出的文档。这意味着测试与开发是同步进行的,有助于尽早地全
面发现问题。
W模型优点:W 模型相对于 V 模型来说,测试更早的进入到开发阶段,与开发阶段是并行关
系,更早的发现问题,能够及时解决问题,各个阶段分工明确,方便管理。
缺点:W 模型是顺序性的,不可逆,需求的变更和调整,依旧不方便。无法支持迭代的开发
模型。
四、敏捷开发模型
模型概述
是一种以用户需求进化为核心(强调沟通、弱化文档)、迭代、循序渐近的开发方法。
强调以人为本,专注于交付对客户有价值的软件,是一个用于开发和维持复杂产品的框架。
就是把一个大项目分为多个相互联系,但也可以独立运行的小项目,并分别完成,在此过程中软件
一直可使用状态。
敏捷开发优点:
1、 通过快速、持续地交付有用的软件来满足客户的需求。
2、 强调的是人和互动,而不是过程和工具。客户、开发人员和测试人员不断地相互作。
3、 工作软件经常交付(周而不是月)。
4、 业务人员和开发人员之间的密切合作,面对面交谈是最好的方式。
5、 持续关注卓越的技术和良好的设计,定期适应变化的环境。
缺点:
1、 快速敏捷软件开发和软件测试。
2、不是特别大的开发团队,因为交流成本大,比较适合一个组的团队使用。