软件开发生命周期 (SDLC)(也称为应用程序开发生命周期)是规划、创建、测试和部署软件系统的过程。系统开发生命周期框架为系统设计人员和开发人员提供了一系列可遵循的活动。它由一组步骤或阶段组成,其中 SDLC 的每个阶段都使用前一个阶段的结果。
SDLC 遵循对开发人员至关重要的重要阶段,例如规划、分析、设计和实施。就像在装配线上制造的任何东西一样,SDLC 旨在根据客户的要求,通过在预定的时间框架和成本估算内交付经过每个明确定义的阶段的系统,生产满足或超出客户期望的高质量系统。
传统 / 瀑布 / 迭代 / 敏捷 / XP / Scrum
已经创建了许多 SDLC 模型或方法,例如瀑布、螺旋、敏捷软件开发、快速原型设计等。
传统的软件开发生命周期由许多明确定义和不同的工作阶段组成,系统工程师和系统开发人员使用这些阶段来规划、设计、构建、测试和交付信息系统。例如,瀑布模型侧重于完整和正确的规划,以引导大型项目和风险获得成功和可预测的结果
现代计算世界中很少有人会为他们的 SDLC 使用严格的瀑布模型,因为许多现代方法已经取代了这种想法。有人会争辩说,SDLC 不再适用于敏捷计算等模型,但它仍然是技术界广泛使用的术语。SDLC 实践在传统的系统开发模型中具有优势,更适合结构化环境。使用 SDLC 方法的缺点是需要迭代开发或(即 Web 开发或电子商务)利益相关者需要定期审查正在设计的软件。
SDLC 也可以从敏捷到迭代到顺序方法论的范围进行描述。敏捷方法,例如 XP 和 Scrum,侧重于允许在开发周期中进行快速更改(不必遵循 SDLC 方法的模式)的轻量级流程。
传统的项目管理(瀑布)方法是线性的,其中流程的所有阶段都按顺序发生。该方法取决于可预测的工具和可预测的经验。每个项目都遵循相同的生命周期,包括可行性、计划、设计、构建、测试、生产、支持等阶段,如下图所示。
整个项目都是预先计划好的,没有任何需求变化的余地,比如瀑布都是死板的,高度控制的。它们概述了从开始到结束的项目规划的不同阶段,并假设您预先拥有所需的所有要求和信息。下表总结了 Scrum 和传统项目管理模型之间的许多差异。
类别 | 传统的 | 敏捷 |
发展模式 | 传统的 | 迭代 |
重点 | 过程 | 人们 |
管理 | 控制 | 促进 |
客户参与 | 需求收集和交付阶段 | 现场持续参与 |
开发商 | 在团队中单独工作 | 合作或成对 |
技术 | 任何 | 主要面向对象 |
产品特点 | 全都包括 | 最重要的第一 |
测试 | 开发周期结束 | 迭代和/或驱动代码 |
文档 | 通过 | 仅在需要时 |
瀑布模型
它是最古老和最直接的。使用这种方法,我们完成一个阶段,然后开始下一个阶段。每个阶段都有自己的迷你计划,每个阶段都“瀑布”进入下一个阶段。它是第一个识别构成系统开发过程的不同阶段的模型,其简单性使其成为多年来的有用模型。然而,瀑布模型并不是真正反映系统开发中实际发生的事情,因为它没有强调迭代各个阶段的需要。这种模式的最大缺点是,不完整的小细节会拖垮整个过程。
V型
作为瀑布模型的扩展,此 SDLC 方法在开发的每个阶段进行测试。与瀑布一样,这个过程可能会遇到障碍。它强调后期发展阶段与早期阶段之间的关系;例如,应如何从需求和分析期间执行的活动中导出测试。
螺旋模型
SDLC 模型中最灵活的螺旋模型类似于迭代模型,它强调重复。螺旋模型一遍又一遍地经历规划、设计、构建和测试阶段,并在每次通过时逐步改进。
增量开发
在这个生命周期模型中,系统根据功能区域进行划分。每个主要功能区域都是独立开发并交付给客户的。例如,在自行车租赁系统中,可能会开发和交付与发放自行车相关的任务,然后归还自行车,然后维护客户记录。
领先的敏捷方法
敏捷是一种心态,它是一套价值观和原则。敏捷是一种思考和行动的方式。敏捷是关于短周期、迭代和增量交付、快速失败、获得反馈、尽早向客户交付业务价值以及人员、协作和交互。敏捷是一种关于透明度、检查和适应的思维方式。然而,敏捷并不包含任何 角色、事件或 工件。这是一种心态。例如, Scrum 是敏捷保护伞下广泛使用的框架之一,它可以帮助您变得更加敏捷,但是敏捷运动中还有更多框架,例如看板、XP、Crystal 等等,如图所示以下:
敏捷 SDLC 模型将产品分成多个周期,并非常快速地交付工作产品。这种方法会产生一系列的发布。对每个版本的测试会反馈包含在下一个版本中的信息。
概括
正确完成 SDLC 可以实现最高级别的管理控制和文档。开发人员了解他们应该构建什么以及为什么。各方事先就目标达成一致,并看到实现该目标的明确计划。每个人都了解所需的成本和资源。
- SDLC 或软件开发生命周期是在最短的时间内生产最高质量和最低成本的软件的过程。
- SDLC 包括有关如何开发、更改、维护和更换软件系统的详细计划。
- SDLC 涉及几个不同的阶段,包括规划、设计、构建、测试和部署。
- 流行的 SDLC 模型包括瀑布模型、螺旋模型和敏捷模型。
- The Agile Manifesto and Twelve Principles
- 10 Most Frequently Mentioned Basic Rules in Scrum
- Comprehensive Scrum Guide
- Agile Product Management with Scrum in a Nutshell
- What are Scrum's Three Pillars?
- What is Agile Software Development?
- What is Agile Project Management?
- Scrum in 3 Minutes
- What are the 5 Scrum Values?
- What is the Evolution of Scrum?
- Classical Project Management vs Agile Project Management