在早期的设计阶段,开发者可开发纯粹的行为模型,以阐明并定义软件的详细要求。$ R3 b. K% m1 G! S: l' }8 w
. ^) s" H. m7 u6 E) l
虽然此类模型已经具备了基本解决方案的轮廓,但是它们依然独立于目标平台。这些目标独立的行为模型将用于设计验证和早期的需求确认。 O+ u7 B. Z' x, z! C) w/ Q' {
' C" d" ^0 L: @# [/ H* x 用于捕获关键需求、在仿真中展示正确行为以及展示对高层需求可追溯性的模型通常被称为“可执行规范”。: k/ w% U. W" S3 a% Y
' t7 g7 n2 g( f: A) Q( \! p 对可执行规范的进一步开发和具体实现可产生代表最终实现的模型的定义。这就是用于产品代码生成的模型。通常,这些模型会对代码生成做优化;它将从数据类型、目标架构以及要求的代码风格。所有这些变更需要一个验证过程,确保产品代码生成模型中引入的变更不会改变软件的行为。确认生产代码生成模型以及生成代码的正确行为的测试为代码验证。 把验证分布在设计验证和代码验证阶段允许我们更早地开始验证工作,更多的关注在测试上和更短的时间去修复在测试中检测到的错误。在本文的其余部分,我将介绍两个设计验证方法:- d; d1 b g7 T
$ {- U8 f1 s N" X4 y2 q ·模型在环测试 - |' Z; z) k* c5 F3 ^* d ·软件在环测试1 o; [' k/ B7 } I
5 O% c G) `0 X7 N1 p6 H2 W- }& P 以及用于代码验证的两个方法: / G) O8 P1 Q% d0 Q) X5 { " G( b; N* n7 s/ Y O ·处理器在环测试 2 L2 i8 |7 n6 z5 x) s/ B ·硬件在环测试7 S! U; N+ V, }+ `1 Y% A8 V
; M. D0 ^) M& W& S- h: Y& h$ n+ p2 设计验证! z0 N! g$ b. x
/ y$ U0 R) N3 u 设计验证的主要目的是确认所有关键要求和设计概念是否已正确体现在设计模型中。7 j( P& h. L% Y/ o
9 } g t3 F; e c1 d' _ ·模型在环测试 ' C: K1 M* H# B: _' \% X y) ` a3 ^* M, c7 L
与“静态”的书面设计不同,可在仿真过程中评估可执行规范。通常,通过改变一组模型参数或输入信号,或通过查看输出结果或模型的响应,来完成这一操作。依据模型执行的仿真顺序也称为模型在环测试。 0 K, W0 W" Y0 _2 o+ m" M9 @' u# T g, u& Q- d* O
模型在环测试的测试数据可来自测试矢量数据库,或来自实际系统的模型,在后一种情况下,我们讨论闭环控制系统。 : V) [: p2 b* }3 F, Q2 o6 B 3 W; o4 {: X% R4 Y 可执行规范通常不仅仅包含功能设计模型和软件逻辑,还包括设备和环境模型、高层需求的链接以及其他文件。它通常还包括用于自动化仿真结果评估的验证数据。 模型在环测试的结果可用于验证软件行为是否正确,并确认开发流程的初始需求。通过仿真收集的信息会成为代码验证的基准。( [% ~$ j/ _9 d
7 a' g0 c- c8 W @# t' @ ·软件在环 (SIL)9 m2 c. [5 @/ C" U
( g* b, l9 j: c; _6 x* K4 t 在许多情况下,在目标环境中部署软件之前,确保所设计的系统的软件组件能够按预期运行,这一点非常重要。3 A* l' u1 h$ M: h* P( q" {9 |& o
为了重新利用为前面描述的测试方法创建的数据,并继续使用该结果作为实时测试的指导和基准,我们为模型生成代码并在实时环境中部署它。此类配置可降低在实际且通常较昂贵的设备上的测试风险,但是它允许我们验证算法的实时方面。8 g3 C; ^& C5 W
% {! i0 m9 z6 Z4 W 此类型的验证要求尖端的信号调节和电力电子技术,以便正确地模拟输入并接收目标硬件的输出。HIL通常在系统集成和现场测试之前,作为最后一个实验室测试步骤。 * H2 S4 {" T% M$ e, H' [6 B) n1 x$ ^3 I/ e9 D 4 结论6 H$ L8 P2 z& p Z
* F9 s! i+ [) J1 U, A' S3 s 嵌入式系统开发的技术为提升验证和确认方法提供了一次绝好的机会。通过仿真建模以及代码生成使快速原型和更加系统的测试和早期验证成为可能。- c e! \, M" r- A
' v. l, J7 u+ u% F$ z. Z4 Q 上述的每个在环测试方法解决了特定类型的问题,并且具有某些优势。本文中描述的不同方法在严格的开发过程中均出现过,每个方法有助于将巨大的验证挑战分为更小、更易管理的验证和确认活动。 / O; }. W- Q* h, K0 r& i 6 D+ A1 e, k7 ]' ^文章来源:数学中国, 关键词:数学中国,数学中国网,数学中国论坛, 8 Y6 Z u2 P9 _* o) F' }# X , \7 t" U8 @+ R D. @* W5 g