V模型(软件开发)

系统工程过程的V模型。

软件开发中, V模型代表一个开发过程,可以被视为瀑布模型的扩展,并且是更通用的V模型的一个示例。在编码阶段之后,过程步骤没有以线性方式向下移动,而是形成典型的V形状。 V模型展示了发展生命周期的每个阶段及其相关阶段的关系之间的关系。水平和垂直轴分别代表时间或项目完整性(从左到右)和抽像水平(最高的元素抽象最高)。

项目定义阶段

需求分析

需求分析阶段,验证过程的第一步是,通过分析用户的需求来收集系统的要求。该阶段涉及确定理想系统必须执行的操作。但是,它不能确定如何设计或构建软件。通常,对用户进行采访,并生成称为用户需求文档的文档。

用户需求文档通常会描述系统的功能,界面,性能,数据,安全性等。用户预期的要求。业务分析师将其用于将其对系统的理解传达给用户。用户仔细查看此文档,因为本文档将作为系统设计阶段系统设计人员的指南。用户接受测试是在此阶段设计的。另请参见功能要求

有不同的方法来收集软方法和硬方法的要求,包括:访谈,问卷调查,文档分析,观察,投掷原型,用例以及与用户的静态和动态视图。

系统设计

系统设计是系统工程师通过研究用户需求文档来分析和了解拟议系统业务的阶段。他们找出可以实现用户要求的可能性和技术。如果任何要求不可行,则将用户告知该问题。找到解决方案,并相应地编辑用户要求文档。

生成了作为开发阶段的蓝图的软件规范文档。本文档包含通用系统组织,菜单结构,数据结构等。它还可以容纳示例业务场景,示例窗口和报告以帮助理解。在此阶段还将生成其他技术文档,例如实体图,数据字典。准备系统测试的文档。

架构设计

计算机架构软件体系结构设计的阶段也可以称为高级设计。选择架构的基线是,它应该实现所有通常由模块列表,每个模块的简短功能,其接口关系,依赖关系数据库,体系结构图,技术详细信息等组成的所有内容。进行集成测试设计是进行的在特定阶段。

模块设计

模块设计阶段也可以称为低级设计。设计的系统被分解为较小的单元或模块,并解释了每个系统,以便程序员可以直接开始编码。低级设计文档或程序规范将包含模块的详细功能逻辑,以伪代码

  • 数据库表,所有元素,包括其类型和大小
  • 所有接口详细信息,带有完整的API参考
  • 所有依赖问题
  • 错误消息列表
  • 完成模块的输入和输出。

单位测试设计是在此阶段开发的。

验证阶段

在V模型中,验证阶段的每个阶段在验证阶段都有相应的阶段。以下是V模型中验证的典型阶段,尽管它们可能以其他名称知道。

单位测试

在V模型中,单位测试计划(UTP)是在模块设计阶段开发的。执行这些UTP以消除代码级别或单位级别的错误。单元是可以独立存在的最小实体,例如程序模块。单元测试验证最小的实体在与其余代码/单元中隔离时是否可以正常工作。

集成测试

集成测试计划是在建筑设计阶段开发的。这些测试验证了独立创建和测试的单位可以共存并在彼此之间进行交流。测试结果与客户的团队共享。

系统测试

系统测试计划是在系统设计阶段制定的。与单位和集成测试计划不同,系统测试计划由客户的业务团队组成。系统测试可确保满足开发的应用程序的期望。对整个应用程序的功能,相互依存和通信进行了测试。系统测试可以验证是否满足了功能和非功能性要求。负载和性能测试,应力测试,回归测试等是系统测试的子集。

用户验收测试

在需求分析阶段制定了用户验收测试(UAT)计划。测试计划由企业用户组成。 UAT使用现实数据在类似于生产环境的用户环境中执行。 UAT验证交付的系统满足用户的要求,并且系统可以实时使用。

批评

由于许多原因,敏捷的拥护者和其他人批评了V模型是软件开发模型不足的批评。批评包括:

  1. 它太简单了,无法准确反映软件开发过程,并且可以使管理人员陷入错误的安全感。 V模型反映了软件开发的项目管理视图,并适合项目经理,会计师和律师而不是软件开发人员或用户的需求。
  2. 尽管新手很容易理解,但只有在新手继续深入了解开发过程以及如何在实践中对V模型进行更深入的了解以及如何扩展V模型时,早期的理解才有用。如果从业者对V型的天真观点坚持不懈,他们将很难成功地应用它。
  3. 它是僵化的,鼓励软件开发的僵化和线性视图,并且没有固有的响应能力。
  4. 它仅在瀑布模型上提供一个轻微的变体,因此受到与该模型相同的批评。它更加重视测试,尤其是早期测试计划的重要性。但是,对V模型的常见实际批评是,当早期阶段过度时,它会导致测试在开发结束时被挤压到紧密的窗户中,但实施日期仍然固定。
  5. 它与测试的效率低下且无效的方法是一致的,因此,并暗中鼓励了无效的方法。它隐含地提前促进了编写测试脚本,而不是探索性测试。它鼓励测试人员寻找他们期望找到的东西,而不是发现真正的东西。它还鼓励在任何一个腿的等效级别之间存在僵化的链接(例如用户需求文档的用户接受测试计划),而不是鼓励测试人员选择最有效,最有效的方法来计划和执行测试。
  6. 它缺乏连贯性和精度。关于V模型是什么,人们普遍存在混乱。如果一个人将其归结为大多数人同意的要素,将成为软件开发的陈词滥调和无益的代表。关于V模型的优点的分歧通常反映出对其定义缺乏共同的理解。

当前状态

V模型的支持者认为,它随着时间的流逝而发展,并在整个开发过程中支持灵活性和敏捷性。他们认为,除了是一种纪律严明的方法外,它还促进了建造稳定软件产品所需的细致设计,开发和文档。最近,医疗设备行业正在采用它。

也可以看看