软件工程是一个非常复杂的过程。在软件开发阶段要遵循不同的软件开发生命周期模型来指定和设计。这些模型也称为软件开发生命周期(SDLC)模型/方法。每个过程模型都遵循其类型所独有的一系列阶段,以确保软件开发步骤中的成功。
如今,已经有 50 多种公认的 SDLC 模型。它们都不是完美的,每一个都给特定的软件开发项目或团队带来了有利的方面和不利的方面。今天,我们将讨论业内最重要和最受欢迎的 7 种 SDLC 方法:
这些方法中的每一种都有其各自的特点,但是它们的共同目的是组织项目管理。这使团队能够尽可能经济高效地快速生产高质量的软件。
瀑布模型(Waterfall)是最简单的软件开发历史上第一个 SDLC 模型。在瀑布模型中,开发过程是线性的。任务和阶段按严格顺序一个接一个地完成。进度平稳地向下流动,就像瀑布上的水一样。
瀑布模型的主要缺点是不灵活。瀑布易于理解且易于管理。但是过早的延迟会拖延整个项目的时间表。由于一旦完成阶段,几乎没有修改的余地,因此只有进入维护阶段才能解决问题。如果需要灵活性,或者项目是长期的且正在进行的,则此模型不能很好地工作。
V 形模型也称为 V 模型或验证与验证模型,是瀑布方法的扩展。使用 V 模型时,进度并不会直线移动,而是在实施和开发后逐渐上升。
对于 V 型 SDLC 项目,早期测试介入是与 瀑布模型相比的主要区别。每个开发阶段都有一个并行测试阶段,这有助于在继续下一步之前验证和验证每个步骤。
迭代和增量 SDLC 模型将迭代设计和工作流与增量构建模型结合在一起。在这种情况下,团队将按周期开发产品,并以渐进方式构建小零件。
开发过程从简单实施一组严格限制的小型产品需求开始。然后对该产品进行增强,并使其本身成为更完整的版本,直到完成并准备好进行部署为止。每次迭代都可能包含设计更新和新功能。
迭代和增量模型的一个有价值的特点是可以在不知道所有需求的情况下开始开发。该模型包含其他 SDLC 模型的步骤 - 需求收集,设计,实施和测试,但要经过多次构建。开发团队可以利用先前构建中取得的成就来改善下一构建。
迭代和增量 SDLC 模型可能看起来像一组微型瀑布模型或微型 V 形模型。
螺旋 SDLC 模型是原型方法和瀑布方法的结合。螺旋模型被认为是最灵活的 SDLC 方法之一。它从迭代模型及其重复中获得启发。该项目以 “螺旋式” 的方式反复经历四个阶段,直到完成为止,从而可以进行多轮改进。
规划
风险分析
工程
评价
螺旋模型主要用于大型项目,它允许构建高度定制的产品,并且用户反馈可以在项目的早期就被纳入。但可能有项目会形成永无止境的螺旋式发展的风险。
Big Bang 模型通常不遵循任何特定过程或说明。开发从当前可用的资源和工作开始,几乎没有计划或根本没有计划。结果,客户得到的产品甚至可能无法满足要求。功能是动态实现的。
Big Bang SDLC 模型的主要思想是将所有可用资源分配给产品本身的开发,主要是在编码方面,而不用担心满足计划。这是仅用于一两个软件工程师的小型项目的 SDLC 方法之一。
敏捷(Agile)SDLC 模型是迭代和增量方法的组合,致力于通过早期交付工作软件来适应灵活的需求并满足用户和客户的需求。敏捷项目中的需求和解决方案可能会在开发过程中发展。
通过敏捷开发,该产品被分为小的增量构建,并以迭代方式交付。将所有任务划分为较小的时间范围,以便为每个版本准备工作功能。最终产品版本包含所有必需的功能。敏捷仍然是技术行业中使用最广泛的 SDLC。
敏捷软件开发生命周期有许多成熟的方法。最受欢迎的两个是 Scrum 和看板。
Scrum 是最受欢迎的敏捷框架之一,用于在 sprint 中交付软件的工作流框架,通常为期两周。Scrum 专注于如何在开发环境中管理任务,并有助于改善团队动态。
由于 Scrum 具有高度的适应性,因此没有一种千篇一律的方法来执行 Scrum。但是总的来说,团队需要在特定项目中安排相关的角色,事件,工件和规则。
典型元素:
Sprint 计划,团队计划在给定 Sprint 中要完成的工作量
每日 Scrum 会议,团队的每日简短聚会,讨论已完成的工作,他们今天打算做什么以及自上次会议以来发生了什么问题
Sprint 审查,在 Sprint 结束时进行的一次聚会,在此期间,团队将检查完成的工作并根据需要对产品积压进行更改
Sprint 回顾会在新的 Sprint 开始之前进行。在回顾期间,Scrum 团队总结了工作并根据他们过去的冲刺经验为未来的冲刺制定了改进计划。
看板是一种广泛用于敏捷 SDLC 模型的管理可视化方法。它有助于在开发团队中提高和维持高水平的生产力。看板的运行周期很短:如果 Scrum 大约是几周,那么看板大约是几个小时。Scrum 的目标是完成冲刺,而看板的目标是完成任务。看板是反多任务处理的。
看板的主要做法是:
可视化工作流程
限制进行中的任务
管理工作流程
使用板实现看板,该板上所有项目任务都可视化,并分为待办,进行中,暂停,完成和审查等列。看板还适用于较少的技术活动,例如销售,市场营销和招聘。
原型是系统的一个初期版本,可以快速开发以查看客户是否满意。客户参与开发过程会增加最终产品被早期接受的机会。当客户或开发人员不能百分百确定设计的可行性,产品要求,算法,业务规则等时,原型设计将非常有用。
原型模型有助于可视化软件的某些组成部分。这有助于避免客户与开发团队之间的误会。
DevOps 是新手模型。DevOps 来自两个趋势:敏捷方法和精益方法的应用。通常,DevOps 是通过自动化基础架构和工作流程并持续跟踪应用程序性能来执行的。DevOps 方法使您可以增加部署频率,编写代码并缩短部署新代码所需的时间。
DevOps 是工具,实践和方法的组合,鼓励开发人员,运维人员和 QA 人员共同努力,以进行持续的开发,测试和部署活动,以加速创新并交付更高质量和更可靠的软件产品和功能。
这些 SDLC 方法中的每一种都为你在职业生涯中会遇到的各种项目挑战提供了独特的流程。
要知道,没有一种方法是完美的,找到合适的一种或多种模型,去尝试,解决我们当下的问题就好。