软件测试--软件开发模型概述

软件开发模型

瀑布模型

从上到下一次性完成整个软件产品的开发模式。

6个阶段:

计划—需求分析—软件设计—编码—测试—运行维护
特点:只有在完成上一个阶段后才能开始下一个阶段。上一个阶段都要有结果产出,通过审核验证成为下一个阶段的输入,下一个阶段才能顺利进行。如果没通过则需要修改。

优势:

为项目划分了清晰的检查点,有利于大型软件开发人员的组织管理及工具的使用研究,提高开发效率。
(阶段关系清晰、方便组织管理)

缺点:

严格按照线性方式进行,无法适应用户需求变更,只有到最后才能看到开发成果,增加开发风险。要求每个阶段都要有产出,增加文档数量,增加软件开发的工作量。现代软件开发阶段关系大部分不是线性的,瀑布模型不再适合现代软件开发。
(难以适应需求变更、文档多工作量大、过时)

快速原型模型

在确定用户需求后快速构建一个可运行的原型向用户展示并获得反馈,最终达成共识,确定用户真正需求,再进行软件开发。

优势:

克服了需求不明确的风险,适用于不能确定预先确定需求的项目。

缺点:

难以准确设计出软件原型。不利于开发扩展。

迭代模型

将完整软件拆分成不同的组件,然后逐个组件开发测试,完成一个就展示一个,确认每个模块都符合需求,然后集成到软件体系结构中。
把整个开发过程组成一个个小的迭代,每次迭代都需要经历
需求分析—软件设计—编码—测试 的过程。

优势:

更好适应客户需求变更。降低开发成本风险。

缺点:

需要开放式的软件体系结构,容易失去对软件开发过程的整体控制。

螺旋模型

把整个项目划分为几个阶段,每个阶段开始前都进行风险评估,在每个阶段都构建软件模型,根据快速原型模型完成整个迭代开发过程最终完成产品,然后进入下一个阶段重复上述过程。

个人理解:

以瀑布模型的线性结构作为整体大框架,每个阶段都先进行风险评估,再采用快速原型模型+迭代模型进行开发。

优势:

强调软件质量,成本计算简单,保证项目可控制性。

敏捷模型

以用户需求进化为核心,采用迭代、循序渐进的方式开发。
在前期把大项目拆分成多个相互联系却能独立运行的子项目,然后迭代开发各个子项目。
不断对产品进行迭代,对产品进行细微、渐进式的改进,可行就扩大改进范围。测试与开发工作同时进行。

优势:

及时响应需求变更,适应新的趋势。

缺点:

容易缺少文档等资料;缺少之前版本的重现性、可回溯性;大型团队项目面对面沟通困难。

posted @ 2022-06-19 21:56  ShadowMurloc  阅读(154)  评论(0)    收藏  举报