软件开发生命周期

软件开发生命周期,简称 SDLC,是软件工程中定义明确、结构化的阶段序列,用于开发预期的软件产品。

SDLC 活动

SDLC 提供了一系列步骤,可有效地设计和开发软件产品。 SDLC 框架包括以下步骤:

SDLC

沟通

这是用户发起所需软件产品请求的第一步。他联系服务提供商并尝试协商条款。他以书面形式向服务提供组织提交请求。

需求收集

从这一步开始,软件开发团队开始开展项目。团队与问题领域的各种利益相关者进行讨论,并尝试尽可能多地了解他们的需求。考虑需求并将其分为用户需求、系统需求和功能需求。使用给定的多种做法来收集需求 -

  • 研究现有或过时的系统和软件,
  • 对用户和开发人员进行访谈,
  • 参考数据库或
  • 从问卷中收集答案。

可行性研究

收集需求后,团队制定了软件流程的粗略计划。在此步骤中,团队将分析软件是否可以满足用户的所有要求,以及软件是否有可能不再有用。确定该项目是否在财务上、实践上和技术上适合组织开展。有许多可用的算法可以帮助开发人员确定软件项目的可行性。

系统分析

在此步骤中,开发人员决定其计划的路线图,并尝试提出最适合项目的软件模型。系统分析包括了解软件产品的局限性、提前了解系统相关问题或现有系统中需要进行的更改、识别和解决项目对组织和人员的影响等。项目团队分析项目范围并相应地规划时间表和资源。

软件设计

下一步是将需求和分析的全部知识带到桌面上并设计软件产品。来自用户的输入和在需求收集阶段收集的信息是此步骤的输入。此步骤的输出以两种设计的形式出现:逻辑设计和物理设计。工程师生成元数据和数据字典、逻辑图、数据流图,有时还有伪代码。

编码

此步骤也称为编程阶段。软件设计的实施始于用合适的编程语言编写程序代码并高效开发无错误的可执行程序。

测试

据估计,整个软件开发过程的 50% 应该进行测试。错误可能会从关键级别到软件本身被删除,从而毁掉软件。软件测试是在开发人员编码时进行的,测试专家会在各个代码级别进行全面测试,例如模块测试、程序测试、产品测试、内部测试和用户端产品测试。及早发现错误并予以纠正是可靠软件的关键。

集成

软件可能需要与库、数据库和其他程序集成。 SDLC 的这个阶段涉及软件与外部世界实体的集成。

实施

这意味着在用户机器上安装软件。有时,软件需要在用户端进行安装后配置。软件经过可移植性和适应性测试,并在实施过程中解决与集成相关的问题。

操作和维护

此阶段确认软件操作效率更高、错误更少。如果需要,用户将接受培训或获得有关如何操作软件以及如何保持软件运行的文档帮助。通过根据用户端环境或技术的变化更新代码来及时维护软件。此阶段可能会面临隐藏的错误和现实世界中未识别的问题带来的挑战。

处置

随着时间的推移,软件的性能可能会下降。它可能会完全过时或需要进行大量升级。因此,迫切需要消除系统的主要部分。此阶段包括存档数据和所需的软件组件、关闭系统、规划处置活动以及在适当的系统结束时终止系统。

软件开发范例

软件开发范例帮助开发人员选择开发软件的策略。软件开发范例有自己的一套工具、方法和程序,这些工具、方法和程序表达清晰并定义了软件开发生命周期。一些软件开发范例或过程模型定义如下:

瀑布模型

瀑布模型是软件开发范例中最简单的模型。它表示 SDLC 的所有阶段都将以线性方式一个接一个地运行。也就是说,当第一阶段完成后,才会开始第二阶段,依此类推。

该模型假设一切都按照上一阶段的计划完美地进行,无需考虑下一阶段可能出现的过去问题。如果上一步遗留了一些问题,该模型就无法顺利运行。模型的顺序性不允许我们返回并撤消或重做我们的操作。

当开发人员过去已经设计和开发过类似的软件并了解其所有领域时,此模型最适合。

迭代模型

该模型以迭代方式引导软件开发过程。它以循环方式规划开发过程,在 SDLC 过程的每个周期后重复每个步骤。

迭代模型

软件首先在非常小的规模上进行开发,并遵循所有考虑在内的步骤。然后,在每次迭代中,都会设计、编码、测试和添加更多功能和模块到软件中。每个周期都会产生一个软件,它本身是完整的,并且比上一个软件具有更多的功能和能力。

每次迭代后,管理团队都可以进行风险管理并为下一次迭代做准备。由于一个周期只包含整个软件过程的一小部分,因此管理开发过程更容易,但会消耗更多资源。

螺旋模型

螺旋模型是迭代模型和 SDLC 模型之一的结合。可以看出,如果您选择一个 SDLC 模型并将其与循环过程(迭代模型)相结合。

螺旋模型

该模型考虑了风险,而大多数其他模型往往忽略了风险。该模型从在一次迭代开始时确定软件的目标和约束开始。下一阶段是软件原型设计。这包括风险分析。然后使用一个标准 SDLC 模型来构建软件。在第四阶段,准备下一次迭代的计划。

V – 模型

瀑布模型的主要缺点是,我们只有在前一个阶段完成后才能进入下一个阶段,如果在后面的阶段发现问题,就没有机会返回。 V-Model 以反向方式在每个阶段提供软件测试方法。

V-Model

在每个阶段,都会创建测试计划和测试用例,以根据该阶段的要求验证和确认产品。例如,在需求收集阶段,测试团队根据需求准备所有测试用例。之后,当产品开发完毕并准备好进行测试时,此阶段的测试用例将根据此阶段对需求的有效性验证软件。

这使得验证和确认并行进行。此模型也称为验证和确认模型。

大爆炸模型

此模型是其形式中最简单的模型。它几乎不需要规划,只需要大量编程和大量资金。该模型围绕宇宙大爆炸概念化。正如科学家所说,大爆炸后,许多星系、行星和恒星就像一个事件一样演化而来。同样,如果我们整合大量的编程和资金,您可能会获得最好的软件产品。

大爆炸模型

对于此模型,需要的规划量非常小。它不遵循任何流程,或者有时客户不确定要求和未来需求。因此输入要求是任意的。

此模型不适用于大型软件项目,但适合学习和实验。