您多久向客户交付一次设计,却发现它不是客户期望的?有许多行业的例子表明,由于需求沟通错误,项目失败了。最初的需求主要是使用容易被误解、不完整或不一致的非正式文本来指定的。我叫Paul Urban,在Math的模型验证和确认产品组工作,负责管理Simulink需求、Simulink测试和Simulink检查产品。下载188bet金宝搏金宝app
今天,我将向您展示允许您更早地验证和验证需求的新功能。使用临时评估,您可以将文本需求转换为可以执行的明确评估。解决方案形成一个数字线程,将需求与模型中的实现以及验证需求的测试联系起来。你可以从一个汽车客户的引用中看到,基于模型的设计如何帮助更快地分析需求,并缩短满足客户需求的设计交付时间。
对包含更多基于软件的功能和产品的需求不断增长。下载188bet金宝搏这增加了规模和复杂性,并对开发和测试过程施加了额外的压力。在传统的开发过程中,当您从左向右移动时,需求被细化为最终在代码中手工实现的规范。在开发的各个阶段都会引入错误,但研究表明,大多数缺陷都是在初始设计中引入的。这些错误会贯穿设计阶段,测试会发现许多错误,但直到需要返工和进一步测试的过程后期才会发现。但最终,一些潜在的错误可能仍然存在于软件中,只有在现场才能检测到。这些错误可能会导致安全问题或昂贵的产品召回,这是需要解决的更大的问题。
此外,研究还表明,寻找漏洞的成本会随着时间的推移而增加。例如,在你的台式机上编码时找到一个软件bug比在现场的生产硬件上找到这个bug要便宜。测试的成本增加了——随后在开发周期中发现了缺陷。我们需要能够尽早地确定是否所有的需求都实现了,我是否正确地理解了需求,设计是否按照需求正确地运行?而且,我们还希望能够在不进行修改的情况下测试设计。在Simu金宝applink中,图形模型用具有精确含义的可执行模型代替了模糊的设计。
它允许您在桌面上之前验证您的设计,然后在硬件上提供错误,其中错误更便宜,更易于识别。金宝appSimulink为工程师提供了一组伟大的语言来描述复杂的系统。来自物理域名 - 像驱动火车和电机。到软件域,如框图和状态机。这些陈述允许您抽出不需要的细节以专注于最重要的内容。
可以通过构建系统的虚拟表示来完成非正式或临时模拟测试,您可以在桌面上与桌面交互。这是提早理解系统的好方法,在建造硬件之前评估设计替代品。在改进模型后,Simulink设计可以通过同一生成自动转换为金宝app生产代码。
有了这个完整的基于模型的设计过程,当您将设计模型细化到目标硬件中时,您可以消除代价高昂的容易出错的手工步骤。模拟是早期验证行为的一种很好的方法,但它主要是手动过程,而且主要是临时的。为了确定是否满足了所有的需求并正确地运行,我们需要采用一种更严格的基于需求的测试方法来系统地测试我们的模型。在这里,MathWorks验证和验证工作流可以帮助自动化测试模型的手动步骤,并建立一个可重复的验证工作流。现在我将逐步通过工作流来执行需求的验证。
通常,需求从非正式的想法开始。它们可能来自Word、Excel甚至是doors等更结构化的环境。工程师需要将这些非正式的想法解释为基于模型的设计,然后验证设计是否满足这些要求。当在不同的工具中查看和管理数据时,要正确处理这些数据可能非常困难。很难在需求与设计和测试之间建立可追溯性。
为了在Simulink中直接处理来自其他工具的需求,可以通过Simulink对Word、Excel、Doors金宝app的需求进行导入操作。还支持标准需求交换金宝app格式——ReqIF。大多数需求管理工具金宝app都支持ReqIF。如果需求在源处发生了变化,然后执行了同步这些变化的更新操作,那么Simulink用户可能想要编辑需求或添加更多的细节——比如需求的自定义属性。金宝app
默认是将外部需求视为只读的,但在最近的19A版本中,解锁需求的能力可以更新需求中的字段。此外,为了导入需求——你也可以直接在Simulink中创建需求,而Simulink是一个源。金宝app将Simulink编写的需求包金宝app含在整个项目中,并使用19A中介绍的ReqIF导出操作。
将导入、更新和导出操作与ReqIF结合使用,可以实现与外部需求工具(也支持该标准)的双向工作流。金宝app在Simulink中有两个主要的视图用于处理需求。金宝app编辑和视角。编辑器允许您查看和编辑项目中的所有需求集。透视图同时提供了需求和设计的视图,使您可以在一个视图中同时处理需求和设计。
这里更仔细地看一下需求透视图——画布右侧的控件打开和关闭透视图。画布上的徽章显示链接存在的位置,您可以选择显示说明。浏览器显示需求的表格摘要。它包括一个实现和验证状态,以显示设计和测试的完整性。属性检查器包括需求的所有详细信息,例如描述、自定义属性,还包括需求的链接。
通过在Simulink环境中包含要求,它允许您在设计环境中使用它们,以快速金宝app创建可追溯性链接。仿真提供了更早的设计错误的好方法,但需要一种更严格和自动化的测试方法来增加对设计的信心。金宝appSimulink测试为您提供测试模型的系统方法。
首先,您可以使用test Harness隔离被测试的组件——允许在不破坏模型的情况下编写测试。可以创建测试用例来根据基线或建模代码之间的等价性来验证设计。您可以使用许多格式来定义输入,如——MAT文件、Excel、信号字母或文本序列。为了评估结果,您可以比较中基线输出
MAT或Excel文件。使用MATLAB单元测试编写自定义标准。并使用一个测试评估博客来定义在线通过和不通过的条件。您可以链接到测试工件或需求,以完成需求设计和测试之间的可跟踪性。
对链接的分析显示了需求层次结构的实现和验证是多么完整。一个完整的彩色条表示哪里存在完整的需求覆盖。缺口识别出哪些地方缺少实现或测试,哪些地方需要进一步的工作。我将介绍一个使用热泵的工作流程的例子。它从外部工具中的热泵控制器的一些结构要求开始。激活热泵的要求包括时序逻辑。当温度超过2度时,泵应启动2秒以上,然后保持一段时间的活动。
基于这些要求,控制器需要两个输入——一个用于温度,另一个用于室温。它将输出三个命令来控制总线上的泵。一个打开风扇,另一个打开泵,第三个指定是否需要加热或冷却。控制器打开风扇并启动泵进行加热或冷却的行为使用状态流程图实现。
为了确保所有需求都在模型中实现,它们被导入到Simulink需求中。金宝app从这个角度来看,我可以看出,主动热泵的实施状况是有差距的,而且没有任何环节。要创建到模型的链接,我需要做的就是拖放。我可以显示一个需求注释来查看模型中需求的细节。
注意,链接已经创建,实现状态也被更新以显示其实现。添加链接或注释不会破坏模型。使用单独的文件来维护这些工件。现在,我将继续进行需求的验证。控制器包括在一个工厂模型的加热器和热性能的房子,可以模拟其运行。我想只测试控制器而不弄脏模型的其余部分。我将通过创建一个Test Harness来实现这一点。
我选择命令来创建测试工具,然后您可以为工具提供许多操作。特别是,您可以选择不同种类的源和不同的同步。我们选择一个测试序列来驱动控制器的输入。这会创建一个新的test Harness Model,它只包含控制器和一个测试序列块。如果有任何更改,测试中的组件将与主模型保持同步。
测试序列块允许您生成测试输入,并将评估定义为步骤序列。您可以将其视为statflow的简化版本。它允许您描述复杂的时间测试序列。对于为控制器创建的测试工具,使用斜坡函数的步骤序列随时间改变室温范围,以进入控制器的所有模式。
第一步初始化控制器,然后代码外部逐步降低室温以将控制器放在加热模式下。热门的外部阶梯测试控制器如何冷却房间。最后,控制器返回闲置。测试序列提供了一种创建复杂的测试步骤序列来驱动测试输入的方法。
让我们来看看这个要求激活热泵。这是一个简单的概念 - 当某些条件为真时,那么一些其他条件一段时间必须是真的。但正式化评估 - 捕获的时间条件可能很难。让我们来看看我们如何使用新的时间评估编辑器来改变此要求。在测试管理器中,我使用用于热泵模型的测试线束打开一个测试用例并添加评估。我使用预定义模式构建评估。要求指定触发响应模式。我命名评估 - 然后我需要选择触发条件的模式。
在我的例子中,我希望在温差超过某个阈值超过两秒时触发测试。我键入一个与触发条件对应的表达式,并指定条件必须为真的最短时间。请注意,所有符号最初都标记为未解析,并自动添加到符号表中。这些将映射到模型中的信号或表达式。然后,我选择一个与响应条件必须评估的时间相对应的时间参考。最后,我为响应条件选择一种模式,并填充条件和最短时间。
我可以折叠评估以查看对需求的可读但精确的描述。我可以创建到正在测试的需求的链接。而且,为了查看需求,我可以使用链接直接导航到它。请注意,已创建一个已验证链接,状态显示为黄色,表示测试尚未运行。因此,我们将评估符号映射到模型,现在可以运行测试用例了。我们可以运行直接从需求链接的测试。
测试运行,并自动更新状态,显示测试失败。有一个链接可以直接导航到测试结果。评估结果显示了预期的行为和评估失败的实际结果。文字说明告诉我们泵应该在13秒时启动。表达式树解释了关于故障的更多细节,并允许我调试它。我们可以使用数据游标来查看水泵直到稍后才打开,这是不正确的。
要调试错误,我们可以首先使用链接导航到模型中的实现。通过检查转换逻辑,我们可以很快地看到条件使用了错误的阈值。我在模型中更正了这个错误,现在我可以从模型导航回测试,然后重新运行测试。测试通过了,现在——导航到需求编辑器,我可以看到验证结果被自动更新为绿色表示通过。
总结一下我们所看到的——使用时态评估编辑器,我们能够使用基于表单的编辑器将文本需求转换为正式评估。评估可以在一个易读的英语句子。评估结果窗口允许我检查和调试结果。然后,测试结果可追溯到需求和设计。要查看总体状态并识别差距,您可以显示实现和验证状态,以度量设计和测试的总体完整性。
对于实现状态,蓝色表示链路存在。浅蓝色表示有一个理由,闪烁表示链路缺失。验证状态:绿色表示测试通过,红色表示测试失败,黄色表示没有结果。眨眼就表明与测试的联系缺失了。测试工具是隔离被测试组件的一种方法,但是要验证设计,您可能需要访问深藏在模型层次结构中的一些信号。但是,您不希望仅仅为了测试目的而修改设计或其界面。
新的Observer Blocs允许您监视模型的信号,同时保留设计的动态响应和接口。您可以将验证逻辑从设计中分离出来,在不修改接口的情况下访问任何层次结构中的任何信号,也不影响系统的动态响应。它有助于避免模型与只需要测试的附加信号的混乱。您可以使用验证逻辑并将其定位到与测试中的模型共同模拟的单独模型中。
试验可重复使用,对SIL、PIL或HIL进行等价性试验。SIL,或Software In the Loop测试,指的是重用来自模型的测试,在桌面PC上执行生成的代码,然后将结果与模拟结果进行比较。您还可以度量代码覆盖率,以查看生成的代码是否经过了完全的测试。PIL或Processor In the Loop测试是指交叉编译的
生成目标处理器的代码。在目标处理器上执行该代码,然后将结果与目标和仿真结果进行比较。在循环中还有三分之一,称为HIL或循环中的硬件。在这种情况下,测试检查设计的实时行为和使用Simulink实时和SpeedGoat的代码。金宝app
我们有很多客户使用VNV工作流程。这是一个例子 - Ellis Automotive是韩国车辆交换机和组件的最大一级供应商之一。他们需要满足OEM的日益增长的需求,以便更快地提供更多功能和符合ISO 262标准的生产系统。Ellis汽车与Mathworks Consulting一起使用Matlab和Simulink的模型设计,以减少其镜像和电源窗口控制的开发时间。金宝app
它们运行模拟和模拟显示客户规范错误。金宝app但是,幸运的是,这些比较容易解决,因为他们在发展中早早被确定。他们能够消除手动编码错误并减少其发展时间。要了解有关Ellis Automotive和其他客户的更多信息,请访问我们的网站。
总之,基于模型的设计使您能够点击“播放”按钮,更早地验证和验证设计,并在硬件可用之前捕获错误。新的测试评估语言使您能够将非正式的文本需求转换为具有精确语义的明确评估。它们可以被视为自然语言句子,以便更好地理解。
有了这个解决方案,我们就能够从需求跟踪到设计,再跟踪到测试——这使我们能够轻松地确定需求在哪里实现,以及它是如何被测试的。这也使我们能够确定如果我们的需求发生了变化,将会影响到什么。要了解有关MathWorks验证和验证工作流的更多信息,请查看今天讨论的产品的产品页面或www.tatmou.com上的解决方案页面下载188bet金宝搏