7.图形交互----cmmnV1.1

7.1 范围

当前章节指定了CMMN 1.1图交换(CMMN DI)的元模型和模式。CMMN DI旨在促进工具之间CMMN图的交换,而不是被工具用于内部图的表示。为CMMN DI选择了最简单的交换方法,以确保CMMN图的明确呈现。因此,CMMN DI并不打算在源工具和目标工具之间保留或交换任何“工具智能”(例如,布局智能、高效样式化等)。

CMMN DI并不确定CMMN图在语法或语义上是正确的

7.2图形定义与交互

与CMMN抽象语法元模型类似,CMMN DI元模型被定义为基于mof的元模型。因此,它的实例可以使用XMI序列化和交换。CMMN DI也是由XML模式定义的。因此,它的实例也可以使用XML序列化和交换。

CMMN DI元模型和模式都与OMG图定义(DD)标准版本1.1相协调。引用的DD包含两个主要部分:图共享(DC)和图交换(DI)。DC定义了诸如边界和点之类的公共类型,而DI则提供了一个框架来定义特定领域的图模型。作为一个特定于领域的DI, CMMN DI定义了一些新的元模型类,这些类派生自DI的抽象类。

CMMN DI的重点是组成CMMN图的布局形状和边的交换。每个形状和边缘引用一个特定的CMMN模型元素。参考的CMMN模型元素都是实际CMMN模型的一部分。因此,CMMN DI意味着只要可能,只包含既不存在也不能从CMMN模型派生的信息。简单地说,要呈现CMMN图,CMMN DI实例和引用的CMMN模型都是必需的。

从CMMN DI的角度来看,CMMN图是CMMN模型在某个时间点的特定快照。多个CMMN图可以通过引用来自同一CMMN模型的模型元素进行交换。每个图都可能提供CMMN模型内容的不完整或部分描述。如第9条所述,CMMN模型包由一个或多个文件组成。每个文件可以包含任意数量的CMMN图。导出工具可以自由决定要导出多少图,导入工具可以自由决定是否以及如何将包含的图呈现给用户。

7.3怎么约定当前条款

子条款7.4详细描述了用于保持CMMN图的布局和外观的元模型。条款7.5在表格中给出了CMMN元素描述的库,以及参考的CMMN模型元素及其描述之间的明确的分辨率。

7.4CMMN图形交互元模型

7.4.1 预览

CMMN DI是OMG DI元模型的一个实例。与一般的DI一样,CMMN DI的基本概念是,序列化图[CMMNDiagram]进行交换需要指定形状[CMMNShape]和边[CMMNEdge]的集合。

CMMN DI类只定义用于描述的可视属性。CMMN元素的明确描述所需的所有其他属性都是从引用的CMMN元素[cmmnElementRef]派生出来的。CMMN图可能是CMMN模型内容的不完整或部分描述。来自CMMN模型的一些CMMN元素可能不会出现在任何被交换的图实例中。

CMMN图可能是CMMN模型内容的不完整或部分描述。来自CMMN模型的一些CMMN元素可能不会出现在任何被交换的图实例中。

不允许在单个图中对特定CMMN元素进行多个描述(除了OnPart关系,它可以使用sentry为每个入口/出口标准显示一次)。因此,它不允许在同一个图中描述一个PlanItem两次,但允许在两个不同的图中描述同一个PlanItem。

CMMN DI不直接提供任何遏制概念。cmmn图是混合CMMNShape(s)和CMMNEdge(s)的有序集合。CMMNDiagram中的CMMNShape和CMMNEdge的顺序决定了它们的z轴次序(即,什么在什么前面)。CMMNShape(s)和CMMNEdge(s)是指在其他CMMNShape(s)和CMMNEdge(s)之上描述的CMMNShape(s)和CMMNEdge(s)必须出现在cmmn图的后面。因此,导出工具必须对所有CMMNShape和CMMNEdge进行排序,以便能够呈现所需的描述

7.4.2计量单位

根据OMG DD,所有由CMMN DI定义的坐标和长度都假定使用用户单位,除非另有规定。用户单位是用户坐标系统中的一个值,它最初(在应用任何转换之前)与设备的坐标系统(例如,显示器的像素网格)对齐。因此,用户单元代表的是逻辑度量单元而不是物理度量单元。由于一些应用程序可能还会为图指定物理维度(主要是为了打印目的),因此可以将从用户单元到物理单元的映射指定为图的分辨率。在这个规格中选择英寸是为了避免可变性,但是工具可以很容易地从/转换到其他首选的物理单位。分辨率指定一个物理单元中容纳多少用户单元(例如,300的分辨率指定设备上1英寸内容纳300个用户单元)。

7.4.3CMMNDI[Class]

 CMMNDI类是共享CMMNStyle和定义中所有CMMNDiagram的容器

7.4.4CMMNDiagram [Class]

CMMNDiagram类专门用于DI::Diagram。它是一种图表,表示CMMN模型的全部或部分描述

CMMNDiagram是CMMNDiagram element (CMMNShape(s)和CMMNEdge(s))的容器。CMMNDiagram不能包含其他CMMNDiagram。

一个CMMNDiagram可以在本地定义一个CMMNStyle,或者它可以引用一个在CMMNDI中定义的共享样式。在本地样式中定义的属性将覆盖引用的共享样式中的属性。该组合样式(共享的和本地的)是CMMNDiagram中包含的所有CMMNDiagramElement的默认样式

CMMNDiagram类表示一个左上角原点为(0,0)的二维曲面。这意味着x轴和y轴在右侧和底部有递增的坐标。对于嵌套在CMMNDiagram中的图元素,只允许正坐标

7.4.5CMMNDiagramElement [Class

CMMNDiagramElement类包含在CMMNDiagram中,是CMMNShape和CMMNEdge的基类。CMMNDiagramElement从它的父CMMNDiagram继承其样式。此外,它可以引用在CMMNDI中定义的一个共享CMMNStyle,并且/或者它可以定义一个本地样式。有关样式的更多细节,请参阅7.4.9。当CMMNDiagramElement有一个可见的文本标签时,它也可以包含一个CMMNLabel。如果没有定义CMMNLabel, CMMNDiagramElement应该没有标签来描述。

7.4.6 CMMNShape [Class]

CMMNShape类专门用于DI::Shape和CMMNDiagramElement。它是一种描述CMMN模型中的CMMNElement的Shape。

CMMNShape表示在图中描述的一个CasePlanModel,一个PlanItem,一个DiscretionaryItem,一个EntryCriterion,一个ExitCriterion,一个CaseFileItem,或者一个TextAnnotation。

CMMNShape有两个附加属性(iscollapse和isPlanningTableCollapsed),用于进一步指定无法从CMMN模型推导出的某些形状的外观。

CMMNShape扩展了DI::Shape和CMMNDiagramElement,并具有以下属性。

7.4.7 CMMNEdge [Class]

CMMNEdge类专门用于DI::Edge和CMMNDiagramElement。它是一种边缘,可以描述两个CMMN模型元素之间的关系。CMMNEdge用于描述CMMN模型中的链接。如第6条所述,链接用于说明三件事:从一个DiscretionaryItem到它的HumanTask的关系(Discretionary Association),一个OnPart关系(Connector),或者一个Association。当使用CMMNEdge来描述一个酌量关联时,CMMNEdge的cmmnElementRef属性中不应该指定任何元素。在这种特殊情况下,targetCMMNElementRef必须是一个离散项。sourceCMMNElementRef必须是一个PlanItem或一个distionaryitem,代表持有targetCMMNElementRef引用的distionaryitem的HumanTask。

 当使用CMMNEdge描述OnPart时,CMMNEdge的cmmnElementRef属性必须是该OnPart的id。在这种特殊情况下,sourceCMMNElementRef不能被指定,因为它可以通过OnPart的sourceRef或PlanItemOnPart中指定的exitCriterionRef获得。targetCMMNElementRef必须是一个条件(EntryCriterion或ExitCriterion)的id,该条件链接到持有OnPart的哨兵。另一个属性(isstanddeventvisible)用于确定是否应该描述standdevent

当使用CMMNEdge描述一个关联时,CMMNEdge的cmmnElementRef属性必须是该关联的id。在这种特殊情况下,sourceCMMNElementRef绝对不能被指定,因为它可以由关联的sourceRef获得。targetCMMNElementRef不能指定,因为它可以通过关联的targetRef获得

7.4.8 CMMNLabel [Class]

CMMNLabel表示关于CMMN元素的一些文本信息的描述。CMMN标签不是顶级元素,但总是嵌套在CMMNShape或CMMNEdge中。它没有自己对CMMN元素的引用,而是从它的父元素CMMNShape或CMMNEdge继承了该引用。标签所描述的文本信息来自所引用的CMMNElement的name属性。CMMNLabel扩展了DI::Shape,并具有以下属性。

7.4.9 CMMNStyle [Class]

CMMNStyle专门DC:风格。它是一种样式,为CMMNDiagramElement提供外观选项。CMMNStyle用于保留一些非规范的视觉属性,如颜色和字体。CMMN没有给颜色和字体样式提供任何语义,但是工具可以决定使用和交换它们

 CMMNDiagramElement样式是通过渗透在层次结构的不同级别定义的CMMNStyle属性来计算的。每个属性都是独立考虑的(这意味着CMMNStyle属性可以单独重载)。优先级规则如下:

  • 由CMMNDiagramElement的本地样式属性定义的CMMNStyle。
  • •cmmndiagram元素的共享样式属性引用的CMMNStyle。
  • •由父CMMNDiagram的本地样式属性定义的CMMNStyle。
  • •由父CMMNDiagram的共享样式属性引用的CMMNStyle。
  • •表7.7中定义的默认属性值(CMMNStyle属性)

例如,假设我们有以下情况:

  • CMMNDiagramElement有一个指定fillColor和strokeColor的本地CMMNStyle。
  • •它的父CMMNDiagram定义了一个指定fillColor和fontColor的本地CMMNStyle。
  • 然后生成的CMMNDiagramElement应该使用:
  • •在CMMNDiagramElement级别定义的fillColor和strokeColor(因为它们是本地定义的)。
  • •在CMMNDiagram级别定义的fontColor(因为fillColor在本地被重载)。
  • •所有其他cmnstyle属性都有默认值

7.5符号描述库和抽象元素解析

作为一种符号,CMMN指定了每个CMMN元素的描述。

串行化交换CMMN图需要在CMMN图(参见7.4.4)中规范CMMNShape(参见7.4.6)和CMMNEdge(参见7.4.7)的集合。CMMNShape(s)和CMMNEdge(s)属性必须以一种允许接收方明确地呈现CMMN图的方式进行填充。更具体地说,CMMNShape(s)和CMMNEdge(s)必须引用CMMN模型元素。如果没有引用CMMNElement或引用无效,则预期不应描绘此形状或边缘。唯一的例外是自由裁量联想。对于这种类型的链接,不存在CMMN模型元素,因为CMMNEdge不描述任何模型元素,而是描述一个包含关系(例如,Discretionary Item链接到具有包含该Discretionary Item的计划表的HumanTask)。有关描述请参见表7.18。

在绘制CMMN图时,CMMNShape或CMMNEdge的正确描述主要取决于引用的CMMN模型元素及其特定的属性和/或引用。此子条款的目的是:提供CMMN元素描述的库,并提供参考的CMMN模型元素[CMMNElement]和它们的描述之间的明确的解析。下面提供了CMMNShape(7.5.2)和CMMNEdge(7.5.3)的描述解析表。

7.5.1 Labels

CMMNShape和CMMNEdge都可以将标签(其名称属性)放置在形状/边缘上,或在形状/边缘上方或下方的任何方向或位置,这取决于建模者或建模工具供应商的偏好。

CMMNShape和CMMNEdge标签是可选的。当有标签时,标签的位置由CMMNShape或CMMNEdge的CMMNLabel的边界指定。简单地说,标签可见性由CMMNLabel元素的存在来定义。

CMMNLabel的边界是可选的,并且总是相对于包含CMMNDiagram的原点。如果没有为CMMNLabel (CMMNShape类型(7.5.2)和CMMNEdge类型(7.5.3)提供边界,下面提供的描述解析表举例说明了默认标签位置

当CMMNLabel包含在CMMNShape中时,要显示的文本就是CMMNElement的名称。

当CMMNLabel由引用CMMNElement(表示OnPart)的CMMNEdge包含时,该OnPart的名称被用作标签,括号中可选的是standard devent名称。

 当CMMNEdge包含CMMNLabel而不引用CMMNElement(即,代表一个自由关联)时,不应该显示任何标签。简单地说,不应该显示任意联想的标签。

7.5.2 CMMNShape Resolution

CMMNShape可以用来表示CasePlanModel、PlanItem、DiscretionaryItem、EntryCriterion、ExitCriterion和CaseFileItem。

7.5.2.1 Case Plan Model

CMMNShape可以用来表示CasePlanModel、PlanItem、DiscretionaryItem、EntryCriterion、ExitCriterion和CaseFileItem。引用CasePlanModel的CMMNShape不需要任何进一步的CMMNShape属性来指定它的描述。

7.5.2.2 Plan Item and Discretionary Items

当使用CMMNShape来描述PlanItem或DiscretionaryItem时,实际的形状由:参考PlanItemDefinition决定。PlanItems以实心边框显示,而DiscretionaryItems以虚线边框显示。

 

 

7.5.2.3 Auto CompleteDecorator

当CMMNShape描述一个CasePlanModel,一个PlanItem指向一个Stage,或者一个DiscretionaryItem指向一个Stage,并且当Stage的“autoComplete”属性设置为TRUE时,Shape必须在形状的底部中心显示autoComplete装饰器

7.5.2.4 ItemControl Decorators

当PlanItem或DiscretionaryItem定义了ItemControl或当它的“referenceplanitemdefinition”定义了ItemControl时,必须在形状的底部中心描述适当的ItemControl装饰器。

 

7.5.2.5 Planning Table Decorator

当CMMNShape描述了一个有计划表的CasePlanModel时;或者当它描述一个PlanItem或一个DiscretionaryItem时,指的是一个包含计划表的阶段;或者当它描述一个PlanItem或一个distionaryitem引用一个包含规划表的HumanTask时,规划表标记必须被描绘到Stage形状的顶部边界,在左上角和中点之间的某处。CMMNDI没有为规划表边界提供任何交换。

 

7.5.2.6 Entry Criterion

当一个CMMNShape引用一个入口标准时,它被描述为附着在PlanItem或持有该入口标准的DiscretionaryItem的边界上。只有与任务、阶段或里程碑相关的PlanItem和DiscretionaryItem可以有进入标准。

7.5.2.7 Exit criterion

当一个CMMNShape描述一个ExitCriterion时,它被描述到CasePlanModel、PlanItem或持有该ExitCriterion的DiscretionaryItem的边界上。只有引用任务或阶段的案例计划模型、计划项和酌情决定项可以有退出标准。

7.5.2.8 Case File Item

引用CaseFileItem的CMMNShape不需要任何进一步的CMMNShape属性来指定其描述。

7.5.2.9 Artifacts

7.5.3 CMMNEdge Resolution

7.5.3.1 On Part Connector referring to CaseFileItemOnPart

当CMMNEdge描述一个CaseFileItemOnPart时,它的源是CaseFileItemOnPart的sourceRef引用的CaseFileItem。它的目标是由它的targetCMMNElementRef决定的。

7.5.3.2 On Part Connector referring to PlanItemOnPart

当CMMNEdge描述一个PlanItemOnPart时,它的来源是PlanItemOnPart的sourceRef引用的PlanItem,或者是PlanItemOnPart的exitCriterionRef中定义的ExitCriterion。它的目标是由它的targetCMMNElementRef决定的。

7.5.3.3 Discretionary Association

当CMMNEdge描述一个Discretionary Association时,需要指定它的源和目标。

7.5.3.4 Association

当CMMNEdge描述一个关联时,必须指定它的CMMNElement。

备注:翻译过程借助有道同步完成

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值