软件开发生命周期 (SDLC) 阶段与模型
什么是 SDLC?
SDLC 是一个系统化的软件构建过程,可确保构建的软件的质量和正确性。SDLC 过程旨在生成满足客户期望的高质量软件。系统开发应在预定的时间内和成本内完成。SDLC 包含一个详细的计划,说明如何规划、构建和维护特定软件。SDLC 生命周期中的每个阶段都有其自身的流程和可交付成果,这些可交付成果会馈送到下一阶段。SDLC 代表 软件开发生命周期,也称为应用程序开发生命周期。
为什么需要 SDLC?
以下是 SDLC 对开发软件系统至关重要的主要原因。
- 它为项目规划、调度和估算提供了基础
- 为标准的活动和可交付成果集提供了一个框架
- 它是项目跟踪和控制的机制
- 提高开发过程所有相关利益相关者对项目规划的可见性
- 提高和加速开发速度
- 改善客户关系
- 帮助您降低项目风险和项目管理计划开销
SDLC 阶段
整个 SDLC 过程分为以下 SDLC 步骤
- 阶段 1:需求收集和分析
- 阶段 2:可行性研究
- 阶段 3:设计
- 阶段 4:编码
- 阶段 5:测试
- 阶段 6:安装/部署
- 阶段 7:维护
在本教程中,我已解释了所有这些软件开发生命周期阶段
阶段 1:需求收集和分析
需求是 SDLC 过程的第一步。它由资深团队成员根据所有利益相关者和行业领域专家的意见进行。在此阶段,还进行质量保证要求的规划以及风险的识别。
此阶段为整个项目的范围以及预期的挑战、机遇和触发项目的指令提供了更清晰的图景。
需求收集阶段要求团队获得详细准确的需求。这有助于公司确定完成该系统工作所需的时间表。
阶段 2:可行性研究
需求分析阶段完成后,下一个 SDLC 步骤是定义和记录软件需求。此过程通过“软件需求规范”文档(也称为“SRS”文档)完成。它包括在项目生命周期中应设计和开发的所有内容。
主要有五种可行性检查
- 经济性:项目能否在预算内完成?
- 合法性:我们能否按照网络法和其他监管框架/合规性来处理此项目。
- 操作可行性:我们能否创建客户期望的操作?
- 技术性:需要检查当前计算机系统是否支持该软件
- 计划:决定项目能否在给定计划内完成。
阶段 3:设计
在第三阶段,根据需求规范文档准备系统和软件设计文档。这有助于定义整体系统架构。
此设计阶段为模型的下一阶段提供输入。
在此阶段开发两种设计文档
高层设计 (HLD)
- 每个模块的简要描述和名称
- 关于每个模块功能的概述
- 模块之间的接口关系和依赖关系
- 识别的数据库表及其键元素
- 完整的架构图以及技术细节
低层设计 (LLD)
- 模块的功能逻辑
- 数据库表,包括类型和大小
- 接口的完整细节
- 解决所有类型的依赖问题
- 错误消息列表
- 每个模块的完整输入和输出
阶段 4:编码
系统设计阶段完成后,下一阶段就是编码。在此阶段,开发人员开始使用选定的编程语言编写代码来构建整个系统。在编码阶段,任务被分成单元或模块并分配给不同的开发人员。这是软件开发生命周期过程中最长的阶段。
在此阶段,开发人员需要遵循某些预定义的编码准则。他们还需要使用编程工具,如编译器、解释器、调试器来生成和实现代码。
阶段 5:测试
软件完成后,将其部署到测试环境中。然后测试团队开始测试整个系统的功能。这是为了验证整个应用程序是否按照客户需求运行。
在此阶段,QA 和测试团队可能会发现一些错误/缺陷,他们会将这些错误/缺陷告知开发人员。开发团队修复错误后会将其发回给 QA 进行重新测试。此过程一直持续到软件没有错误、稳定并按照该系统的业务需求运行为止。
阶段 6:安装/部署
软件测试阶段完成后,系统中不再存在错误或缺陷,然后开始最终部署过程。根据项目经理的反馈,发布最终软件并检查是否存在任何部署问题。
阶段 7:维护
系统部署后,客户开始使用已开发的系统,会发生以下 3 个活动
- 错误修复——由于某些未完全测试的场景会报告错误
- 升级——将应用程序升级到更新的软件版本
- 增强——在现有软件中添加一些新功能
此 SDLC 阶段的主要重点是确保继续满足需求,并确保系统继续按照第一阶段所述的规范运行。
流行的 SDLC 模型
以下是一些最重要的软件开发生命周期 (SDLC) 模型
SDLC 中的瀑布模型
瀑布模型是一种被广泛接受的 SDLC 模型。在这种方法中,软件开发的整个过程被划分为 SDLC 的不同阶段。在此 SDLC 模型中,一个阶段的产出是下一阶段的输入。
该 SDLC 模型是文档密集型的,早期阶段记录了后续阶段需要执行的操作。
SDLC 中的增量模型
增量模型不是一个独立的模型。它本质上是一系列瀑布周期。在项目开始时,需求被分成几组。对于每个组,都遵循 SDLC 模型来开发软件。SDLC 生命周期过程会重复进行,每次发布都会增加更多功能,直到满足所有需求。在此方法中,每个周期都充当先前软件发布的维护阶段。增量模型的修改允许开发周期重叠。之后,可能在前一个周期完成之前就开始下一个周期。
SDLC 中的 V 模型
在这种 SDLC 模型中,测试和开发阶段是并行进行的。因此,SDLC 的验证阶段在一侧,而验证阶段在另一侧。V 模型在编码阶段合并。
SDLC 中的敏捷模型
敏捷方法论是一种在任何项目的 SDLC 过程中促进开发和测试持续交互的实践。在敏捷方法中,整个项目被分成小的增量构建。所有这些构建都以迭代的形式提供,每次迭代持续一到三周。
螺旋模型
螺旋模型是一个风险驱动的过程模型。这个 SDLC 测试模型有助于团队采纳一种或多种过程模型(如瀑布、增量、瀑布等)的元素。
该模型采用了原型模型和瀑布模型的最佳特性。螺旋方法论是快速原型设计以及设计和开发活动并发性的结合。
大爆炸模型
大爆炸模型侧重于软件开发和编码的所有类型资源,几乎没有或很少规划。需求会在出现时得到理解和实施。
该模型最适合拥有小型开发团队共同工作的小型项目。它也适用于学术软件开发项目。对于需求未知或未给出最终发布日期的项目,这是一个理想的模型。
摘要
- 软件开发生命周期 (SDLC) 是一个系统化的软件构建过程,可确保构建的软件的质量和正确性
- SDLC 的全称是软件开发生命周期或系统开发生命周期。
- 软件工程中的 SDLC 为标准的活动和可交付成果集提供了一个框架
- 七个不同的 SDLC 阶段是:1)需求收集和分析;2)可行性研究;3)设计;4)编码;5)测试;6)安装/部署;7)维护
- 高级团队成员负责需求分析阶段
- 可行性研究阶段包括在项目生命周期中应设计和开发的所有内容
- 在设计阶段,根据需求规范文档准备系统和软件设计文档
- 在编码阶段,开发人员开始使用选定的编程语言编写代码来构建整个系统
- 测试是下一个阶段,旨在验证整个应用程序是否按照客户需求运行。
- 当软件测试阶段完成,并且系统中没有错误或缺陷时,安装和部署阶段就开始了
- 维护阶段涵盖错误修复、升级和增强操作
- 瀑布模型、增量模型、敏捷模型、V 模型、螺旋模型、大爆炸模型是软件工程中一些流行的 SDLC 模型
- 软件测试中的 SDLC 包含一个详细的计划,说明如何规划、构建和维护特定软件