瀑布模型(Waterfall model) 测试成熟度模型 螺旋模型(Spiral Model) 瀑布模型(Waterfall model) 它是软件开发中使用的第一种方法和基本模型。这是一个简单的模型,易于使用和理解。执行按顺序发生,这意味着一个阶段的结果等于另一个阶段的输入。这就是为什么它也被称为线性顺序生命周期模型。 为了避免多个阶段的重叠问题,每个阶段都应该在进入下一阶段之前完成。瀑布模型的每个阶段都涉及前一阶段的可交付成果,如需求、转移到设计阶段、设计转移到开发等。当我们有生命关键(医院应用)和机器关键(军事项目)时,我们会广泛使用瀑布模型。 瀑布模型分为各个阶段,具体如下: 需求收集 可行性研究 设计 编码 测试 安装 维护 让我们一一了解它们: 需求收集 需求收集是瀑布模型的第一阶段,在此阶段,业务分析师将以需求文档的形式收集客户的所有信息或业务需求。并且这份文件应该清晰易懂,所有要求都正确列出。 借助软件需求规范[SRS]、客户需求规范[CRS]和业务需求规范[BRS],生成SRS文档。这份 SRS 文档涵盖了应该开发和设计的全部内容。 功能需求的特点 它应该用简单的语言编写,以便易于理解。 规范应该在适当的流程中。 要求应该是可数的。 可行性研究 可行性研究基于项目的需求,许多人(人力资源、业务分析师、架构)评估项目是否可以完成。要开发一个好的项目,我们应该遵循各种特性,这些特性是基于客户的要求: 方面 描述 合法的 公司能否按照网络法和其他监控协议来处理该项目? 技术的 检查可用机器是否支持该软件? 操作可行性 公司应该能够产生客户给予的操作? 经济 公司是否能够在给定的预算内完成产品? 日程 该项目应在给定的时间表内完成或不完成。 设计 完成可行性研究后,我们将进入下一阶段,即设计。在此,我们将借助一些基本工具,例如不同软件和硬件的组合、各种编程语言(PHP、Java、.Net 等)、数据库(MySQL、Oracle)来创建产品的架构。然后设计师为应用程序准备好可以分为两个不同部分的计划: 高级设计 低级设计 高级设计 [HLD]: 在这种情况下,设计师将只专注于决策树、流程图、决策表、流程图、数据字典等模型,而架构师会这样做。 低级设计 [LLD]: 在这种情况下,设计人员将专注于用户界面 (UI) 等组件,而开发人员经理会这样做。 编码 一旦我们完成了设计阶段,我们就可以开发应用程序了。为此,开发人员将根据他们的编程语言知识开始编写代码,它可以是任何语言,例如 Python、C、Java、C#、C++ 等。而后端开发人员将根据所需的操作进行后端编码,而前端开发人员将开发有吸引力的 GUI。 测试 编码编译完成后,交给关心的测试工程师。之后,测试工程师将根据客户的要求开始测试应用程序的功能。 在测试应用程序时,他们可能会遇到应用程序中的一些缺陷或错误(不按照客户的需要工作),并将这些错误以适当的理由发送给开发人员。开发人员将验证给定的错误是否有效。如果它是正确的,它将由开发人员修复并更改为新的。之后,测试人员将重新测试它并验证错误是否已修复。 安装 测试应用程序后,我们将进入下一阶段(安装)。在这种情况下,该过程将一直持续到软件稳定或无错误并满足所有客户要求。当应用程序稳定后,它将安装到客户端的环境中供他们使用。 获得软件后,客户将进行一轮测试,使其满意。如果他们遇到任何错误,他们将通知开发团队为特定应用程序解决这些问题。当所有问题都得到解决后,应用程序将被部署供最终用户使用。 维护 成功完成六个阶段后,我们将进入瀑布模型的最后一个阶段(维护)。在这种情况下,该过程将一直持续到软件结束,最终用户开始使用该应用程序,他们可能会遇到一些需要测试和修复的问题。不时地照顾产品称为维护,其中包括硬件和软件中发生的变化,以保持操作有效性并提高性能。 瀑布模型示例 早些时候它被用于人力资源管理 [HRM]、供应链管理系统、客户关系管理 [CRM] 和零售链等应用程序,但现在,瀑布模型已被其他模型取代,例如迭代模型和敏捷方法论等。 瀑布模型的优缺点 优点 缺点 在瀑布模型中,需求应该是明确的。 这个模型没有并行的可交付成果,这意味着两个团队可以一起工作。 它适用于需要很好理解的较小项目。 瀑布模型不提供需求变更和需求审查。 这个模型很容易理解,也很容易使用。 以前,当瀑布被发明时,没有测试的概念,这就是为什么使用开发人员来测试应用程序。 这将使我们能够有效地安排任务。 在两者之间,不允许更改,因为一个阶段依赖于另一个阶段。 在此模型中,允许更改版本级别。 向后跟踪是不可能的。 在这个模型中,程序和结果都有很好的记录。 这是一个耗时的过程。 测试成熟度模型 螺旋模型(Spiral Model)