主要内容

什么是规范模型?

当您根据需求系统地验证模型时,您为每个需求生成测试用例。这些测试验证模型,您可以使用模型生成产品代码,并建立模型满足需求的信心。要创建满足需求的测试,可以构造规范模型.规范模型是一个可执行的实体,您可以使用它来执行基于需求的测试万博1manbetx®设计验证器™和需求工具箱™。

如果您有一组用自然语言文本编写的需求,您可以使用类来将它们表示为正式的需求需求表(需求工具箱)块。在一个或多个块中定义需求之后,这些块和信号就成为规范模型。与您要测试的模型不同的是设计模型在美国,规范模型只指定要做什么,而不是如何做。

您可以使用规范模型来:

  • 以系统和定量的方式验证需求集。

  • 自动化基于需求的测试。

  • 识别设计模型和需求的问题。

在基于需求的测试中使用规范模型

要创建和部署规范模型,请遵循以下步骤:

  1. 编写需求——用描述所设计系统行为的自然语言文本编写需求。直接在要求编辑器(需求工具箱)或者进口它们。有关导入需求的详细信息,请参见从第三方应用导入要求(需求工具箱)

  2. 构建规范模型——通过使用至少一个规范模型,将规范模型设计为需求的正式表示需求表块。

  3. 中创建的每个需求需求表块中创建等效的需求要求编辑器.看到配置形式需求的属性(需求工具箱).从规范模型中将高级需求链接到正式需求。

  4. 分析形式需求的完整性和一致性——手动识别不完整和不一致的需求集是很困难的。的需求表Block允许您自动分析这些问题的需求。看到故障排除要求表块(需求工具箱)

  5. 为规范模型生成测试——为每个需求生成至少一个测试,以证明其符合该需求。有关生成测试的详细信息,请参见为子系统生成测试用例万博1manbetxSimulink设计验证器中定义的需求自动创建测试目标需求表块。

  6. 接口规范模型和设计模型——规范和设计模型通常不使用相同的输入和输出信号。通过开发两个模型之间的接口,转换您在第5步中生成的测试用例。

  7. 开发设计模型——通过使用需求开发设计模型。将需求链接到设计模型。

  8. 验证设计并分析覆盖率——在设计模型上运行步骤5中生成的测试,并验证结果是否与规范模型和需求一致。如果需要,生成一个覆盖报告来识别缺失的覆盖并细化需求。

这个流程图说明了这个过程。

此图像显示了说明前面列表中描述的步骤的流程图。通过前四个步骤迭代地开发需求,并且设计模型和规范模型是

构建一个规范模型

中描述的自动驾驶仪控制器模型为基于需求的测试使用规范模型.在本例中,您将开发包含定义输出的逻辑和时间条件的需求。

识别规范模型接口

列出与您想要测试的需求相关的规范模型的输入和输出信号。忽略需求未指定的、不影响测试输出的信号。在本例中,需求指定了五个输入和两个输出。规格模型输入信号为:

  1. 自动驾驶仪接合开关-自动驾驶仪控制器的开关

  2. 航向接合开关-当自动驾驶开关处于接合状态时,指定自动驾驶控制器模式的开关

  3. 滚动参考目标转弯旋钮-一个旋钮,提供所需的滚动角度值的自动驾驶仪控制器

  4. 航向参考旋转旋钮-一个旋钮,给出航向模式的设定值

  5. 飞机滚动角度-飞机当前的滚动角度

输出信号为:

  1. 副翼命令-副翼执行器的输出

  2. 滚动参考命令-显示窗口上的输出,指示副翼执行器的设定点值

为每个需求确定前置条件、后置条件和操作

对于您想要验证的需求,将文本需求转换为可以表示为前置条件、后置条件和操作的逻辑表达式。您将正式需求定义为前置条件、后置条件和操作的组合:

  • 先决条件——在评估需求的其余部分之前,在指定的时间内必须为真的条件

  • 后置条件-如果相关的前提条件在指定的持续时间内为真,则该条件必须为真

  • 动作-如果相关的前提条件在指定的时间内为真,则必须执行的行为

您可能会发现一些需求可以互换地使用后置条件或操作,或者同时使用后置条件和操作。根据设计模型的配置指定要使用的类型。

例如,考虑指定自动驾驶仪控制器模式的高级需求:

自动驾驶仪控制器模式由以下决定:

  • 当自动驾驶仪接合开关未接合时,自动驾驶仪控制器处于OFF状态。

  • 当自动驾驶接合开关处于啮合状态,而航向接合开关未处于啮合状态时,自动驾驶控制器为ROLL_HOLD_MODE。

  • 当自动驾驶仪接合开关和航向接合开关同时接合时,自动驾驶仪控制器为HDG_HOLD_MODE。

您可以将这些需求写成以下逻辑表达式:

要求 先决条件 行动
1 AP_Engage_Switch == false 模式=关闭
2 ap_engagement switch == true && hdg_engagement switch == false 模式= ROLL_HOLD_MODE
3. AP_Eng_Switch == true && hdg_engage switch == true 模式= HDG_Hold_Mode

对于其余的需求重复此过程。

识别需求中的设计值表示形式

您的需求可能指定您的设计模型必须满足的值的范围,或者您可能希望参数化您在每个需求中评估的值。这些值并不总是容易用文字值来描述。您可以使用需求表块将表达式中的值表示为常量或参数数据。看到在需求表块中定义数据(需求工具箱).您可以在整个模拟过程中更改数据。除了为数据分配数值外,块还支持其他数据类型,如字符串、枚举或范围。万博1manbetx使用符合您需求的值表示。

在自动驾驶控制器模型中,要求指定飞机滚转角度的阈值。这张图说明了阈值的数字和语言等价。

此图像显示了与设计值的高级表示相对应的滚转角度值和范围。

创建需求表

确定了希望在形式需求中使用的信号表示、值和表达式之后,在中编写前置条件、后置条件和操作的逻辑表达式先决条件后置条件,行动列分别表示每个需求。如果您的需求有子或依赖项,您可以在块中包含这些关系。看到在需求表块中建立层次结构(需求工具箱)

中创建的每个需求需求表块中创建等效的需求要求编辑器.在编辑器中更新需求的其他文本属性,例如描述。看到配置形式需求的属性(需求工具箱)

在自动驾驶仪控制器模型中,规格模型包括两个需求表块。AP_Mode_Determination定义自动驾驶控制器模式的正式要求。

此图像显示了自动驾驶仪控制器模式的要求。它包含三个从示例模型中的纯文本需求派生出来的需求。

另一个需求表块,Cmd_Determination,描述副翼命令和滚转参考命令的期望输出。

这张图片显示了自动驾驶命令的要求。它包含从示例模型中的纯文本需求派生出来的需求。

最终规格模型

连接后需求表块的输入,输出,以及彼此,最终的规范模型是:

此图像显示了最终的规范模型。

为测试生成准备规范模型

万博1manbetxSimulink设计验证器中定义的需求自动创建测试目标需求表块。如果需要约束测试目标的值,可以在信号源中指定它们,或者将它们包含在假设表的块。看到向需求添加假设(需求工具箱).为测试生成准备规范模型,设置模型覆盖目标。在设计验证器选项卡,在准备部分中,点击测试生成设置.在“配置参数”窗口中,展开设计验证器列出并单击测试生成.集模型覆盖目标到最能捕获所需覆盖率的选项。

迭代步骤

当您开发规范模型并测试设计模型时,您通常需要更新需求、规范模型和设计模型。这个过程是迭代的。继续迭代,直到您达到期望的测试结果,例如期望的模型输出和测试覆盖率。

另请参阅

(需求工具箱)

相关的话题