软件开发生命周期的四种模型

1、大爆炸模型

大爆炸模型计划、进度安排和正规开发过程几乎没有,所有精力都花在开发软件和编写代码上。假如产品需求无须很好理解,而且最终发布日期可以随便更改,这样的开发过程当然很理想。此外,还要有聪慧过人的客户,因为他们直到最后才知道自己会拿到什么样的软件。

多数情况下,大爆炸模式几乎没有什么测试。假如有的话,也要挤在产品发布前进行。

这种模型尽量不要选择。

2、边写边改模型

边写边改模型通常最初只有粗略的想法,接着进行一些简单的设计,然后开始来回编写、测试和修改缺陷的漫长过程。等到觉得足够了,就发布产品。

由于开头几乎没有计划和文档编制,项目小组得以迅速展现成果。因此,边写边改模式极其适合意在快速制作而且用完就扔的小项目,例如原型范例和演示程序。即便如此,许多著名的软件仍然采用了边写边改模式。

3、瀑布模型

采用瀑布模式的项目从最初的构思到最终产品要经过一系列步骤。每一个步骤结束时,项目小组组织审查,并决定是否进入下一步。如果项目未准备好进入下一步,就停滞下来,直到准备好。

关于瀑布模式有三点需要强调:

(1)瀑布模式非常强调产品的定义。注意,开发或者代码编制阶段只是其中单独的一块。

(2)瀑布模式各步骤是分立的,没有交叉

(3)瀑布模式无法回溯。一旦进入某个步骤,就要完成该步骤的任务,然后才能向下继续下去,无法回溯。

看起来似乎限制太多,实际上也是如此。但是,对于拥有明确清晰的产品定义和训练有素的开发人员的项目而言,该模式的效果很好。该模式的目标是在编写代码之前解决所

有的未知问题并明确所有细节。缺点是,在这个变化迅速、在互联网上开发产品的时代,当软件产品还在细细考虑和定义时,当初制造它的理由可能变了。

4、螺旋模型

螺旋模式于1986年由Barry Boehm在美国计算机协会(Association for Computing Machinery,ACM)的论文"一种软件开发的螺旋模式和加强"中引入。目前使用相当广泛,并被证实是开发软件的有效手段。

螺旋模式的总体思想是一开始不必详细定义所有细节。从小开始,定义重要功能,努力实现这些功能,接受客户反馈,然后进入下一阶段。重复上述过程,直至得到最终产品。

螺旋模式每一次循环包括6个步骤:

(1)确定目标、可选方案和限制条件。

(2)明确并化解风险。

(3)评估可选方案。

(4)当前阶段开发和测试。

(5)计划下一阶段。

(6)确定进入下一阶段的方法。

螺旋模式中包含了一点瀑布模式(分析、设计、开发和测试的步骤)、一点边写边改模式(螺旋模式的每一次)和一点大爆炸模式(从外界观察)。加上该模式发现问题早、成本低的特点,可以算作相当好的开发模式。

5、总结

螺旋模型和编写边改模型有点类似,螺旋模型从刚开始就定义了重要功能,相当于有主线任务,按照主线任务去开发,但是编写边改模型开始时只有粗略的想法,然后才逐步去完善。所以可以依据开始条件的不同选择不同的模型,有主线任务的就选螺旋模型,没有主线任务的就选编写边改模型。

螺旋模型、编写边改模型和瀑布模型的区别在于,瀑布模型迭代不够快,每个环节开始时必须等待上一个环节完全结束,最后才进行整体测试,效率比较低。而螺旋模型和边写边改模型在研发的各个阶段都会进行测试,迭代速度更快。

螺旋模型、编写边改模型和大爆炸模型的区别在于,大爆炸模型没有规范的文件,不受各种约束,可能比较难成功,项目容易失败,尽量避免使用。要在开发过程中将关键的部分文档化,形成约束,尽量向编写边改模型靠拢,推动项目成功。

相关推荐
꧁༺℘₨风、凌๓༻꧂2 天前
C# MES .NET Framework Winform 单元测试
单元测试·c#·.net
IMPYLH2 天前
Lua 的 pairs 函数
开发语言·笔记·后端·junit·单元测试·lua
倚肆2 天前
Spring Boot 测试注解全解:从单元测试到集成测试
spring boot·单元测试·集成测试
安冬的码畜日常2 天前
【JUnit实战3_35】第二十二章:用 JUnit 5 实现测试金字塔策略
测试工具·junit·单元测试·集成测试·系统测试·bdd·测试金字塔
码农BookSea3 天前
用好PowerMock,轻松搞定那些让你头疼的单元测试
后端·单元测试
少云清3 天前
【软件测试】5_测试理论 _软件测试分类(重点)
软件测试·单元测试·uat测试·sit测试
秃了也弱了。4 天前
testng:Java界功能强大的单元测试框架
java·单元测试·log4j
川石课堂软件测试4 天前
自动化过程中验证码的解决思路
数据库·python·功能测试·测试工具·单元测试·tomcat·自动化
十二测试录4 天前
测试用例,常见的一些问题
功能测试·单元测试·测试用例·压力测试·可用性测试
x***J3484 天前
测试驱动开发:从单元测试到集成测试
驱动开发·单元测试·集成测试