V模型是一个软件开发生命周期模型,其中的流程执行是以V形顺序进行。它也称为Verification和Validation模型。
这里先介绍一下:Verification和Validation都有“验证”的意思,区别请看下表。
V模型是瀑布模型的扩展,它最大的特点就是每个开发阶段都对应一个测试阶段。这是一个高度严格的模型,下一阶段必须在上一阶段完成后才能开始。
V模型的设计
在V模型下,并行计划了与开发阶段相对应的测试阶段。因此,在“V”模型左侧为多个开发设计阶段,而右侧为多个测试阶段,它们一一对应。左侧和右侧的每个阶段都要进行“验证”。左侧为Verification,右侧为Validation。编码阶段将V模型的两侧连接了起来。
下图描述了软件开发生命周期V模型中的不同阶段。
下面,对每个阶段进行逐一介绍。
V模型左侧:设计--Verification阶段
业务需求分析(BusinessRequirementAnalysis)
这是开发周期的第一阶段,从客户的角度了解产品需求。此阶段涉及与客户的详细沟通,来了解客户的期望和确切要求。这是一项非常重要的活动,需要妥善管理,因为大多数客户不确定他们到底需要什么。由于业务需求可以用作验收测试的输入,因此在此阶段需要完成验收测试设计计划。
系统设计(SystemDesign)
有了明确而详细的产品要求后,就可以设计出完整的系统了。系统设计将了解并详细介绍正在开发产品的完整硬件和通信设置(这里通常指系统需求设计,又叫作L2级需求。L1级需求为整车需求。)。系统测试计划是根据系统设计制定的。在较早的阶段执行此操作会为以后的实际测试执行留出更多时间。
架构设计(ArchitecturalDesign)
在此阶段可以理解和设计架构规范。通常提出一种以上的技术方法,并根据技术和财务可行性做出最终决定。系统设计在此阶段被进一步细分为不同的功能模块(L3级需求设计)。这也称为高级设计(HighLevelDesign)。
在此阶段,内部模块之间以及与外部世界(其他系统)之间的数据传输和通信已被清楚地理解和定义。有了这些信息,就可以在此阶段设计和编排集成测试方法(这里指出:L3级需求的测试通常由集成和软件测试一起完成)。
模块设计(ModuleDesign)
在此阶段,将指定所有系统模块的详细内部设计,称为低层设计(LowLevelDesign)。在这个阶段,模块的设计应与系统架构中的其他模块以及其他外部系统相互兼容(L4级需求设计)。与模块设计相对应的单元测试是任何开发过程中必不可少的部分,有助于在早期阶段消除大的错误和误差。单元测试可以在此阶段基于内部模块的设计来进行测试方法的设计。通常由模块编码人员自己完成单元测试。
编码阶段(CodingPhase)
此阶段进行模块设计的实际编码。根据系统和架构的要求确定最合适的编程语言。根据编码准则和标准进行编码。该代码经过多次代码审查和优化之后,将最终版本上传至代码库,以实现最佳的可靠性和性能。
V模型右侧:测试--Validation阶段
单元测试(UnitTesting)
在此阶段,将在代码上执行在模块设计阶段设计的单元测试。单元测试是在代码级别上进行的测试,尽管通过单元测试不能够发现所有的缺陷,但有助于在早期阶段排除错误。
集成测试(IntegrationTesting)
集成测试与架构设计阶段相关。执行集成测试以测试系统内部模块的共存兼容性和通信。
系统测试(SystemTesting)
系统测试与系统设计阶段直接相关。系统测试检查整个系统功能以及正在开发的系统与外部系统的通信。比如在试验车上进行雷达和摄像头的融合测试。在执行此系统测试期间,可以发现大多数软件和硬件兼容性问题。
验收测试(AcceptanceTesting)
验收测试与业务需求分析阶段相关,并且涉及在用户环境中测试产品。验收测试可以发现与用户环境中其他可用系统的兼容性问题。它还能发现一些非功能性问题,例如实际用户环境中的负载和性能缺陷。
V模型的优缺点
缺点:
一句话总结:因为V模型是顺序类模型,因此在项目开始之前,必须非常明确需求,因为回去进行更改通常很昂贵。
优点:
一句话总结:V模型简单易懂,易于管理,且每个阶段都有特定的可交付成果和审查过程。
版权归本公众号所有。如有侵权,请与我联系。我将会及时处理。
▼
长按或扫描二维码
关注《汽车软件开发》
©汽车软件开发
全部评论 (0)