前页 后页

在Enterprise Architect构建决策模型

在“ 决策建模示例”中描述的模型中 ,我们展示了如何使用决策表建模决策,其中决策结果是通过在表中找到一行来确定的,其中表中的输入值与输入值匹配在考虑中,给出特定的输出结果。

现在,我们将逐步解决为“机舱升级”示例创建决策模型的过程,研究如何在Enterprise Architect创建此类模型。

此示例中涉及许多模型元素,例如输入数据元素,用于描述输入数据(定义数据类型)的项目定义,决策元素以及保存决策表的业务知识模型元素定义。

创建决策需求图

这些步骤将指导您创建简单的决策需求图(DRD)。在此示例中,我们将从头开始创建模型,而不是使用“模型向导”中的模式。

描述

也可以看看

1个

选择透视图“需求|决策建模”。

(将显示“模型向导”,但在本示例中将不使用它,因此请关闭“模型向导”。)

2

创建一个新的DMN图。将其命名为“航空公司客舱升级”。

3

使用图工具箱,在图上放置一个Decision元素。选择“调用”作为类型-我们将使用此元素从业务知识模型元素“调用”决策。将元素命名为“确定要升级的客舱”。

调用方式 输入用于仿真的参数值

4

在图上放置一个InputData元素。将此元素命名为“客户”。

输入数据

5

在图上放置另一个InputData元素。将此元素命名为“机舱状态”。

6

将业务知识模型元素放在图上。选择类型“决策表”。将此元素命名为“机舱升级策略”。

输入用于仿真的参数值 决策表

7

决策“确定要升级的机舱” 输入数据“客户”绘制一个“信息需求”连接器。

8

决策“确定要升级的机舱” 输入数据“机舱状态”绘制一个“信息需求”连接器。

9

决策“确定要升级的机舱” BKM“机舱升级策略”,绘制一个“知识要求”连接器。

在这个阶段,我们应该有一个简单的DRD,类似于:

现在,我们可以为组成该模型的每个元素指定详细信息。

定义决策表

通过双击业务知识模型元素“机舱升级策略”,将显示“ DMN表达式”窗口,其中显示一个空的决策表。在这里,我们将定义机舱升级政策的规则。

默认情况下,将创建具有两个输入列和一个输出列,一个标题行和三个空规则行的新决策表。

表格最左侧的列显示“匹配策略”,并为规则编号。默认情况下,“匹配策略”为“唯一”的“ U”。这是我们将在示例中使用的策略,因此您无需更改此列标题。

有关“命中策略”的更多信息,请参阅“ 决策表命中策略帮助”主题。

决策表输入和输出的名称和定义类型

描述

也可以看看

1个

在“ DMN表达式”窗口的工具栏上,单击“编辑参数”按钮

显示“编辑参数”对话框。

2

将参数名称“输入1”替换为“ Pax Num of Booked”。

如有必要,请单击“类型”下拉箭头,然后将此参数的类型设置为“数字”。

3

将参数名称“输入2”替换为“ Pass上个月的航班数”。

还将此参数的类型设置为“数字”。

关闭“编辑参数”对话框。

4

编辑将对列1求值的输入表达式。

选择标题单元格(包含文本“输入1”),然后再次单击或按F2进入“编辑”模式。选择所有单元格文本,然后按空格键。显示输入参数列表。单击“ Pax Num of Pax Overbooked”,然后按“ Enter”。列1的表达式设置为“ Pax Num of Booked”。

注意 :为每一列求值的输入表达式通常只使用相应的输入参数;但是,您可以使用复杂的表达式。

5

右键单击第1列表达式,并检查其数据类型是否设置为“数字”。

6

编辑将对列2求值的输入表达式。

选择所有文本,然后按空格键。显示输入参数列表。选择“上个月要通过的航班数量”,然后按“ Enter”。

第2列的表达式设置为“上个月通行证的航班数”。

7

右键单击第2列表达式,然后将其数据类型设置为“数字”。

8

编辑决策表输出的名称。

将“输出1”替换为“升级机舱”,然后按“ Enter”。

9

设置决策输出的数据类型。

右键单击输出列标题,然后选择“字符串”。

10

设置决策输出的允许值。

在输出列标题正下方(但在行1上方)的单元格中,定义允许的输出值。输入“商务舱,头等舱”。

注意 :由于数据类型已指定为“字符串”,因此不需要在值周围使用引号。

定义决策表的规则

在表格单元格中输入值以匹配该图像。

单击一个单元格以将其选中,然后再次单击以对其进行编辑。

您可以通过选择要复制的行来复制和粘贴现有规则(按住Shift键并单击以添加到选择中),右键单击并选择“复制”,然后右键单击并选择“附加”。

完成规则编辑后,单击“保存”按钮

最后,单击Validate按钮 ,以检查规则表中的错误。

创建ItemDefinition元素

向图中添加两个ItemDefinition元素,每个InputData元素一个。将一个元素命名为“ CustomerDefinition”,将另一个命名为“ CabinStatusDefinition”。

双击名为“ CustomerDefinition”的ItemDefinition以编辑定义。显示“ DMN表达式”窗口。

右键单击“ CustomerDefinition”单元,然后选择“添加子组件”。用“上个月的航班数”改写子组件的名称,并用“数字”改写其数据类型。单击“保存”按钮以保存更改,然后关闭窗口。

同样,双击名为“ CabinStatusDefinition”的ItemDefinition,添加一个名为“ Num of Pax Pabook Overbooked”的子组件,并将其数据类型设置为“ number”。保存更改并关闭窗口。

为每个InputData元素指定数据类型

选择InputData元素“客户”。在“属性”窗口中,选择属性“ typeRef”,然后单击Browse.按钮。

选择ItemDefinition“客户定义”作为类型。点击“确定”。

同样,将“机舱状态定义”指定为“机舱状态”的类型。

指定决策元素的输入

双击决策元素“确定要升级的客舱”

在“ DMN表达式”窗口中,找到第一行中包含文本“ Pax Num of Booked”的表格行。单击此行第二列中的单元格,然后按空格键。显示可能的输入值列表。选择“机舱状态”。人数超出预定人数”,然后按“ Enter”。选择内容将写入单元格中。

对第二个表格行“上个月的航班数”重复此过程,选择“客户”。上个月的航班数”。

单击保存按钮。

单击验证按钮。

定义数据集

通过使用一系列有代表性的数据集运行仿真,以验证决策模型在所有情况下都能产生正确的结果,可以测试决策模型的“正确性”。

您可以使用一系列数据值来创建具有各种名称的大量数据集。您可以将数据集之一设置为默认值

现在,我们将为每个InputData元素创建一个数据集。

描述

也可以看看

1个

双击InputData元素“ Customer”。

显示DMN表达式窗口。

2

在DMN表达式窗口中,单击“编辑数据集”按钮

显示“编辑数据集”窗口。

3

单击按钮。

创建一个新的数据集。

4

如果需要,请覆盖数据集的名称。

将“类型”保留为“数字”。输入一个值,例如3。

单击保存图标和确定按钮。

5

重复输入数据“机舱状态”。输入一个值,例如4。

添加DMNSimConfiguration工件

在图工具箱中找到DMN“仿真配置”工件。也将其中之一拖放到图上。

双击它以在'Simulate'选项卡上打开DMN Simulation窗口。

在DMN Simulation窗口中,您可以运行完整的决策模型的模拟。您还可以执行验证,生成代码和生成测试模块。

描述

也可以看看

1个

在此窗口的工具栏中找到编辑字段。

2

单击此字段中的下拉箭头。

将显示一个列表,显示与DMNSim配置工件关联的软件包中的所有决策服务和决策元素。在这种情况下,“确定要升级的客舱”是列表中的唯一项目。

3

单击“确定要升级的客舱”。

4

窗口的主体现在显示InputData元素和决策结果,这些数据可用作所选决策的输入。

单击保存按钮。

5

使用“值”列为InputValues选择预定义的数据集之一,然后可以单击下部工具栏中的“运行”按钮来使用所选数据集运行模拟。

学到更多