codecamp

软件工程 开发生命周期

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

SDLC活动

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

通信

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

要求收集

从这一步开始,软件开发团队将继续执行该项目。该团队与来自问题领域的各种利益相关者进行讨论,并试图提供尽可能多的关于他们需求的信息。这些需求被划分为用户需求、系统需求和功能需求。这些需求是使用给定的许多实践手机的:

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

可行性研究

在需求收集之后,团队提出了软件过程的粗略计划。在这一步,团队分析是否可以制作一个软件来满足用户的所有需求,以及是否有任何软件不再有用的可能性。如果该项目在预算上、实际上和技术上对组织来说是可行的,就会被发现。有许多可用的算法,可以吧主开发人员得出软件项目的可行性。

系统分析

在这一步的开发者决定他们计划的路线图,并尝试提出适合该项目的最好的软件模型。系统的分析包括了解软件产品的限制,学习系统相关的问题或变化将在现有的系统中之前进行,识别并解决项目对组织人事等团队项目的影响分析项目的范围,并计划进度和相应的资源。

软件设计

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

编码

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

测试

据估计,应该测试整个软件开发过程的 50%。错误可能会破坏软件从关键级别到自行删除。软件测试由开发人员在编码的同时进行,由测试专家在各个级别的代码(例如模块测试、程序测试、产品测试、内部测试和用户端测试产品)上进行全面测试。尽早地发现错误及其补救措施是获得可靠软件的关键。

整合

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

实施

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

操作和维护

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

处置

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

软件开发范式

软件开发范式帮助开发人员选择开发软件的策略。软件开发范式有自己的一套工具、方法和程序,这些工具、方法和程序都被清晰地表达出来并定义了 SDLC。一些软件开发范式或过程模型定义如下:

瀑布模型

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

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

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

迭代模型

该模型在迭代中引导软件开发过程。它以循环方式投影开发过程,在 SDLC 过程的每个循环之后重复每一步。

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

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

螺旋模型

螺旋模型是迭代模型和 SDLC 模型两者的结合。可以看作是选择了一个 SDLC 模型比将其与循环过程(迭代模型)结合起来。

该模型考虑了风险,而大多数其他模型通常没有注意到风险。首先在一次迭代开始时确定软件的目标和约束。下一个阶段是对软件进行原型设计。这包括风险分析,然后使用一个标准的 SDLC 模型来构建软件。在第四阶段准备下一次迭代的计划。

V-Model

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

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

这使得验证和确认并行。该模型也被称为验证和确认的模式.

大爆炸模型

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

对于这个模型,只需要非常少量的规划。它不遵循任何流程,或者有时客户不确定需求和未来的需求。所以,输入要求是任意的.

这种模式不适合大型软件项目,但适合学习和实验。

如果需要深入了解 SDLC 及其各种模型,请单击此处

软件工程 概述
软件工程 项目管理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }