专栏首页测试之路8 种基本软件开发模型:选择哪一种?
原创

8 种基本软件开发模型:选择哪一种?

软件工程是一个非常复杂的过程。在软件开发阶段要遵循不同的软件开发生命周期模型来指定和设计。这些模型也称为软件开发生命周期(SDLC)模型/方法。每个过程模型都遵循其类型所独有的一系列阶段,以确保软件开发步骤中的成功。

如今,已经有 50 多种公认的 SDLC 模型。它们都不是完美的,每一个都给特定的软件开发项目或团队带来了有利的方面和不利的方面。今天,我们将讨论业内最重要和最受欢迎的 7 种 SDLC 方法:

  • 瀑布模型
  • V型
  • 迭代和增量模型
  • 螺旋模型
  • 大爆炸模型
  • 敏捷模型
  • 原型模型
  • DevOps

这些方法中的每一种都有其各自的特点,但是它们的共同目的是组织项目管理。这使团队能够尽可能经济高效地快速生产高质量的软件。

1.瀑布模型

瀑布模型(Waterfall) 是最简单的软件开发历史上第一个 SDLC 模型。在瀑布模型中,开发过程是线性的。任务和阶段按严格顺序一个接一个地完成。进度平稳地向下流动,就像瀑布上的水一样。

瀑布模型的主要缺点是不灵活。瀑布易于理解且易于管理。但是过早的延迟会拖延整个项目的时间表。由于一旦完成阶段,几乎没有修改的余地,因此只有进入维护阶段才能解决问题。如果需要灵活性,或者项目是长期的且正在进行的,则此模型不能很好地工作。

2. V 型模型

V 形模型也称为 V 模型或验证与验证模型,是瀑布方法的扩展。使用 V 模型时,进度并不会直线移动,而是在实施和开发后逐渐上升。

对于 V 型 SDLC 项目,早期测试介入是与 瀑布模型相比的主要区别。每个开发阶段都有一个并行测试阶段,这有助于在继续下一步之前验证和验证每个步骤。

3.迭代和增量模型

迭代和增量 SDLC 模型将迭代设计和工作流与增量构建模型结合在一起。在这种情况下,团队将按周期开发产品,并以渐进方式构建小零件

开发过程从简单实施一组严格限制的小型产品需求开始。然后对该产品进行增强,并使其本身成为更完整的版本,直到完成并准备好进行部署为止。每次迭代都可能包含设计更新和新功能。

迭代和增量模型的一个有价值的特点是可以在不知道所有需求的情况下开始开发。该模型包含其他 SDLC 模型的步骤-需求收集,设计,实施和测试,但要经过多次构建。开发团队可以利用先前构建中取得的成就来改善下一构建。

迭代和增量 SDLC 模型可能看起来像一组微型瀑布模型或微型 V 形模型。

4.螺旋模型

螺旋 SDLC 模型是原型方法和瀑布方法的结合。螺旋模型被认为是最灵活的 SDLC 方法之一。它从迭代模型及其重复中获得启发。该项目以“螺旋式”的方式反复经历四个阶段,直到完成为止,从而可以进行多轮改进。

  1. 规划
  2. 风险分析
  3. 工程
  4. 评价

螺旋模型主要用于大型项目,它允许构建高度定制的产品,并且用户反馈可以在项目的早期就被纳入。但可能有项目会形成永无止境的螺旋式发展的风险。

5.大爆炸模型

Big Bang 模型通常不遵循任何特定过程或说明。开发从当前可用的资源和工作开始,几乎没有计划或根本没有计划。结果,客户得到的产品甚至可能无法满足要求。功能是动态实现的。

Big Bang SDLC 模型的主要思想是将所有可用资源分配给产品本身的开发,主要是在编码方面,而不用担心满足计划。这是仅用于一两个软件工程师的小型项目的 SDLC 方法之一。

6.敏捷模型

敏捷(Agile) SDLC 模型是迭代和增量方法的组合,致力于通过早期交付工作软件来适应灵活的需求并满足用户和客户的需求。敏捷项目中的需求和解决方案可能会在开发过程中发展。

通过敏捷开发,该产品被分为小的增量构建,并以迭代方式交付。将所有任务划分为较小的时间范围,以便为每个版本准备工作功能。最终产品版本包含所有必需的功能。敏捷仍然是技术行业中使用最广泛的SDLC。

Scrum和看板

敏捷软件开发生命周期有许多成熟的方法。最受欢迎的两个是Scrum和看板

Scrum 是最受欢迎的敏捷框架之一,用于在sprint中交付软件的工作流框架,通常为期两周。Scrum专注于如何在开发环境中管理任务,并有助于改善团队动态。

由于Scrum具有高度的适应性,因此没有一种千篇一律的方法来执行Scrum。但是总的来说,团队需要在特定项目中安排相关的角色,事件,工件和规则。

典型元素:

  • Sprint 计划,团队计划在给定Sprint中要完成的工作量
  • 每日 Scrum 会议,团队的每日简短聚会,讨论已完成的工作,他们今天打算做什么以及自上次会议以来发生了什么问题
  • Sprint 审查,在 Sprint 结束时进行的一次聚会,在此期间,团队将检查完成的工作并根据需要对产品积压进行更改
  • Sprint 回顾会在新的 Sprint 开始之前进行。在回顾期间,Scrum 团队总结了工作并根据他们过去的冲刺经验为未来的冲刺制定了改进计划。

看板是一种广泛用于敏捷SDLC模型的管理可视化方法。它有助于在开发团队中提高和维持高水平的生产力。看板的运行周期很短:如果Scrum大约是几周,那么看板大约是几个小时。Scrum的目标是完成冲刺,而看板的目标是完成任务。看板是反多任务处理的。

看板的主要做法是:

  • 可视化工作流程
  • 限制进行中的任务
  • 管理工作流程

使用板实现看板,该板上所有项目任务都可视化,并分为待办,进行中,暂停,完成和审查等列。看板还适用于较少的技术活动,例如销售,市场营销和招聘。

7.原型制作

原型是系统的一个初期版本,可以快速开发以查看客户是否满意。客户参与开发过程会增加最终产品被早期接受的机会。当客户或开发人员不能百分百确定设计的可行性,产品要求,算法,业务规则等时,原型设计将非常有用。

原型模型有助于可视化软件的某些组成部分。这有助于避免客户与开发团队之间的误会。

8.DevOps模型

DevOps是新手模型。DevOps来自两个趋势:敏捷方法和精益方法的应用。通常,DevOps 是通过自动化基础架构和工作流程并持续跟踪应用程序性能来执行的。DevOps方法使您可以增加部署频率,编写代码并缩短部署新代码所需的时间

DevOps是工具,实践和方法的组合,鼓励开发人员,运维人员和 QA人员共同努力,以进行持续的开发,测试和部署活动,以加速创新并交付更高质量和更可靠的软件产品和功能。

哪种SDLC方法适合你?

这些SDLC方法中的每一种都为你在职业生涯中会遇到的各种项目挑战提供了独特的流程。

要知道,没有一种方法是完美的,找到合适的一种或多种模型,去尝试,解决我们当下的问题就好。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 下载并安装Git

    上篇 我们学习了什么是 Git 和 Github,回顾一下,Git 是一个工具,用来做版本控制,Github 是一个网站,基于云托管我们的代码,可以进行版本管理...

    Sharonyao
  • 软件测试入门,原来这么简单

    人非圣贤,孰能无过。每个组织的最终目标都有其自己的一套期望。对于某些企业而言,成功的实际结果与预期结果相匹配的频率很高,这表明了成功。但是,在达到最终目标之前,...

    Sharonyao
  • 5 分钟,带你了解MVP(最低可行性产品)

    如果你从事产品管理,产品开发或仅从事技术或软件方面的工作,不知道 MVP 这个词,可不行。很久之前就有看到过简单介绍,但一直没有去深入思考,我也没彻底搞懂它到底...

    Sharonyao
  • 关于两种统计模型文化的思考

    引言:本篇文章重新回顾了Breiman于2001年发表的《Statistical Modeling:The Two Cultures》一文,对数据建模和算法建模...

    AI科技评论
  • python apscheduler 打印日志

    logging.basicConfig() logging.getLogger('apscheduler').setLevel(logging.DEBUG)

    用户5760343
  • 英伟达“暴力碾压”谷歌:53分钟训练完BERT,2.2毫秒完成推理,创下NLP三项新纪录

    AI硬(he)件(dan)厂商英伟达今天宣布,他们在NLP模型上取得了三大突破,为今后会话AI的落地应用铺平了道路。

    量子位
  • 英伟达“暴力碾压”谷歌:53分钟训练完BERT,2.2毫秒完成推理,创下NLP三项新纪录

    AI硬(he)件(dan)厂商英伟达今天宣布,他们在NLP模型上取得了三大突破,为今后会话AI的落地应用铺平了道路。

    代码医生工作室
  • 精度是远远不够的:如何最好地评估一个分类器?

    分类模型(分类器)是一种有监督的机器学习模型,其中目标变量是离散的(即类别)。评估一个机器学习模型和建立模型一样重要。我们建立模型的目的是对全新的未见过的数据进...

    deephub
  • 七夕礼物没送对?飞桨PaddlePaddle帮你读懂女朋友的小心思

    “女孩儿的心思男孩你别猜,你猜来猜去也猜不明白。不知道她为什么掉眼泪,也不知她为什么笑开怀……”

    用户1386409
  • 七夕礼物没送对?飞桨PaddlePaddle帮你读懂女朋友的小心思

    “女孩儿的心思男孩你别猜,你猜来猜去也猜不明白。不知道她为什么掉眼泪,也不知她为什么笑开怀……”

    量子位

扫码关注云+社区

领取腾讯云代金券