码歌老薛聊聊软件开发模型(瀑布模型、快速原型、螺旋以及敏捷开发模式)

软件测试

纯手写和绘图,如果有需要转发请注明出处,谢谢合作。[老薛出品] :https://www.jianshu.com/p/39b6d8a10e0a

一、软件开发过程模型

在软件开发的几十年实践中,人们总结了很多软件开发模型来表述一个复杂的开发模型,图:

软件开发模型

软件测试和软件开发模式有着密切的关系,作为一名测试人员应该充分理解软件开发模式,方便找准自己在其中的位置,从而发挥自己的价值。

1.1 瀑布模型(重点)

图示

瀑布模型

瀑布模型介绍

瀑布模型在软件开发模型中占有重要的地位,它是线性模型中的一种,也是所有其他模型的基础。

在整个瀑布模型中,每个阶段都会执行一次,按照线性顺序进行软件开发。

关于切入点的选择

测试阶段在瀑布模型中处于软件实现后,那么也就意味着必须要给测试留下足够的时间,否则将导致测试不充分,很多问题项目后期才发现,导致返工成本增加,更有甚者可能直接项目夭折。

优缺点分析

模型 优点 缺点
瀑布模型 ①:开发的各个阶段清楚,方便统筹和管理 ②:早期的计划以及需求调研要做的比较充分,以便应对后期的需求变更 ③:适合项目的需求等比较成熟稳定 ①:对于早期的需求调查所占比例很高,不适应敏捷开发等模型 ②:流程单一,不太容易可逆 ③:风险拖到后期发现,成本不可控 ④:前期问题的积累导致整个项目失败

改进意见 : 沿用瀑布模型的线性思想,在每个阶段进行迭代操作。

1.2 快速原型模式

图示

快速原型

快速原型模型介绍

在真实的系统开发之前,构造一个原型,在原型的基础上,逐渐完成整个体系的系统开发工作。

开发步骤

  1. 第一步是构建一个快速原型,实现用户和系统的交互,用户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使得满足用户的要求。开发人员确定用户的真实需求。

  2. 第二步就是在第一步基础上不断迭代,开发出用户满意的软件产品。

优缺点分析

模型 优点 缺点
快速原型模型 克服了瀑布模型的缺点,更好的满足用户的需求并且减少了由于软件需求不明确导致的开发风险,适合事先不能确切定义需求的软件系统的开发 不适合大型的系统开发,适合中小型、灵活度要求比较高的项目。

1.3 螺旋模式

图示

螺旋模型

螺旋模型介绍

螺旋模型(Spiral Model)的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简单方法,是把它看做在每个阶段之前都增加了风险分析过程的快速原型模型。

开发步骤

  1. 瀑布模型(系统化)+快速原型(迭代过程)+风险分析。

  2. 一个螺旋式周期:

    1. 确定目标,选择方案,选定完成目标的策略

    2. 风险角度分析该策略

    3. 启动一个开发阶段

    4. 评价前一步的结果,计划下一轮的工作

优缺点分析

模型 优点 缺点
螺旋模型 螺旋模型主要适用于内部开发的大规模软件项目。本质上螺旋模型就是一种风险驱动体系,每个阶段的时候必须首先进行风险评估。 螺旋模型的主要优势在于,它是风险驱动的。除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。

1.4 敏捷开发模型

图示

敏捷开发模型

敏捷开发模型介绍

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

开发步骤

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,相对于传统软件开发方法的“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。

优缺点分析

模型 优点 缺点
敏捷开发模型 ①短周期开发。 ②增量开发。 ③ 由程序员和测试人员编写的自动化测试来监控开发进度。 ④通过口头沟通、测试和源代码来交流系统的结构和意图。 ⑤编写代码之前先写测试代码。也叫做测试先行。 ①团队的组建较难,人员素质要求较高。 ②对测试员要求完全掌握各种脚本语言编程,会单元测试。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。