当系统地根据需求验证设计模型时,开发过程涉及为每个需求生成测试用例。这些测试验证用于生产代码生成的设计模型,并帮助获得设计模型满足需求的信心。规范模型是一个可执行实体,允许您通过利用金宝app®设计验证器™功能。
如果您有一组以自然语言文本编写的需求,则可以使用Simulink将其转换为正式(可执行)规范。然后这些就变成了一个金宝app规范模型。与设计模型不同,规范模型仅指定该做什么,而不是该怎么做.它在较高的层次捕获需求,在较低的层次隐藏细节。
使用规范模型的优点是:
它以系统的方式验证需求集。
它使基于需求的测试自动化。
它有助于在开发阶段的早期识别需求和设计模型中缺少的需求、设计错误或不一致。
对于基于需求的测试,从规格说明模型生成的测试用例用于根据需求验证设计模型。使用规范模型进行基于需求的测试,遵循以下步骤:
在需求编辑器中编写需求。用描述所设计系统行为的自然语言文本编写需求。
构建一个规范模型。将规范模型设计为需求的可执行表示。此活动可能会揭示导致需求细化的问题。
链接的要求。将单个需求或子需求链接到规范模型的各个部分。
为规范模型生成测试。为每个需求生成至少一个测试,以证明它与该需求的一致性。
创建一个测试转换子系统。规范和设计模型可能不会使用相同的输入-输出接口。通过使用测试转换系统转换步骤4中生成的测试用例。
开发设计模型。使用需求文档独立开发设计模型。将需求链接到设计模型。
验证设计并分析覆盖范围。在步骤6中开发的设计模型上运行步骤5中生成的测试,并验证结果是否与规范模型和需求一致。生成一个设计模型覆盖率报告,以识别缺失的覆盖率,并在必要时细化需求。
规范模型的工作流
考虑自动驾驶仪控制器模型使用规范模型进行基于需求的测试.对于本演示,需求包括逻辑和时间开环条件。
按照以下步骤创建需求的规范模型:
列出与需求相关的规范模型的输入和输出信号。您可以忽略与当前需求无关的信号。
这些是基于要求的自动驾驶仪控制器的输入信号:
自动驾驶仪进行开关:启用/禁用自动驾驶仪控制器
标题进行开关:当被占用时,启用HDG_HOLD_MODE
否则ROLL_HOLD_MODE
是活跃的
滚动参考目标旋转旋钮:向自动驾驶仪控制器输入所需的滚转角度值的刻度盘
航向参考旋转旋钮:给出标题模式的设定值
飞机横摇角:飞行器当前的瞬时滚转角
这些是输出信号:
副翼指令:副翼执行器的输出
辊Ref命令:显示窗口上的输出,指示副翼执行器的设定值
某些信号在规范中以更高级别表示。建议在规范模型中使用类似范围的高级表示来表示信号。
考虑输入信号飞机横摇角,它表示飞机当前的横摇角,取值范围为-180到+180度之间的任意值。
这些需求描述了自动驾驶仪控制器在区域方面的行为。这些区域使用枚举建模范围
.
下图显示了这五个区域。
这些要求规定了高级AP控制器模式及其激活条件,如下所示:
自动驾驶模式 | 自动驾驶仪进行开关 | 标题进行开关 |
---|---|---|
关 |
关 | 不关心 |
ROLL_HOLD_MODE |
在…上 | 关 |
HDG_HOLD_MODE |
在…上 | 在…上 |
考虑以下要求:
每当驾驶舱内转动旋钮滚动参考目标旋转旋钮(滚动参考
)在正常范围内指挥(在[-30,-3]或[+3,+30]度之间),滚动参考(滚动参考指令
)应设置为滚动参考
."
确定前提条件和效果。上述要求包括两个条款:
前提条件:滚动参考
是在负的正常范围内,[-30,-3],或在正的正常范围内,[+3,+30]。
这个前置条件是一个简单的逻辑或表达式,因此真值表用于表示逻辑前置条件。
效果:集滚动参考指令
来滚动参考
。effect子句指定预期范围内的输出信号值。
需求的前提条件子句确定其何时激活,而效果子句确定其激活后将执行的操作。
以上要求对产品没有影响副翼指令Ail_Cmd
输出,所以它被认为是射程,全部
表示所有可能值的集合。
为需求创建真值表
将需求的前提条款编码到真值表的条件表部分,将效果条款编码到动作表部分。
要单独跟踪每个需求,请将局部变量REQ_ID设置为相应的需求ID 2.1。
使用以下语句金宝app添加Simulink Design Verifier objective in Action表sldv.test
(REQ_ID = = 2.1)。金宝app仿真软件设计验证器在满足REQ_ID 2.1时查找测试。
通过使用上述工作流获得的最终规范模型如下所示: