前页 | 后页 |
决策表验证
决策决策表是用于表达决策逻辑的最常见和最有用A DMN 表达式之一。然而,对决策表建模也可能很复杂,特别是如果多个输入子句子被组合用于许多决策表规则。如本主题所述, Enterprise Architect提供了验证决策表的功能。
访问
DMN 表达式窗口 |
仿真>决策分析> DMN > DMN 表达式:验证按钮 |
DMN仿真窗口 |
仿真>决策分析>DMN>打开DMN仿真>配置:验证按钮 |
条目超出范围检测
为决策表的输入子句和输出子句定义“允许值”是一种很好的做法。 “允许值”列表用于对表规则的输入和输出条目值进行范围检查。
在这个例子中:
- 'Age' 输入子句定义了 [20..120] 的范围;但是,规则1的输入条目指定了 [18..21] 的范围;这超出了允许值的范围,因此规则1被报告为无效
- 'Marital状态' 子句将其允许值定义为' S , M '的枚举;规则 12 指定值“ D ”,因此该规则也被报告为无效
完整性检测 - 报告规则中的空白
决策表规则的差距意味着,给定输入值的组合,没有规则是匹配的。这表明可能缺少某些逻辑或规则(除非定义了默认输出)。
当决策表包含许多指定数量范围的规则时,很难直观地发现差距,并且编写和运行详尽的测试用例非常耗时。
例如:
验证报告规则中的差距。仔细检查发现规则 9 中有错误。输入条目( 580..600] 应该是[ 580..600]。
Unique命中策略的规则重叠检测
当规则重叠时,对于给定的输入值组合,匹配多个规则。如果决策决策表将其命中策略指定为“唯一”,则属于违规行为。
当决策表包含许多指定数量范围的规则时,很难直观地发现差距,并且编写和运行详尽的测试用例非常耗时。
例如:
验证报告规则中有重叠,涉及规则 4 和 5。仔细检查发现重叠存在于第三个输入“信用评分”中,其中“<610”与“[600..625]”重叠。您可以通过将规则 4 更改为“<600”或将规则 5 更改为“[610..625]”来纠正此问题,以反映实际的业务规则。