V模型(软件开发)

系统工程过程的V模型。[1]

软件开发, 这V模型[2]代表发展过程这可能被认为是瀑布模型,是更多的例子一般V模型。与其以线性方式向下移动,而是在编码相位,形成典型的V形。V模型展示了开发生命周期的每个阶段及其相关阶段之间的关系测试。水平和垂直轴分别代表时间或项目完整性(从左到右)和抽像水平(最高的元素抽象最高)。

项目定义阶段

需求分析

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

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

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

系统设计

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

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

架构设计

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

模块设计

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

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

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

验证阶段

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

单位测试

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

集成测试

集成测试计划是在建筑设计阶段制定的。这些测试验证了独立创建和测试的单位可以共存和沟通。测试结果与客户的团队共享。

系统测试

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

用户验收测试

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

批评

V模型受到了批评敏捷倡导和其他人是由于许多原因而作为软件开发模型不足的模型。[5][6][7]批评包括:

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

当前状态

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

也可以看看

参考

  1. ^克拉鲁斯的操作概念。存档2009-07-05在Wayback Machine出版物号FHWA-JPO-05-072,联邦公路管理局(FHWA),2005年
  2. ^凯文·福斯伯格(Kevin Forsberg)哈罗德·穆兹(Harold Mooz),“系统工程与项目周期之间的关系”,在1991年10月的全国系统工程委员会年度研讨会论文集:57-65。
  3. ^什么是V模型 - 优势,缺点以及何时使用它
  4. ^Despautz,约瑟夫;肯尼思·科瓦克斯(Kenneth S. Kovacs);Gerhard Werling(2008年3月11日)。“验证自动化系统的GAMP标准”。药物处理。存档原本的2012年5月8日。检索2月28日2012.
  5. ^“ V模型的死亡”,2013年1月6日访问
  6. ^“危险和诱人的V模型”,从2019年9月15日开始存档的版本
  7. ^“测试开发的新模型”,2013年1月6日访问
  8. ^“朝着敏捷的系统工程过程”,2022年8月9日访问
  9. ^“开发医疗设备软件时采用敏捷实践的障碍”
  10. ^“针对医疗设备行业的软件流程开发,评估和改进框架”

进一步阅读

  • Roger S. Pressman:软件工程:从业者的方法,麦格劳 - 希尔公司,ISBN0-07-301933-X
  • 马克·霍夫曼(Mark Hoffman)和泰德·博蒙特(Ted Beaumont):应用程序开发:管理项目生命周期,MC出版社,ISBN1-88384-45-4
  • Boris Beizer:软件测试技术。第二版,国际汤姆森计算机出版社,1990年,ISBN1-85032-880-3