基于模型的设计 基于模型的测试

前一阵参加了MathWorks公司一个关于基于模型的设计的讲座,先介绍了基于模型的设计model based design,然后是亲自动手体验;感觉很有意义,特别是其中的自动代码生成,所以在此和大家分享一下。

听起来,自动生成代码好像是专门为不想多动手的工程师准备的工具。其实,自动代码生成最早是做为基于模型的设计方法的一部分提出的。一般情况下,嵌入式系统软件的开发分为需求定义、功能设计、代码编写和测试等几个阶段,测试、找bug和解决bug往往要花费很多的精力,特别是越是隐藏的深的bug越难发现和解决,隐患也很大。所以每次在传统方法下发现和解决bug造成的发布延时都会造成整个修复成本的指数级上升。而采用基于模型的设计,则可以在设计的早期通过仿真等手段保证模型的正确性,例如在仿真环境下,我们的模型能够完全实现我们的意图,然后自动代码生成和验证就是水到渠成的问题了。

其次,基于模型的设计在复杂和非常复杂的系统中特别有意义。他们举了几个例子,例如在高档的汽车上,全部代码预估已经达到千万行、甚至两千万行的级别了,这么多代码要是靠手工编写和测试,首先需要几十个几百个人的编程和测试团队不说,光是沟通的效率就很难保证了;基于模型的设计方法则可以有效解决这个问题。目前在汽车行业,这种模式已经成为主流的开发方法了,在航空航天等领域也得到了很广泛的应用,例如著名的F-22战斗机和“好奇号”火星车都使用了基于模型的设计方法。例如讲座中提到,火星车的开发中,使用了380000次仿真,这要是按照传统的测试方法去一遍遍做,估计整个团队都要吐血身亡了。

此外,开发一个复杂系统要花费大量的时间,新系统开发时从现有系统中复用现有的代码是省事实力的。基于模型的设计方法因为使用模型参考调用的方法引用子系统,所以代码的移植和复用非常方便。例如例如讲座中提到,F35战斗机有A、B、C三种型号,在开发过程中,可以重复使用的系统设计模型就显著提高了开发效率。

接下来讲讲我所理解的基于模型设计的开发过程:

1. 系统需求

不管用啥开发方法,最终要完成的系统是一样的,所以系统需求并没有什么显著区别。只不过Simulink开发工具可以在建模中将模型与需求文档进行关联,方便快速查看模型功能与需求文档之间是否有偏差。

2. 建模

就是在Simulink环境中把我们需要的功能用模块搭建起来,例如控制系统、通信系统等,基于图形化的编程还是较为直观和容易的,并且仿真测试很快就能得到结果了。

3. 代码生成

模型有了,这一步就是超级吸引人的了,直接把模型生成C代码,多方便的功能。当然有一些规范要定义的,包括一些ISO的标准;而且如果我们使用的处理器被Simulink支持的话,在生成代码的时候还可以直接针对代码优化,例如我们的目标对象是TI的一个DSP,则一些数学运算在生成代码时会直接调用BootROM里的数学库,相比于传统的C语言math.h里面的标准数学库,运行速度要强的多;常用的DSP、ARM等基本都是支持的。

基于模型的设计 基于模型的测试
4. 软件在环测试

硬件在环测试HIL大家可能都听说过,不过软件在环测试SIL貌似是个比较新鲜的概念。它的含义就是把生成的c代码调用到仿真环境中,输入是与仿真的那步是一样的,这样就能比较生成的代码和我们的模型是否有结果的差异。当然几乎是不会出现什么状况的。

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/83977.html

更多阅读

吉会通过无限挑战的测试成为新成员么? 无限挑战吉丑朋特辑1

吉会成为MBC无限挑战的固定成员么?现在正处于试验阶段,观众们在无限挑战的主页做出了截然不同的反应。无限挑战现在的六名成员分别是刘在石,朴明秀,郑俊河,郑亨顿,卢宏哲,前进。代替哈哈加入无限挑战的前进因即将入伍而不得不在不久后离开,

基于模型的设计 基于模型的测试

前一阵参加了MathWorks公司一个关于基于模型的设计的讲座,先介绍了基于模型的设计model based design,然后是亲自动手体验;感觉很有意义,特别是其中的自动代码生成,所以在此和大家分享一下。听起来,自动生成代码好像是专门为不想多动手的

几种银色和Gaia特殊色的测试 特殊字符测试

因为斯莉亚的盔甲需要用到大面积的银色,慎重期间对手头几款银色做了测试,选一款最适合的银色。这次测试使用了美甲用的纯白色假指甲片作为试色体(图中白色的那块是没上过色的样本)。分别测试了Gaia121号星光银、Finisher's铬银、LJS银

关于逆境情商AQ 的测试 逆境商数测试

(AQ)的测试试一将下列选项填到答案中A. 很符合我的情况B. 比较符合我的情况C. 不能肯定D. 不太符合我的情况E. 根本不符合我的情况问题:1. 若把考试卷拿到一个安静、无人的房间去做,我的成绩可能好一些。2. 我在正式考试或测验时所取得的成绩比

声明:《基于模型的设计 基于模型的测试》为网友儚随偑澫裏分享!如侵犯到您的合法权益请联系我们删除