软件开发模型

软件开发模型

前言

此文章是用来学习总结、复习使用的

软件开发模型

​ 软件开发生命周期模型是软件产品从最初构思到退役的过程中,了解开发能够更好的有针对性的做好测试。

常见的开发模型

1.大爆炸模型

1.1直接冲过河去的模型

一大堆东西(人力和资金)放在一起,巨大能量释放,要么产生了优秀的产品,要么产生一堆废品

  • 特点
    1. 是最简单的软件开发模式,计划、进度安排和正规开发过程都几乎没有,所有精力都花在开发软件和编写代码上
    2. 一般,该模型基本没有测试,即使有也要集中在产品发布前,通常都避免在此模式下进行测试

2.边写边改模型

2.1.摸着石头过河的模型

典型的非正规说明书 ----------》 编码、修改、编码、修改(反复直到得到产品) -------》最终产品

  • 项目小组在未刻意采用其他开发模式时默认的开发模式
  • 它在大爆炸模式基础上更进一步,至少考虑了产品的需求
  • 开发小组通常最初只有粗略的想法,接着进行易写简单的设计,然后开始漫长的来回编写、测试和修改缺陷的过程,直到最后可以发布产品
  • 最有可能碰到的模型

特点

  • 此种模式没有计划和文档编制,项目能够迅速展现成果,所以比较适合用完就扔的项目
  • 测试没有被强调,但是在编写代码和修复缺陷过程中举足轻重
  • 软件测试会陷入无休止的循环往复,因为每天都在测试新版本

3.瀑布模型

1.指定周密计划的模型

软件开发模型

  • 采用这个项目从最初的构思到最终产品要经过一系列步骤,每一个步骤结束时,写好文档,项目小组组织审核,并决定是否进入下一步,如果项目未准备好进图下一步,就停滞下来直到准备好

特点

  • 这个模型是更具有优势,测试对象非常明确,即程序
  • 又一切都有完整细致的说明。当软件提交到测试小组,所有细节都已经确定并有文档记录,并且实现在软件之中。因此测试小组得以指定精确的计划和进度
  • 此模型中测试是软件开发后期阶段进行的”一次性“活动,这有一个很大的缺点,因为测试仅在最后进行,所以一些根本性问题可能出现在早期,但是直到准备产品发布才能发现

4.螺旋模型

1.计划赶得上变化的模型

软件开发模型

  • 不必详细定义所有的细节,从小开始,定义重要的功能,努力实现这些功能,接收客户反馈,然后进入下一阶段,重复以上过程,直到得到最终产品
  • 特别适合与大型复杂系统

特点

  • 该模型发现问题早、成本低的特点,可以算是相当好的开发模型,

    瀑布模型的:分析、设计、开发和测试步骤

    边写边改模型的:螺旋模式的每一次

    大爆炸模式 : 从外界观察

  • 比较好的模式,通过参与最初设计阶段,可以尽早地影响到产品,可以把产品的来龙去脉弄得很清楚,在项目末期,不至于最后一分钟还在匆忙进行全面测试。测试人员一直在进行测试,所以最后一步只是个验证表面所有部分都没有问题。

5.敏捷开发模型

别称:快速原型、极限编程、进化开发

​ 软件开发团队具有轻量化、快速工作、响应变化能力的价值观和原则,成为”敏捷联盟“,随后就有了敏捷联盟宣言,更像一份针对客户和开发个体的箴言警句集。以人为本,适应变化是敏捷开发的核心思想。

软件开发模型

  • 通过过程和工具理解个人和交流的作用
  • 通过全面的文档理解运行的软件
  • 通过合同和判断得到客户的协作
  • 在计划的执行过程中做出对应变更的响应

特点

  • 敏捷开发提倡迭代式和增量式的开发模式,更强调测试在其中的重要作用

  • 以用户为中心,以客户需求为导向的开发过程,更要随时迎接变化,客户是关键

  • 没有头单一固定的开发方法或过程,很多快速的开发模式都可以看作是敏捷开发。

    通用特点:以来客户的参与 、测试驱动 紧凑的迭代周期

很多快速的开发模式都可以看作是敏捷开发。

通用特点:以来客户的参与 、测试驱动 紧凑的迭代周期