前页 | 后页 |
创建决策模型
在我们描述的模型示例建模决策我们展示了如何使用决策决策表对决策进行建模,其中决策结果是通过在表中找到输入值与表匹配的行来确定的正在考虑的值,给出特定的输出结果。
我们现在将通过逐步完成为 Airline Cabin Upgrade 示例创建决策模型的过程来了解如何在Enterprise Architect中创建这样的模型。
此示例中涉及许多模型元素,例如输入数据元素、用于描述输入数据(定义数据类型)的项目定义、决策元素以及保存决策决策表的业务知识模型元素定义。
创建决策需求图表
这些步骤将指导您创建简单的决策需求图表(DRD)。在本例中,我们将从头开始创建模型,而不是使用模型向导中的模式。
节 |
描述 |
也见 |
---|---|---|
1 |
选择视角“需求|决策建模”。 (会显示首页的“从模式创建”选项卡(模型向导),但我们不会在本示例中使用它。) |
|
2 |
创建一个新的 DMN 图。名称为“Airline Cabin Upgrade”。 |
|
3 |
使用图表工具箱,在图表上放置决策元素。选择“调用”作为类型——我们将使用该元素“调用”来自业务知识模型元素的决策。名称元素“确定升级舱”。 |
调用 用于仿真的输入参数值 |
4 |
在图表上放置一个名称元素。将这个元素为“顾客”。 |
输入数据 |
5 |
在图上放置另一个元素元素。名称为“客舱状态”。 |
|
6 |
在图上放置一个业务知识模型元素模型。选择类型“决策决策表”。名称为“元素升级政策”。 |
用于仿真的输入参数值 决策表 |
7 |
从决策“确定升级客舱”到输入数据“顾客”,划一个“信息需求”连接器。 |
|
8 |
从决策“确定升级客舱”到输入数据“划状态”的“信息需求”连接器。 |
|
9 |
从决定“确定升级客舱”到BKM“客舱升级政策”,划一个“知识需求”连接器。 |
在这个阶段,我们应该有一个简单的 DRD,如下所示:
我们现在可以指定构成此模型的每个元素的详细信息。
定义决策表
双击业务知识模型元素“舱室升级政策”,弹出“ DMN 表达式”窗口,显示为空的决策表。这是我们定义客舱升级政策规则的地方。
默认情况下,新的决策表创建有两个输入列和一个输出列、一个标题行和三个空规则行。
表格中最左边的一列显示了表命中策略,并为规则编号。默认情况下,命中策略是 ' U ' 代表 'Unique'。这是我们将用于示例的策略,因此您无需更改此列标题。
有关命中策略的更多信息,请参阅决策决策表命中策略帮助。
决策表输入和输出的名称和定义类型
节 |
描述 |
也见 |
---|---|---|
1 |
在“ DMN 表达式”窗口的工具栏上,单击“编辑参数”按钮 。 将显示“编辑参数”对话框。 |
|
2 |
将参数名称“Input 1 ”替换为“Num of Pax Overbooked”。 如有必要,单击“类型”下拉箭头并将此参数的类型设置为“数字”。 |
|
3 |
将参数名称 'Input 2' 替换为 'Num of Flights in Last Month by Pass'。 将此参数的类型也设置为“数字”。 关闭“编辑参数”对话框。 |
|
4 |
编辑将为列1评估的输入表达式。 选择标题单元(包含文本“Input 1 ”)然后再次单击或按 进入“编辑”模式。选择所有单元文本,然后按空格键。显示输入参数列表。单击“超额预订人数”,然后按“Enter”。第1列的表达式设置为 'Num of Pax Overbooked'。 注记:为每一列计算的输入表达式通常只使用相应的输入参数;但是,您可以使用复杂的表达式。 |
|
5 |
右键单击第1列表达式并检查其数据类型是否设置为“数字”。 |
|
6 |
编辑将为第 2 列计算的输入表达式。 选择所有文本,然后按空格键。显示输入参数列表。选择“通票上个月的航班数量”,然后按“Enter”。 第 2 列的表达式设置为“通行证上个月的航班数量”。 |
|
7 |
右键单击第 2 列表达式并将其数据类型设置为“数字”。 |
|
8 |
编辑决策表输出的名称。 将“输出”替换为“Upgrade Cabin”,然后1 “Enter”。 |
|
9 |
设置决策输出的数据类型。 右键单击输出列标题并选择“ string ”。 |
|
10 |
设置决策输出的允许值。 在输出列单元正下方(但在第1行上方)的单元中,定义输出的允许值。输入“业务类,第一类”。 注记:由于数据类型已指定为“ string ”,因此不需要在值周围加引号。 |
定义决策表的规则
在单元表中输入值以匹配此图像。
单击一个单元以选择它,然后再次单击以对其进行编辑。
您可以通过选择要复制的行来复制和粘贴现有规则(Shift+单击添加到选择中),右键单击并选择“复制”,然后右键单击并选择“附加”。
完成规则编辑后,单击保存按钮 。
最后,单击验证按钮 ,以检查规则表中的错误。
创建 ItemDefinition元素
将两个 ItemDefinition 元素添加到图表中,每个 InputData 元素一个。名称一个元素“CustomerDefinition”,另一个元素“CabinStatusDefinition”。
双击名为“CustomerDefinition”的 ItemDefinition 以编辑定义。显示DMN 表达式窗口。
右键单击单元“客户定义”并选择“添加子部件”。用“上个月的航班数量”改写子组件的名称,用“数字”改写其数据类型。单击“保存”按钮保存更改,然后关闭窗口。
同样,双击名为“CabinStatusDefinition”的 ItemDefinition,添加一个名为“Num of Pax Overbooked”的子组件,并将其数据类型设置为“number”。保存更改并关闭窗口。
为每个 InputData元素指定数据类型
选择 InputData元素'顾客'。在属性窗口中,选择属性“属性”并单击按钮。
选择顾客'顾客定义' 作为类型。点击“确定”。
同样,指定“客舱状态定义”作为“状态”的类型。
指定决策元素的输入
双击决策元素'Determine Cabin for Upgrade'
在DMN 表达式窗口中,找到第一列中包含文本“Num of Pax Overbooked”的表行。单击该行第二列的单元,然后按空格键。 A可能的输入值列表。选择“客舱状态”。超额预订人数”,然后按“Enter”。选择写入单元。
对第二个表行“上个月的航班数量”重复此过程,选择“顾客。上个月的航班数量”。
单击保存按钮。
单击验证按钮。
定义数据集
您的决策模型的“正确性”可以通过使用一系列代表性数据集运行模拟来测试,以验证模型在所有情况下都能产生正确的结果。
您可以使用一系列数据值创建具有不同名称的大量数据集。您可以将其中一个数据集设置为默认值。
我们现在将为每个现在元素创建一个数据集。
节 |
描述 |
也见 |
---|---|---|
1 |
双击 InputData元素“顾客”。 显示DMN 表达式窗口。 |
|
2 |
在DMN 表达式窗口中,单击“编辑数据集”按钮 。 将显示“编辑数据集”窗口。 |
|
3 |
单击按钮。 创建A新的数据集。 |
|
4 |
如果您愿意,请覆盖数据集的名称。 将类型保留为“数字”。输入一个值,例如 3。 点击保存图标和确定按钮。 |
|
5 |
对 InputData 的“客舱状态”重复此操作。输入一个值,例如 4。 |
添加一个工件物业
仿真配置'模拟箱'工件in the图表的工具箱将其中之一也拖放到图表上。
双击它以在“仿真”选项卡上打开 DMN仿真窗口。
在仿真窗口中,您可以运行已完成的决策决策模型的模拟。您还可以执行验证、生成代码和生成测试模块。
节 |
描述 |
也见 |
---|---|---|
1 |
在此窗口的工具栏中找到编辑字段。 |
|
2 |
单击此字段中的下拉箭头。 A列表显示了与决策配置相关的包中的所有决策和决策工件。在这种情况下,“确定升级客舱”是列表中的唯一项目。 |
|
3 |
单击“确定要升级的客舱”。 |
|
4 |
窗口的主体现在显示 InputData 元素和可用作所选决策输入的决策结果。 单击保存按钮。 |
|
5 |
使用“值” 运行使用选定的数据集运行模拟。 |