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