主要内容

什么是规范模型?

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

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

您可以使用规范模型来:

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

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

  • 确定设计模型和需求的问题。

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

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

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

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

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

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

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

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

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

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

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

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

构建规范模型

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

识别规范模型接口

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

  1. 自动驾驶控制开关-启用或禁用自动驾驶控制器的开关

  2. 航向启动开关-当启动自动驾驶开关时,指定自动驾驶控制器的模式的开关

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

  4. 航向参考旋转旋钮-为航向模式提供设定值的旋钮

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

输出信号为:

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

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

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

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

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

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

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

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

例如,考虑这个指定自动驾驶控制器模式的高级别要求:

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

  • 当自动驾驶仪接合开关未接合时,自动驾驶仪控制器为OFF。

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

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

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

要求 先决条件 行动
1 AP_Engage_Switch = =假 模式=了
2 AP_Engage_Switch == true && HDG_Engage_Switch == false 模式= ROLL_HOLD_MODE
3. AP_Eng_Switch == true && HDG_Engage_Switch == true 模式= HDG_Hold_Mode

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

识别需求中的设计值表示

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

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

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

创建需求表

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

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

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

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

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

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

最终规范模型

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

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

为测试生成准备规范模型

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

迭代步骤

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

另请参阅

(需求工具箱)

相关的话题

Baidu
map