4. 软件开发周期中的模型
根据软件项目类型的不同,有很多的软件开发周期模型。每种模型都遵循一系列操作的步骤,以适应项目需要,从而确保软件开发顺利进行。流水线模型,可迭代模型,敏捷开发模型,快速开发模型是最受欢迎的模型,而且已经被广泛应用于生产环境中,如下,他们将会被一一介绍:
1. 流水线模型
流水线模型是最早的,最为人所熟知的,同时也是应用最广泛的模型。它是一个简单的序列化的生命周期,方便理解和使用。在其他阶段开始之前,每一个阶段必须被完整的实现,也就意味着是不允许出现重叠的阶段。上个阶段的输出服务于下一个阶段的输入。
流水线模型的各个步骤的解释:
1. 需求
需求阶段主要关注于与业务用户进行交流,以便收集和分析需求。项目经理尽力去理解和分析业务,抓住所有的用户需求的细节,在业务案例文档中定义范围、安排资源。
2. 设计
业务案例文档已经在需求阶段准备好了,商业分析通过利用项目经理收集的信息和需求来评估软件并开始进行逻辑设计。系统分析人员基于满足所有用户需求的高级设计,将高级设计转换为考虑硬件和软件技术的物理设计。系统架构也在设计阶段进行定义。
3. 实现
实现阶段主要是代码的编写,程序开发人员根据在需求和设计阶段准备的文档中的说明来开发软件,它们的输出是功能规范,其中记录了所实现功能的所有详细信息。
4. 测试
利用实现阶段的输入,处于测试阶段的测试人员将根据功能规范起草测试计划。 程序员在检查表中准备测试计划,以检查每个功能是否可以按预期执行。 业务分析师为用户准备测试计划,该计划着重于满足用户需求。 最后,质量控制(QC)专家收集了之前所有阶段的所有文档,并在更深层次上对各个方面进行了全面测试,并编写包括系统体系结构,使用的技术等文档。
5. 部署
从测试阶段收到“通过”后,该产品就已经准备好发布了。软件或应用程序将被部署到生产服务器中,以供用户安装在自己的计算机上。
6. 维护
实际上,不可避免地会出现一些缺陷或问题。此外,世界每天都在变化,因此有必要不时进行更新。维护阶段用于解决这种情况并再次将更改交付给用户。在维护阶段,涉及软件开发生命周期流水线模型的子集。
每个阶段的输入和输出总结如下:
模型的应用
在SDLC中使用的流水线模型的适用情况如下:
- 数量有限的歧义或未确认的要求
- 需要有详细文档介绍的软件
- 使用成熟的技术而不是动态更新的
- 管理部门可以提供足够的资源,并且有专家来担任每个阶段的角色。
- 小型项目
优劣
优势:
- 易于管理,因为每个阶段都有明确的时间表,可以明确界限;
- 易于控制,由于没有重叠的开发阶段,因此在有限的外部因素的情况下更易于控制;
- 提供广泛的文档
- 随着项目从概念、设计、实现、测试、故障排除、运行再到维护的发展,为项目提供了严格且独特的的控制策略,使项目向前发展。
劣势:
- 不能有范围变更和需求变更;
- 知道产品部署之前,不能预览产品;
- 不能灵活的处理一些意外风险;
- 在项目开始和结束时与用户的沟通有限;
- 需要更多的资源,一些团队成员可能会长时间闲置;
- 不适合长期或进行中的项目,因为项目可能永远不会结束并到达最后一个阶段。