• No results found

BPMN 2.0 Process Model Serialization Constraints

N/A
N/A
Protected

Academic year: 2021

Share "BPMN 2.0 Process Model Serialization Constraints"

Copied!
116
0
0

Loading.... (view fulltext now)

Full text

(1)

Nr. 92

BPMN 2.0 Process Model Serialization

Constraints

Matthias Geiger

May 2013

FAKULT¨

AT WIRTSCHAFTSINFORMATIK UND ANGEWANDTE INFORMATIK

(2)

BPMN 2.0 Process Model Serialization Constraints

Matthias Geiger

Lehrstuhl f¨

ur Praktische Informatik, Fakult¨

at WIAI

Otto-Friedrich-Universit¨

at Bamberg

An der Weberei 5, 96047 Bamberg

http://www.uni-bamberg.de/pi/bpmn-constraints

Abstract

Correct and standard compliant serializations of BPMN process models are crucial

for model exchange between tools, automatic application of academic verification approaches

and executability on BPMN engines. The official standard document does not provide an

ex-tensive set of all constraints regarding the correctness of model serializations. This technical

reports fills this gap by presenting a categorized list of generic, technology independent

cons-traints stated by the standard. Furthermore it is analyzed which rules are already covered when

the standardized XSD-based serialization format is used.

(3)

Prof. Dr. rer. nat. Guido Wirtz

http://www.uni-bamberg.de/pi/

Due to hardware developments, strong application needs and the overwhelming influence of

the net in almost all areas, distributed systems have become one of the most important topics

for nowadays software industry. Owing to their ever increasing importance for everyday

busi-ness, distributed systems have high requirements with respect to dependability, robustness and

performance. Unfortunately, distribution adds its share to the problems of developing complex

software systems. Heterogeneity in both, hardware and software, permanent changes,

concur-rency, distribution of components and the need for inter-operability between different systems

complicate matters. Moreover, new technical aspects like resource management, load balancing

and guaranteeing consistent operation in the presence of partial failures and deadlocks put an

additional burden onto the developer.

The long-term common goal of our research efforts is the development, implementation and

evaluation of methods helpful for the realization of robust and easy-to-use software for complex

systems in general while putting a focus on the problems and issues regarding distributed systems

on all levels. Our current research activities are focussed on different aspects centered around

that theme:

Reliable and inter-operable Service-oriented Architectures: Development of design

me-thods, languages, tools and middle-ware to ease the development of SOAs with an

em-phasis on provable correct systems that allow for early design-evaluation due to rigorous

development methods. Additionally, we work on approaches and standards to provide

truly inter-operable platforms for SOAs.

Implementation of Business Processes and Business-to-Business-Integration (B2Bi):

Star-ting from requirements for successful B2Bi development processes, languages and systems,

we investigate the practicability and inter-operability of different approaches and

plat-forms for the design and implementation of business processes with a focus on combining

processes from different business partners.

Quality-of-Service (QoS) Aspects for SOA and B2Bi: QoS aspects, especially reliability

and security, are indispensable when putting distributed systems into practical use. We

work on methods that allow for a seamless observance of QoS aspects during the entire

de-velopment process from high-level business processes down to implementation platforms.

Agent and Multi-Agent (MAS) Technology:

Development of new approaches to use

Multi-Agent-Systems for designing, organizing and optimizing complex systems ranging from

service management and SOA to electronic markets and virtual enterprises.

Visual Programming- and Design-Languages: The goal of this long-term effort is the

uti-lization of visual metaphors and languages as well as visuauti-lization techniques to make

design- and programming languages more understandable and, hence, more easy-to-use.

More information about our work, i.e., projects, papers and software, is available at our

home-page (see above). If you have any questions or suggestions regarding this report or our work in

general, don’t hesitate to contact me at

[email protected]

Guido Wirtz

Bamberg, January 2010

(4)

I

Contents

1

Introduction

1

2

Extracting Constraints from the Standard Document

3

2.1

Extraction Approach . . . .

3

2.2

Assumptions and Limitations . . . .

5

3

Overview of All Extracted Constraints

6

3.1

Basic Attribute/Sub Elements Cardinality . . . .

6

3.2

Basic Value Restrictions and Default Values . . . .

14

3.3

Basic Reference Constraints . . . .

16

3.4

Extended Constraints . . . .

20

3.4.1

Constraint Structure and Important Attributes

. . . .

20

3.4.2

Tabular Overview . . . .

21

4

Analysis of the XSD-based Serialization

27

4.1

Basic Attribute/Sub Elements Cardinality . . . .

27

4.2

Basic Value Restrictions and Default Values . . . .

30

4.3

Basic Reference Constraints . . . .

31

4.4

Extended Constraints . . . .

32

5

Discussion and Comparison to Another Rule Collection

34

6

Summary

36

Bibliography

38

A Detailed Description of All Extended Constraints

40

(5)

1

Element

definitions; excerpt from the BPMN standard . . . .

4

2

Association

attribute definition . . . .

5

(6)

III

List of Tables

1

Overview: Basic Attributes and Sub Elements and their Cardinality . . . .

13

2

Overview: Basic Value Restrictions and Default Values . . . .

15

3

Overview: Basic Reference Constraints . . . .

19

4

Example to illustrate the extensive description of all Extended Constraints . . .

20

5

Overview: Extended and complex constraints

. . . .

26

6

Mapping of Silver’s rules to the corresponding Constraint Numbers in this work

35

(7)

BPMN

Business Process Model and Notation

OMG

Object Management Group

WfMC

Workflow Management Coalition

WS-BPEL

Web Services Business Process Execution Language

XMI

XML Metadata Interchange

XML

eXtensible Markup Language

XPDL

XML Process Definition Language

(8)

1

1

Introduction

The Business Process Model and Notation (BPMN) [10] as a standard for a (business) process

notation is widely used in practice and academia. In practice BPMN is used for modeling

purposes such as visualizing and documenting business processes in most cases. But also BPMN

engines for executing BPMN models

1

are gaining more and more importance.

Especially for saving and exchanging models between different tools and engines, for process

execution and for applying scientific approaches for checking the semantics (such as [3–5,14,20])

automatically a serialized form of BPMN models is needed. Unfortunately BPMN versions prior

to Version 2.0 ([1,8,9]) the focus was to define a graphical set of shapes for process modeling. A

consistent meta-model and a serialiazion format was left out completely which led to a plethora

of different proposals to serialize BPMN models.

Besides proprietary formats two main serialization formats were used for BPMN 1.1 [8] and

BPMN 1.2 [9]:

For executable processes often a serialization in the Web Services Business Process Execution

Language (WS-BPEL)[7] was proposed and analyzed. Due to the different paradigms

(block-structured vs. graph-based) and the missing ability to save the graphical information of BPMN

models in WS-BPEL a roundtripping between BPMN and WS-BPEL is hard and not always

possible ([6, 12, 13, 15, 19]).

The second main serialization format which is better aligned with BPMN is the XML Process

Definition Language (XPDL)[21, 22] which is still promoted and developed further by the

Workflow Management Coalition (WfMC)

2

. Various tools still support XPDL as an export and

import format for BPMN process models.

In [2] a XML-based serialization is proposed. The authors furthermore provide checking

mech-anisms based on XPath and XQuery to check for rule violations in the models. Unfortunately

the approach is outdated by now as a new version of BPMN [10] is available.

With Version 2.0 two serialization mechanisms based on the eXtensible Markup Language

(XML) have been added and are therefore standardized: XML Metadata Interchange (XMI)[11]

and XML Schema Definition (XSD)[17, 18] (see Chap. 15 in [10]). The default serialization

format which is linked directly with and often referred to in [10] is the XSD-based XML

seri-alization.

As mentioned a BPMN serialization may be realized in different ways, but all variants must

respect the stated rules in the standard document to generate and save standard compliant

BPMN models.

The standard document [10] consists of about 480 pages running text, hundreds of figures and

tables and various appendices. Furthermore some

normative

files are also referred to. All

these sources contain guidelines, restrictions and constraints to define requirements for

correct

BPMN models. These requirements range from graphical constraints regarding the appearance

1such as Activiti (http://activiti.org)

(9)

only relevant during process execution on BPMN engines.

All these rules must be fulfilled and respected if

i)

a specific BPMN model should be valid

or

ii)

a tool or an engine claims to be BPMN compliant. Inexplicably the standardization

organization Object Management Group (OMG)

3

neither provides a complete list of all stated

BPMN constraints nor tools or tests to check correctness and compliance of models and tools.

Therefore it is currently hard to decide whether a concrete model or a “BPMN compliant” editor

in fact conforms to all restrictions stated in [10].

The aim of our work is to provide an extensive and (hopefully) complete list of all serialization

constraints defined in the standard document [10]. The revealed rules are generic and

indepen-dent from the used serialization format. This rule set is a generic basis and the first step to

develop specific compliance checking mechanisms for BPMN process models.

In this report we focus on serialization constraints and therefore the list does not cover other

BPMN aspects such as graphical constraints (e.g., thickness of shape borders) and execution

semantics rules. More insight in the assumptions and limitations as well as a description of our

approach of detecting and extracting constraints is presented in the following section 2.

The results of the application, that is an overview over all detected constraints is given in the

subsequent section 3. In section 4 “Analysis of the XSD-based Serialization” it is analyzed

which rules are already covered by the usage of the standardized XSD-based exchange format.

A discussion of our results and a comparison to existing constraint collections is presented in

section 5 and the last section 6 concludes our work with a summary and an overview of planned

future work.

(10)

3

2

Extracting Constraints from the Standard Document

Before presenting the main contribution of our work namely an overview over all extracted

constraints (see section 3) it is important to clarify our extraction approach, how the extracted

rules can be categorized and all assumptions and limitations of this approach.

2.1

Extraction Approach

Regarding model constraints the standard document consists of three important sources: The

running text, class diagrams and tables specifying attributes of BPMN elements.

When analyzing the standard documents four main constraint categories have been identified:

Basic Attribute/Sub Element Cardinality (CARD):

This category consists of all

con-straints regarding cardinality of attributes and sub elements of BPMN elements, i.e.,

which attributes are allowed for all BPMN elements and how often are they allowed or

required to occur. Cardinality constraints are mostly denoted in attribute tables in [10]

using the standard notation in square brackets (e.g.,

[1...*]

). Of peculiar interest are

mandatory attributes/elements and minimum/maximum occurrence constraints.

Basic Value Restrictions and Default Values (VAL):

For various attributes/elements

default values and restrictions of allowed values are stated in [10].

Basic Reference Constraints (REF):

Constraints regarding references to other BPMN

Elements: When a BPMN element references another element, the reference must be

resolvable, i.e., the referenced element must exist. Moreover, in most cases only

spe-cific elements are allowed to be referenced. Such constraints are also categorized in this

category.

Extended Constraints (EXT):

All other constraints which could not be assigned to the

other basic categories will be categorized in this category. Especially constraints which

depend on concrete values for other elements and attributes fall in this category.

Depending on the category the extraction approach is different:

Cardinality (

CARD

) and value restrictions (

VAL

) can be determined by simply analyzing the

tables in [10] which define the

“the attributes and model associations”

of all BPMN elements.

These tables contain all needed information such as attribute names, type definitions, value

and cardinality restrictions.

Figure 1 shows an excerpt of Table 8.1 from [10, p.83] which introduces the attributes and their

constraints for the BPMN base element

definitions. The cardinality constraints

CARD.001-CARD.006 (see Sec. 3.1) can be derived from this short extraction: The list of allowed attributes

is determined by the column “Attribute Name” which shows the allowed attributes named

name,

(11)

Figure 1: Element

definitions; excerpt from the BPMN standard ([10, p.83])

targetNamespace,

expressionLanguage,

typeLanguage,

rootElements

and

diagrams

(

bold

label

followed by colon).

The colon is followed by a denotion of the allowed datatype for each attribute which is

“string”

for the former four attributes and

RootElement

resp.

BPMNDiagram

for the latter two.

More-over also the cardinality of each attribute can be derived from Fig. 1: Using the standard

notation in square brackets the lowest and the highest number of occurrences is defined. For

example, the attribute

expressionLanguage

must occur at most once [0

. . .

1], whereas the

num-ber of rootElements is unlimited ([0

. . .

]).

A missing cardinality information denotes the

cardinality [1], that is the attribute must occur exactly once.

The value constraints VAL.001-002 are also defined in Table 8.1: For the attributes

expres-sionLanguage

and

typeLanguage

a default value is specified in the column “Description/Usage”.

Another way to define value define a default is shown in Figure 2: Using the equality sign

the default value

“None”

is defined for the

association’s mandatory element

associationDirec-tion. Moreover using the notation

{value 1 | value 2 | ...}

the set of allowed values is

restricted to three specific strings:

“None”, “One”, “Both”

.

The same tables contain the reference type information which is essential for all reference rules

(

REF

). References can be identified as attributes with the suffix

“. . . Ref ”

and in the normative

XSD files through the usage of the datatypes

xsd:IDREF

and

xsd:QName. An Example for

this can also be observed in Figure 2 namely the two attributes

sourceRef

and

targetRef

which

both refer to a

BaseElement

definition.

Some extended constraints (

EXT

) also can be revealed by analyzing the tables just mentioned

- especially in column

“Description/Usage”

. But it is also often the case that the running text

states further restrictions and rules which have to be respected. Therefore the whole body of

(12)

2.2

Assumptions and Limitations

5

Figure 2:

Association

attribute definition ([10, p.98])

running is text is also taken into consideration to identify extended rules.

Generally extracting rules from the running text is not as trivial as extracting rules from the

tables because here often some interpretation is needed. Moreover some rules are not explicitly

mentioned but are only implicit rules and it is not always the case that the different rule

sources are well aligned. Instead of this the running text, the class diagrams and tables are

often inconsistent.

In such cases we used another source to evaluate which constraint was intended by the standard

authors or how the constraint is interpreted in practice. These additional source was most

frequently the normative XSD files or - when not applicable - we analyzed how tool vendors

implemented the issue in their modeling or execution tools and engines.

2.2

Assumptions and Limitations

As already mentioned in the Introduction our aim is to provide an technology agnostic list of

all model serialization rules or constraints defined in the BPMN standard document. Therefore

the main restriction of our approach is the concentration of rules regarding the serialization

of BPMN models. The serialization of BPMN diagrams (see [10, Chap.12]) and all graphical

constraints such as the appearance of shapes, their nesting, etc. is out the scope of this work.

Other aspects which are not covered in our list of constraints are all rules regarding process

execution and runtime constraints. This includes instance attributes of BPMN models and

particularly constraints regarding the execution semantics of BPMN.

In contrast to this limitations our approach does not assume the usage of the XSD serialization

of BPMN models but is technology agnostic. This is needed in order to check

all

rules

-regardless of the underlying serialization format. In section 4 we discuss how the normative

XSD files already cover the extracted constraints.

(13)

This section presents an overview over all extracted constraints ordered by their categorization

into the four main categories already introduced in section 2.1. For all categories a short

introduction is given and than all correspondent rules are listed tabularly.

3.1

Basic Attribute/Sub Elements Cardinality

The most elementary rules are the basic attribute and element cardinality constraints which

declare for each type of BPMN element which attributes and model associations apply.

Re-specting these constraints it is already possible to create structural correct BPMN models. For

each identified attribute (and sub element) a name, a datatype and a occurrence multiplicity

has to be defined.

These details are required to describe all cardinality rules:

running number (#):

unique number for each constraint (CARD.001-CARD.311)

Element:

name of the affected BPMN element

Attribute/Sub Element:

name of the affected attribute or sub element

Type:

required data type of the referenced or attached attribute/sub element

Cardinality:

required attribute/element multiplicity (

[0..1]

,

[0..*]

,

[1]

,

[1..*]

or

non-standard cardinality)

Table 1 gives an overview of all 311 cardinality constraints.

# Element Attribute/Sub Element Type

Cardi-nality

CARD.001 definitions name String 1

CARD.002 definitions targetNamespace String 1

CARD.003 definitions expressionLanguage String 0..1

CARD.004 definitions typeLanguage String 0..1

CARD.005 definitions rootElements RootElement 0..*

CARD.006 definitions diagrams BPMNDiagram 0..*

CARD.007 definitions imports Import 0..*

CARD.008 definitions extensions Extension 0..*

CARD.009 definitions relationships Relationship 0..*

CARD.010 definitions exporter String 0..1

CARD.011 definitions exporterVersion String 0..1

CARD.012 import importType String 1

CARD.013 import location String 0..1

CARD.014 import namespace String 1

CARD.015 baseElement id String 1

CARD.016 baseElement documentation Documentation 0..*

(14)

3.1

Basic Attribute/Sub Elements Cardinality

7

# Element Attribute/Sub Element Type

Cardi-nality

CARD.018 baseElement extensionValues ExtensionAttributeValue 0..*

CARD.019 documentation text String 1

CARD.020 documentation textFormat String 1

CARD.021 extension mustUnderstand boolean 0..1

CARD.022 extension definition ExtensionDefininition 1

CARD.023 extensionDefinition name String

CARD.024 extensionDefinition

extensionAttributeDefini-tions ExtensionAttributeDefini-tion 0..* CARD.025 extensionAttributeDefini-tion name String 1 CARD.026 extensionAttributeDefini-tion type String 1 CARD.027 extensionAttributeDefini-tion isReference boolean 0..1

CARD.028 extensionAttributeValue value Element 0..1

CARD.029 extensionAttributeValue valueRef Element 0..1

CARD.030 extensionAttributeValue

extensionAttributeDefini-tion

ExtensionAttributeDefini-tion

1

CARD.031 relationship type String 1

CARD.032 relationship direction RelationshipDirection 1

CARD.033 relationship sources Element 1..*

CARD.034 relationship targets Element 1..*

CARD.035 association associationDirection AssociationDirection 1

CARD.036 association sourceRef BaseElement 1

CARD.037 association targetRef BaseElement 1

CARD.038 group categoryValueRef CategoryValue 0..1

CARD.039 category name String 1

CARD.040 category categoryValue CategoryValue 0..*

CARD.041 categoryValue value String 1

CARD.042 categoryValue category Category 0..1

CARD.043 categoryValue categorizedFlowElements FlowElement 0..*

CARD.044 textAnnotation text String 1

CARD.045 textAnnotation textFormat String 1

CARD.046 correlationKey name String 0..1

CARD.047 correlationKey correlationPropertyRef CorrelationProperty 0..*

CARD.048 correlationProperty name String 0..1

CARD.049 correlationProperty type String 0..1

CARD.050 correlationProperty

correlationPropertyRe-trievalExpression CorrelationPropertyRe-trievalExpression 1..* CARD.051 correlationPropertyRe-trievalExpression messagePath FormalExpression 1 CARD.052 correlationPropertyRe-trievalExpression messageRef Message 1

CARD.053 correlationSubscription correlationKeyRef CorrelationKey 1

CARD.054 correlationSubscription

correlationPropertyBin-ding CorrelationPropertyBin-ding 0..* CARD.055 correlationPropertyBin-ding dataPath FormalExpression 1 CARD.056 correlationPropertyBin-ding correlationPropertyRef CorrelationProperty 1

CARD.057 error structureRef ItemDefinition 0..1

CARD.058 error name String 1

(15)

CARD.060 escalation structureRef ItemDefinition 0..1

CARD.061 escalation name String 1

CARD.062 escalation escalationCode String 0..1

CARD.063 formalExpression language String 0..1

CARD.064 formalExpression body Element 1

CARD.065 formalExpression evaluatesToTypeRef ItemDefinition 1

CARD.066 flowElement name String 0..1

CARD.067 flowElement categoryValueRef CategoryValue 0..*

CARD.068 flowElement auditing Auditing 0..1

CARD.069 flowElement monitoring Monitoring 0..1

CARD.070 flowElementsContainer flowElements FlowElement 0..*

CARD.071 flowElementsContainer laneSets LaneSet 0..*

CARD.072 gateway gatewayDirection GatewayDirection 1

CARD.073 itemDefinition itemKind ItemKind 1

CARD.074 itemDefinition structureRef Element 0..1

CARD.075 itemDefinition import Import 0..1

CARD.076 itemDefinition isCollection boolean 1

CARD.077 message name String 1

CARD.078 message itemRef ItemDefinition 0..1

CARD.079 resource name String 1

CARD.080 resource resourceParameters ResourceParameter 0..*

CARD.081 resourceParameter name String 1

CARD.082 resourceParameter type ItemDefinition 1

CARD.083 resourceParameter isRequired boolean 1

CARD.084 sequenceFlow sourceRef FlowNode 1

CARD.085 sequenceFlow targetRef FlowNode 1

CARD.086 sequenceFlow conditionExpression Expression 0..1

CARD.087 sequenceFlow isImmediate boolean 0..1

CARD.088 flowNode incoming SequenceFlow 0..*

CARD.089 flowNode outgoing SequenceFlow 0..*

CARD.090 interface name String 1

CARD.091 interface operations Operation 1..*

CARD.092 interface callableElements CallableElement 0..*

CARD.093 interface implementationRef Element 0..1

CARD.094 operation name String 1

CARD.095 operation inMessageRef Message 1

CARD.096 operation outMessageRef Message 0..1

CARD.097 operation errorRef Error 0..*

CARD.098 operation implementationRef Element 0..1

CARD.099 collaboration name String 1

CARD.100 collaboration choreographyRef Choreography 0..*

CARD.101 collaboration correlationKeys CorrelationKey 0..*

CARD.102 collaboration conversationAssociations ConversationAssociation 0..*

CARD.103 collaboration conversations ConversationNode 0..*

CARD.104 collaboration conversationLinks ConversationLink 0..*

CARD.105 collaboration artifacts Artifact 0..*

CARD.106 collaboration participants Participant 0..*

CARD.107 collaboration participantAssociations ParticipantAssociation 0..*

CARD.108 collaboration messageFlow MessageFlow 0..*

CARD.109 collaboration messageFlowAssociations messageFlowAssociation 0..*

CARD.110 collaboration isClosed boolean 1

CARD.111 participant name String 0..1

(16)

3.1

Basic Attribute/Sub Elements Cardinality

9

# Element Attribute/Sub Element Type

Cardi-nality

CARD.113 participant partnerRoleRef PartnerRole 0..*

CARD.114 participant partnerEntityRef PartnerEntity 0..*

CARD.115 participant interfaceRef Interface 0..*

CARD.116 participant participantMultiplicity ParticipantMultiplicity 0..1

CARD.117 participant endPointRefs EndPoint 0..*

CARD.118 partnerEntity name String 1

CARD.119 partnerEntity participantRef Participant 0..*

CARD.120 partnerRole name String 1

CARD.121 partnerRole participantRef Participant 0..*

CARD.122 participantMultiplicity minimum integer 1

CARD.123 participantMultiplicity maximum integer 0..1

CARD.124 participantAssociation innerParticipantRef Participant 1

CARD.125 participantAssociation outerParticipantRef Participant 1

CARD.126 messageFlow name String 1

CARD.127 messageFlow sourceRef InteractionNode 1

CARD.128 messageFlow targetRef InteractionNode 1

CARD.129 messageFlow messageRef Message 0..1

CARD.130 messageFlowAssociation innerMessageFlowRef MessageFlow 1

CARD.131 messageFlowAssociation outerMessageFlowRef MessageFlow 1

CARD.132 conversationNode name String 0..1

CARD.133 conversationNode participantRefs Participant 2..*

CARD.134 conversationNode messageFlowRefs MessageFlow 0..*

CARD.135 conversationNode correlationKeys CorrelationKey 0..*

CARD.136 subConversation conversationNodes ConversationNode 0..*

CARD.137 callConversation calledCollaborationRef Collaboration 0..1

CARD.138 callConversation participantAssociations ParticipantAssociation 0..*

CARD.139 conversationLink name String 0..1

CARD.140 conversationLink sourceRef InteractionNode 1

CARD.141 conversationLink targetRef InteractionNode 1

CARD.142 conversationAssociation

innerConversationNode-Ref

ConversationNode 0..1

CARD.143 conversationAssociation

outerConversationNode-Ref

ConversationNode 0..1

CARD.144 process processType ProcessType 1

CARD.145 process isExecutable boolean 0..1

CARD.146 process auditing Auditing 0..1

CARD.147 process monitoring Monitoring 0..1

CARD.148 process artifacts Artifact 0..1

CARD.149 process isClosed boolean 1

CARD.150 process supports Process 0..*

CARD.151 process properties Property 0..*

CARD.152 process resources ResourceRole 0..*

CARD.153 process correlationSubscriptions CorrelationSubscription 0..*

CARD.154 process

definitionalCollaboration-Ref

Collaboration 0..1

CARD.155 activity isForCompensation boolean 1

CARD.156 activity loopCharecteristics LoopCharacteristics 0..1

CARD.157 activity resources ResourceRole 0..*

CARD.158 activity default SequenceFlow 0..1

CARD.159 activity ioSpecification InputOutputSpecification 0..1

CARD.160 activity properties Property 0..*

CARD.161 activity boundaryEventRefs BoundaryEvent 0..*

(17)

CARD.163 activity dataOutputAssociations DataOutputAssociation 0..*

CARD.164 activity startQuantity integer 1

CARD.165 activity completionQuantity integer 1

CARD.166 resourceRole resourceRef Resource 0..1

CARD.167 resourceRole

resourceAssignmentEx-pression

RessourceAssignmentEx-pression

0..1

CARD.168 resourceRole

resourceParameterBin-dings ResourceParameterBin-ding 0..* CARD.169 resourceAssignmentEx-pression expression Expression 1 CARD.170 resourceParameterBin-ding parameterRef ResourceParameter 1 CARD.171 resourceParameterBin-ding expression Expression 1

CARD.172 serviceTask implementation String 1

CARD.173 serviceTask operationRef Operation 0..1

CARD.174 sendTask messageRef Message 0..1

CARD.175 sendTask operationRef Operation 0..1

CARD.176 sendTask implementation String 1

CARD.177 receiveTask messageRef Message 0..1

CARD.178 receiveTask instantiate boolean 1

CARD.179 receiveTask operationRef Operation 0..1

CARD.180 receiveTask implementation String 1

CARD.181 businessRuleTask implementation String 1

CARD.182 scriptTask scriptFormat String 0..1

CARD.183 scriptTask script String 0..1

CARD.184 userTask implementation String 1

CARD.185 userTask renderings Rendering 0..*

CARD.186 subProcess triggeredByEvent boolean 1

CARD.187 subProcess artifacts Artifact 0..*

CARD.188 transaction method TransactionMethod 1

CARD.189 adHocSubProcess completionCondition Expression 1

CARD.190 adHocSubProcess ordering AdHocOrdering 1

CARD.191 adHocSubProcess cancelRemainingInstances boolean 1

CARD.192 callActivity calledElement CallableElement 0..1

CARD.193 callableElement name String 0..1

CARD.194 callableElement supportedInterfaceRefs Interface 0..*

CARD.195 callableElement ioSpecification InputOutputSpecification 0..1

CARD.196 callableElement ioBinding InputOutputBinding 0..*

CARD.197 inputOutputBinding inputDataRef DataInput 1

CARD.198 inputOutputBinding outputDataRef DataOutput 1

CARD.199 inputOutputBinding operationRef Operation 1

CARD.200 GlobalTask resources ResourceRole 0..*

CARD.201 StandardLoopCharacter-istics testBefore boolean 1 CARD.202 StandardLoopCharacter-istics loopMaximum integer 0..1 CARD.203 StandardLoopCharacter-istics loopCondition Expression 0..1 CARD.204 MultiInstanceLoop-Characteristics isSequential boolean 1 CARD.205 MultiInstanceLoop-Characteristics loopCardinality Expression 0..1

(18)

3.1

Basic Attribute/Sub Elements Cardinality

11

# Element Attribute/Sub Element Type

Cardi-nality CARD.206 MultiInstanceLoop-Characteristics loopDataInputRef ItemAwareElement 0..1 CARD.207 MultiInstanceLoop-Characteristics loopDataOutputRef ItemAwareElement 0..1 CARD.208 MultiInstanceLoop-Characteristics inputDataItem DataInput 0..1 CARD.209 MultiInstanceLoop-Characteristics outputDataItem DataOutput 0..1 CARD.210 MultiInstanceLoop-Characteristics behavior MultiInstanceBehavior 1 CARD.211 MultiInstanceLoop-Characteristics complexBehaviorDefini-tion ComplexBehaviorDefini-tion 0..* CARD.212 MultiInstanceLoop-Characteristics completionCondition Expression 0..1 CARD.213 MultiInstanceLoop-Characteristics oneBehaviorRef EventDefinition 0..1 CARD.214 MultiInstanceLoop-Characteristics noneBehaviorRef EventDefinition 0..1 CARD.215 ComplexBehaviorDefini-tion condition FormalExpression 1 CARD.216 ComplexBehaviorDefini-tion event ImplicitThrowEvent 1

CARD.217 ItemAwareElement itemSubjectRef ItemDefinition 0..1

CARD.218 ItemAwareElement dataState DataState 0..1

CARD.219 DataObject isCollection boolean 1

CARD.220 DataObjectReference dataObjectRef DataObject 1

CARD.221 DataState name String 1

CARD.222 DataStore name String 1

CARD.223 DataStore capacity integer 0..1

CARD.224 DataStore isUnlimited boolean 1

CARD.225 DataStoreReference dataStoreRef DataStore 1

CARD.226 Property name String 1

CARD.227 InputOutputSpecification inputSets InputSet 1..*

CARD.228 InputOutputSpecification outputSets OutputSet 1..*

CARD.229 InputOutputSpecification dataInputs DataInput 0..*

CARD.230 InputOutputSpecification dataOutputs DataOutput 0..*

CARD.231 DataInput name String 0..1

CARD.232 DataInput inputSetRefs InputSet 1..*

CARD.233 DataInput inputSetwithOptional InputSet 0..*

CARD.234 DataInput

inputSetWithWhileExe-cuting

InputSet 0..*

CARD.235 DataInput isCollection boolean 1

CARD.236 DataOutput name String 0..1

CARD.237 DataOutput outputSetRefs OutputSet 1..*

CARD.238 DataOutput ioutputSetwithOptional OutputSet 0..*

CARD.239 DataOutput

outputSetWithWhileExe-cuting

OutputSet 0..*

CARD.240 DataOutput isCollection boolean 1

CARD.241 InputSet name String 0..1

CARD.242 InputSet dataInputRefs DataInput 0..*

CARD.243 InputSet optionalInputRefs DataInput 0..*

CARD.244 InputSet whileExecutingInputRefs DataInput 0..*

(19)

CARD.246 OutputSet name String 0..1

CARD.247 OutputSet dataOutputRefs DataOutput 0..*

CARD.248 OutputSet optionalOutputRefs DataOutput 0..*

CARD.249 OutputSet

whileExecutingOutput-Refs

DataOutput 0..*

CARD.250 OutputSet inputSetRefs InputSet 0..*

CARD.251 DataAssociation transformation Expression 0..1

CARD.252 DataAssociation assignment Assignment 0..*

CARD.253 DataAssociation sourceRef ItemAwareElement 0..*

CARD.254 DataAssociation targetRef ItemAwareElement 1

CARD.255 Assignment from Expression 1

CARD.256 Assignment to Expression 1

CARD.257 Event properties Property 0..*

CARD.258 CatchEvent eventDefinitionRefs EventDefinition 0..*

CARD.259 CatchEvent eventDefinitions EventDefinition 0..*

CARD.260 CatchEvent dataOutputAssociations DataOutputAssociation 0..*

CARD.261 CatchEvent dataOutputs DataOutput 0..*

CARD.262 CatchEvent outputSet OutputSet 0..1

CARD.263 CatchEvent parallelMultiple boolean 1

CARD.264 ThrowEvent eventDefinitionRefs EventDefinition 0..*

CARD.265 ThrowEvent eventDefinitions EventDefinition 0..*

CARD.266 ThrowEvent dataInputAssociations DataInputAssociation 0..*

CARD.267 ThrowEvent dataInuts DataInput 0..*

CARD.268 ThrowEvent inputSet InputSet 0..1

CARD.269 StartEvent isInterrupting boolean 1

CARD.270 BoundaryEvent attachedTo Activity 1

CARD.271 BoundaryEvent cancelActivity boolean 1

CARD.272 CompensationEvent-Definition activityRef Activity 0..1 CARD.273 CompensationEvent-Definition waitForCompletion boolean 1 CARD.274 ConditionalEvent-Definition condition Expression 1

CARD.275 ErrorEventDefinition error Error 0..1

CARD.276 EscalationEventDefinition escalationRef Escalation 0..1

CARD.277 LinkEventDefinition name String 1

CARD.278 LinkEventDefinition sources LinkEventDefinition 1..*

CARD.279 LinkEventDefinition target LinkEventDefinition 1

CARD.280 MessageEventDefinition messageRef Message 0..1

CARD.281 MessageEventDefinition operationRef Operation 0..1

CARD.282 SignalEventDefinition signalRef Signal 0..1

CARD.283 Signal4 name String 0..1

CARD.284 Signal3 structureRef ItemDefinition 0..1

CARD.285 TimerEventDefinition timeDate Expression 0..1

CARD.286 TimerEventDefinition timeDuration Expression 0..1

CARD.287 TimerEventDefinition timeCycle Expression 0..1

CARD.288 ExclusiveGateway default SequenceFlow 0..1

CARD.289 InclusiveGateway default SequenceFlow 0..1

CARD.290 ComplexGateway activationCondition Expression 0..1

CARD.291 ComplexGateway default SequenceFlow 0..1

CARD.292 EventBasedGateway instantiate boolean 1

(20)

3.1

Basic Attribute/Sub Elements Cardinality

13

# Element Attribute/Sub Element Type

Cardi-nality

CARD.293 EventBasedGateway eventGatewayType EventGatewayType 1

CARD.294 LaneSet name String 0..1

CARD.295 LaneSet process Process 1

CARD.296 LaneSet lanes Lane 0..*

CARD.297 LaneSet parentLane Lane 0..1

CARD.298 Lane name String 1

CARD.299 Lane partitionElement BaseElement 0..1

CARD.300 Lane partitionElementRef BaseElement 0..1

CARD.301 Lane childLaneSet LaneSet 0..1

CARD.302 Lane flowNodeRefs FlowNode 0..*

CARD.303 ChoreographyActivity participantRefs Participant 2..*

CARD.304 ChoreographyActivity initiatingParticipantRef Participant 1

CARD.305 ChoreographyActivity loopType ChoreographyLoopType 1

CARD.306 ChoreographyActivity correlationKeys CorrelationKey 0..*

CARD.307 ChoreographyTask messageFlowRef MessageFlow 1..*

CARD.308 SubChoreography artifacts Artifact 0..*

CARD.309 CallChoreography calledChoreographyRef CallableElement 0..1

CARD.310 CallChoreography participantAssiociations ParticipantAssociation 0..*

CARD.311 GlobalChoreographyTask initiatingParticipantRef Participant 1

Table 1: Overview: Basic Attributes and Sub Elements and their Cardinality

(21)

Especially for attributes which refer to basic datatypes (such as

boolean

or

integer) or to

datatypes derived from such datatypes (e.g.,

String

enumerations) the BPMN standard [10]

defines value restrictions and default values.

These details are required to describe all value restriction rules:

running number (#):

unique number for each constraint (VAL.001-VAL.041)

Element:

name of the affected BPMN element

Attribute:

affected attribute or sub element name

Type:

required data type of the attribute/sub element

Default Value:

required default value (“-”, if no default value is required)

Value Restriction:

list of all allowed values; following the notation in [10]: (

{

Value1

|

Value2

|

. . .

}

) (“-”, if there is no value restriction)

The list of all value constraints follows in Table 2.

# Element Attribute Type Default Value Value Restriction

VAL.001 definitions

expressionLan-guage

String http://www.w3.org

/1999/Xpath

-VAL.002 definitions typeLanguage String http://www.w3.org

/2001/XMLSchema

-VAL.003 documentation textFormat String ”text/plain”

-VAL.004 extension mustUnderstand boolean false

-VAL.005

extensionAttri-buteDefinition

isReference boolean false

-VAL.006 relationship direction

Relation- shipDi-rection

- {None|Forward|

Back-ward|Both}

VAL.007 association

associationDi-rection

Associa- tionDi-rection

“None” {None|One|Both}

VAL.008 textAnnotation textFormat String ”text/plain”

-VAL.009 gateway

gatewayDirec-tion

Gateway-Direction

”Unspecified” {Unspecified|

Converg-ing|Diverging|Mixed}

VAL.010 itemDefinition itemKind ItemKind ”Information” {Information|Physical}

VAL.011 itemDefinition isCollection boolean false

-VAL.012 collaboration isClosed boolean false

-VAL.013 participantMul-tiplicity minimum integer 0 -VAL.014 participantMul-tiplicity maximum integer 1

-VAL.015 process processType

Process-Type

”None” {None | Private |

Pub-lic}

VAL.016 process isClosed boolean false

-VAL.017 activity

isForCompen-sation

(22)

-3.2

Basic Value Restrictions and Default Values

15

# Element Attribute Type Default Value Value Restriction

VAL.018 activity startQuantity integer 1

-VAL.019 activity

completion-Quantity

integer 1

-VAL.020 serviceTask implementation String ”##WebService”

-VAL.021 sendTask implementation String ”##WebService”

-VAL.022 receiveTask instantiate boolean false

-VAL.023 receiveTask implementation String ”##WebService”

-VAL.024

businessRule-Task

implementation String ”##unspecified”

-VAL.025 userTask implementation String ”##unspecified”

-VAL.026 subProcess

triggeredBy-Event boolean false -VAL.027 adHocSubPro-cess ordering AdHoc-Ordering

”Parallel” { Parallel|Sequential}

VAL.028 adHocSubPro-cess cancelRemain-ingInstances boolean true -VAL.029 StandardLoop-Characteristics

testBefore boolean false

-VAL.030

MultiInstance- LoopCharacter-istics

isSequential boolean false

-VAL.031 MultiInstance- LoopCharacter-istics behavior MultiIn- stance-Behavior

”all” { None | One | All |

Complex}

VAL.032 DataObject isCollection boolean false

-VAL.033 DataStore isUnlimited boolean false

-VAL.034 DataInput isCollection boolean false

-VAL.035 DataOutput isCollection boolean false

-VAL.036 CatchEvent parallelMultiple boolean false

-VAL.037 StartEvent isInterrupting boolean true

VAL.038 Compensation-EventDefinition waitForComple-tion boolean true -VAL.039 EventBased-Gateway

instantiate boolean false

-VAL.040 EventBased-Gateway eventGateway-Type Event- Gateway-Type

”Exclusive” {Exclusive|Parallel}

VAL.041 Choreography-Activity loopType Choreo- graphy- Loop-Type

”None” {None|Standard|

Mul-tiInstanceSequential |

MultiInstanceParallel}

(23)

References are used heavily in BPMN models. The two main sources for reference usage are on

the one hand the ability of BPMN to define reusable elements that might be used in various

referencing elements (e.g., various

Message

definitions might refer to the same

ItemDefinition

)

and on the other hand flow definitions. All flow definitions are also implemented using references

to sources, targets and flow definitions.

For all references two aspects are important: First, the reference must be resolvable, i.e., the

referenced element exists either in the same model or has been imported. Second, for most

references only particular elements are allowed. Using the example from before: The attribute

itemRef

of the element

Message

must refer to an

ItemDefintion

(see REF.017). All other

element references violate this constraint.

For a technology agnostic view on the references it is sufficient to know which attribute is

a reference and what type of BPMN elements is referenced. However, as the information is

needed for further checks (see Sec. 4.3), in this case also the XSD-specific attribute naming

and implementation is added to the tabular overview of all reference constraints.

Therefore, the structure of the reference constraint table is:

running number (#):

unique number for each constraint (REF.001-REF.107)

Element:

name of the affected BPMN element

Attribute/Sub Element:

name of the referencing attribute or sub element

Type:

data type of the referenced element

Attribute/Element name in XSD:

name used in the XSD files

XSD Type:

denotes whether an

xsd:IDREF

or

xsd:QName

is used to implement the

reference in the XSD files

The list of all reference constraints follows in Table 3.

# Element Attribute/Sub

Ele-ment

Type Attribute/Element

name in XSD

XSD Type

REF.001 extension definition

ExtensionDefini-tion

definition QName

REF.002 relationship sources Element source QName

REF.003 relationship targets Element target QName

REF.004 association sourceRef BaseElement sourceRef QName

REF.005 association targetRef BaseElement targetRef QName

REF.006 group categoryValueRef CategoryValue categoryValueRef QName

REF.007 correlationKey

correlationProper-tyRef CorrelationProper-ty correlationProper-tyRef QName

REF.008 correlationProperty type String type QName

REF.009

correlationProper- tyRetrievalExpres-sion

(24)

3.3

Basic Reference Constraints

17

# Element Attribute/Sub

Ele-ment Type Attribute/Element name in XSD XSD Type REF.010 correlationSub-scription

correlationKeyRef CorrelationKey correlationKeyRef QName

REF.011 correlationProper-tyBinding correlationProper-tyRef CorrelationProper-ty correlationProper-tyRef QName

REF.012 error structureRef ItemDefinition structureRef QName

REF.013 escalation structureRef ItemDefinition structureRef QName

REF.014 formalExpression

evaluatesToType-Ref

ItemDefinition

evaluatesToType-Ref

QName

REF.015 flowElement categoryValueRef CategoryValue categoryValueRef QName

REF.016 itemDefinition structureRef Element structureRef QName

REF.017 message itemRef ItemDefinition itemRef QName

REF.018 resourceParameter type ItemDefinition type QName

REF.019 sequenceFlow sourceRef FlowNode sourceRef IDREF

REF.020 sequenceFlow targetRef FlowNode targetRef IDREF

REF.021 flowNode incoming SequenceFlow incoming QName

REF.022 flowNode outgoing SequenceFlow outgoing QName

REF.023 interface implementationRef Element implementationRef QName

REF.024 operation inMessageRef Message inMessageRef QName

REF.025 operation outMessageRef Message outMessageRef QName

REF.026 operation errorRef Error errorRef QName

REF.027 operation implementationRef Element implementationRef QName

REF.028 collaboration choreographyRef Choreography choreographyRef QName

REF.029 participant processRef Process processRef QName

REF.030 participant interfaceRef Interface interfaceRef QName

REF.031 participant endPointRefs EndPoint endPointRef QName

REF.032 partnerEntity participantRef Participant participantRef QName

REF.033 partnerRole participantRef Participant participantRef QName

REF.034 participantAssocia-tion innerParticipant-Ref Participant innerParticipant-Ref QName REF.035 participantAssocia-tion outerParticipant-Ref Participant outerParticipant-Ref QName

REF.036 messageFlow sourceRef InteractionNode sourceRef QName

REF.037 messageFlow targetRef InteractionNode targetRef QName

REF.038 messageFlow messageRef Message messageRef QName

REF.039 messageFlowAsso-ciation innerMessageFlow-Ref MessageFlow innerMessageFlow-Ref QName REF.040 messageFlowAsso-ciation outerMessageFlow-Ref MessageFlow outerMessageFlow-Ref QName

REF.041 conversationNode participantRefs Participant participantRef QName

REF.042 conversationNode messageFlowRefs MessageFlow messageFlowRef QName

REF.043 callConversation

calledCollabora-tionRef

Collaboration

calledCollabora-tionRef

QName

REF.044 conversationLink sourceRef InteractionNode sourceRef QName

REF.045 conversationLink targetRef InteractionNode targetRef QName

REF.046 conversationAsso-ciation innerConversation-NodeRef ConversationNode innerConversation-NodeRef QName REF.047 conversationAsso-ciation outerConversation-NodeRef ConversationNode outerConversation-NodeRef QName

REF.048 process supports Process supports QName

REF.049 process

definitionalColla-borationRef

Collaboration

definitionalColla-borationRef

QName

REF.050 activity default SequenceFlow default IDREF

(25)

REF.052 resourceParameter-Binding

parameterRef ResourceParameter parameterRef QName

REF.053 serviceTask operationRef Operation operationRef QName

REF.054 sendTask messageRef Message messageRef QName

REF.055 sendTask operationRef Operation operationRef QName

REF.056 receiveTask messageRef Message messageRef QName

REF.057 receiveTask operationRef Operation operationRef QName

REF.058 callActivity calledElement CallableElement calledElement QName

REF.059 callableElement

supportedInterface-Refs Interface supportedInterface-Refs QName REF.060 inputOutputBin-ding

inputDataRef DataInput inputDataRef IDREF

REF.061

inputOutputBin-ding

outputDataRef DataOutput outputDataRef IDREF

REF.062

inputOutputBi-nding

operationRef Operation operationRef QName

REF.063

MultiInstance- LoopCharacteris-tics

loopDataInputRef ItemAwareElement loopDataInputRef QName

REF.064

MultiInstance- LoopCharacteris-tics

loopDataOutputRef ItemAwareElement loopDataOutputRef QName

REF.065

MultiInstance- LoopCharacteris-tics

oneBehaviorRef EventDefinition oneBehaviorRef QName

REF.066

MultiInstance- LoopCharacteris-tics

noneBehaviorRef EventDefinition noneBehaviorRef QName

REF.067 DataObject - - itemSubjectRef QName

REF.068

DataObjectRefe-rence

dataObjectRef DataObject dataObjectRef IDREF

REF.069

DataObjectRefe-rence

- - itemSubjectRef QName

REF.070 DataStore - - itemSubjectRef QName

REF.071 DataStoreReference dataStoreRef DataStore dataStoreRef QName

REF.072 DataStoreReference - - itemSubjectRef QName

REF.073 Property - - itemSubjectRef QName

REF.074 DataInput - - itemSubjectRef QName

REF.075 DataOutput - - itemSubjectRef QName

REF.076 InputSet dataInputRefs DataInput dataInputRefs IDREF

REF.077 InputSet optionalInputRefs DataInput optionalInputRefs IDREF

REF.078 InputSet

whileExecuting-InputRefs

DataInput

whileExecuting-InputRefs

IDREF

REF.079 InputSet outputSetRefs OutputSet outputSetRefs IDREF

REF.080 OutputSet dataOutputRefs DataOutput dataOutputRefs IDREF

REF.081 OutputSet optionalOutputRefs DataOutput optionalOutputRefs IDREF

REF.082 OutputSet

whileExecuting-OutputRefs

DataOutput

whileExecuting-OutputRefs

IDREF

REF.083 OutputSet inputSetRefs InputSet inputSetRefs IDREF

REF.084 DataAssociation sourceRef ItemAwareElement sourceRef IDREF

REF.085 DataAssociation targetRef ItemAwareElement targetRef IDREF

REF.086 CatchEvent eventDefinitionRefs EventDefinition eventDefinitionRef QName

(26)

3.3

Basic Reference Constraints

19

# Element Attribute/Sub

Ele-ment

Type Attribute/Element

name in XSD

XSD Type

REF.088 BoundaryEvent attachedTo Activity attachedToRef QName

REF.089

Compensation-EventDefinition

activityRef Activity activityRef QName

REF.090

ErrorEventDefini-tion

error Error errorRef QName

REF.091

EscalationEvent-Definition

escalationRef Escalation escalationRef QName

REF.092 LinkEventDefini-tion sources LinkEventDefini-tion source QName REF.093 LinkEventDefini-tion target LinkEventDefini-tion target QName REF.094 MessageEventDefi-nition

messageRef Message messageRef QName

REF.095

MessageEventDefi-nition

operationRef Operation operationRef QName

REF.096

SignalEventDefini-tion

signalRef Signal signalRef QName

REF.097 Signal structureRef QName

REF.098 ExclusiveGateway default SequenceFlow default IDREF

REF.099 InclusiveGateway default SequenceFlow default IDREF

REF.100 ComplexGateway default SequenceFlow default IDREF

REF.101 Lane

partitionElement-Ref

BaseElement

partitionElement-Ref

QName

REF.102 Lane flowNodeRefs FlowNode flowNodeRef IDREF

REF.103

ChoreographyActi-vity

participantRefs Participant participantRef QName

REF.104 ChoreographyActi-vity initiatingPartici-pantRef Participant initiatingPartici-pantRef QName

REF.105 ChoreographyTask messageFlowRef MessageFlow messageFlowRef QName

REF.106 CallChoreography

calledChoreogra-phyRef CallableElement calledChoreogra-phyRef QName REF.107 GlobalChoreogra-phyTask initiatingPartici-pantRef Participant initiatingPartici-pantRef QName Table 3: Overview: Basic Reference Constraints

(27)

In contrast to the previously introduced constraint categories which can be described with a

few attributes as they all follow the same pattern the following extended constraints (

EXT

) need

to be described in more detail. This is mainly due to the fact that the rules in this section

cover more complex requirements, often depicted in the running standard text.

The detailed descriptions of all extracted extended constraints follows a common structure

which is outlined in the following section. The subsequent section shows an overview of all

extended constraints in tabular form, whereas the actual extensive descriptions can be found

in Appendix A.

3.4.1

Constraint Structure and Important Attributes

Although the extended constraint cannot be categorized as they focus on different aspects,

some describing attributes are relevant for all of them. Most rules concern a specific BPMN

element and one of its attributes. In order to describe the constraint a textual description is

always needed. And to provide an ability to reproduce the (potential) interpretation and rule

extraction the standard document is always quoted and referenced.

The common tabular structure which is used to provide a clear representation is shown

exem-plarily in table 4.

Rule # Conf.Level Label: Affected Element: Attribute/Sub Element: Constraint: (Pre-) Condi-tion: Source: Chapter pg.

Table 4: Example to illustrate the extensive description of all Extended Constraints

All used aspects in table 4 are introduced and summarized in the following bullet list:

Rule #:

unique number for each constraint (EXT.001-EXT.145)

Conformance Level (Conf.Level):

indication for which BPMN conformance class

[10, Sec. 2] the actual rule is relevant; possible values:

all:

relevant for all conformance classes

(28)

3.4

Extended Constraints

21

exec:

relevant for

Process Execution Conformance

[10, Sec. 2.2]

chor:

relevant for

Choreography Modeling Conformance

[10, Sec. 2.4]

arbitrary combinations of the three former values

Label:

short summarizing rule label

Affected Element:

name of the affected BPMN element (might be empty, denoted as

“-”, if a rule does not apply to a single element)

Attribute/Sub Element:

affected attribute or sub element name (“-”, if no single

attribute is affected)

Constraint:

textual specification of the actual constraint

(Pre-) Condition:

condition under which the rule applies

Source:

quotation of the corresponding statement in the standard document [10]

Chapter & Page:

corresponding chapter and page in [10] where the quotation can be

found

3.4.2

Tabular Overview

As mentioned before, the following table 5 gives an overview of all extended constraints. The

compact description of the extended rules consists of:

running number (#):

unique number for each constraint (EXT.001-EXT.145)

Element:

name of the affected BPMN element (“-”, if rule does not apply to single

element)

Attribute/Sub Element:

name of the affected attribute or sub element (“-”, if rule

does not apply to specific attribute)

Label:

short summarizing name for each actual rule

Details:

reference

5

to the section in the appendix A containing the detailed constraint

description

# Element Attribute/Sub

Element

Label Details

EXT.001 import - ImportProcessing A.1

EXT.002 baseElement id BaseElementUniqueId A.2

EXT.003 baseElement id BaseElementId A.3

EXT.004 documentation textFormat DocumentationTextFormatMimeType A.4

EXT.005 artifact - ArtifactExtensibility A.5

(29)

EXT.006 artifact/Se-quenceFlow - ArtifactSeqFlowNoTarget A.6 EXT.007 artifact/S-equenceFlow - ArtifactSeqFlowNoSource A.7 EXT.008 artifact/Mes-sageFlow - ArtifactMsgFlowNoTarget A.8 EXT.009 artifact/Mes-sageFlow - ArtifactMsgFlowNoSource A.9

EXT.010 textAnnotation textFormat TextAnnotationTextFormatMimeType A.10

EXT.011 Escalation escalationCode EscalationEscalationCodeRules A.11

EXT.012 Expression ExpressionNaturalLanguageNotExecutable A.12

EXT.013

FormalExpres-sion

FormalExpressionBodyMustBePresent A.13

EXT.014

FormalExpres-sion

language FormalExpressionLanguageUriFormat A.14

EXT.015

FlowElement-Container

FlowElementContainerLaneSetConstraint A.15

EXT.016 Gateway

gatewayDirec-tion

GatewayGatewayDirectionUnspecifiedCon-straint

A.16

EXT.017 Gateway

gatewayDirec-tion

GatewayGatewayDirectionConvergingCon-straint

A.17

EXT.018 Gateway

gatewayDirec-tion

GatewayGatewayDirectionDivergingCon-straint

A.18

EXT.019 Gateway

gatewayDirec-tion

GatewayGatewayDirectionMixedConstraint A.19

EXT.020 ItemDefinition isCollection ItemDefinitionIsCollectionCheck A.20

EXT.021 SequenceFlow sourceRef SequenceFlowSourceRefConstraints A.21

EXT.022 SequenceFlow targetRef SequenceFlowTargetRefConstraints A.22

EXT.023 SequenceFlow - SequenceFlowUsageConsistencyCheck A.23

EXT.024 SequenceFlow isImmediate

SequenceFlowIsImmediateExecutableCon-straint

A.24

EXT.025 SequenceFlow SequenceFlowConditionalActivityConstraint A.25

EXT.026 SequenceFlow (sourceRef) SequenceFlowDefaultSeqFlowCheck A.26

EXT.027 Collaboration

choreography-Ref

CollaborationChoreographyRefConstraints A.27

EXT.028 SequenceFlow sourceRef /

tar-getRef PoolNoSequenceFlowBetweenPools A.28 EXT.029 ParticipantMul-tiplicity minimum ParticipantMultiplicityMinimumValidValue-Check A.29 EXT.030 ParticipantMul-tiplicity maximum ParticipantMultiplicityMaximumValidValue-Check A.30

EXT.031 MessageFlow sourceRef /

tar-getRef

MessageFlowConnectionOfPools A.31

EXT.032

GlobalConver-sation

- GlobalConversationConstraints A.32

EXT.033 Collaboration isClosed CollaborationIsClosedAdditionalConstraint A.33

EXT.034 - - LaneConsistentToConversation A.34

EXT.035 Process isExecutable ProcessIsExecutableConstraint A.35

EXT.036 Process flowElement ProcessFlowElementConstraints A.36

EXT.037 Activity startQuantity ActivityStartQuantityValidValueCheck A.37

EXT.038 Activity

completion-Quantity

(30)

3.4

Extended Constraints

23

# Element Attribute/Sub

Element

Label Details

EXT.039 ResourceRole resourceRef /

resourcePara-meterBinding

ResourceRoleSubelemConstraint A.39

EXT.040 ResourceRole

resourcePara-meterBinding

ResourceRoleResourceParameterBindingCon-straint

A.40

EXT.041 Task - TaskLoopXORMultiInstanceMarker A.41

EXT.042 ServiceTask InputSet ServiceTaskExactlyOneInputSet A.42

EXT.043 ServiceTask OutputSet ServiceTaskAtMostOneOutputSet A.43

EXT.044 dataInput itemSubjectRef ServiceTaskDataInputItemDefCheck A.44

EXT.045 dataOutput itemSubjectRef ServiceTaskDataOutputItemDefCheck A.45

EXT.046 SendTask InputSet SendTaskAtMostOneInputSet A.46

EXT.047 SendTask DataInput SendTaskAtMostOneDataInput A.47

EXT.048 DataInput (as

SubSubelem of

SendTask)

itemSubjectRef SendTaskDataInputItemDefCheck A.48

EXT.049 ReceiveTask instantiate ReceiveTaskInstantiateConstraint A.49

EXT.050 ReceiveTask OutputSet ReceiveTaskAtMostOneOutputSet A.50

EXT.051 ReceiveTask DataOutput ReceiveTaskAtMostOneDataOutput A.51

EXT.052 DataOutput (as

SubSubelem of

ReceiveTask)

itemSubjectRef ReceiveTaskDataOutputItemDefCheck A.52

EXT.053 ScriptTask scriptFormat

ScriptTaskScriptFormatRequiredWhenScript-Present

A.53

EXT.054 SubProcess SubProcessMaximumOfThreeMarkers A.54

EXT.055 SubProcess SubProcessLoopXORMultiInstance A.55

EXT.056 - -

SubProcessFlowElementContainerCon-straints

A.56

EXT.057 SubProcess EventSubProcessNoSequenceFlows A.57

EXT.058 SubProcess StartEvent EventSubProcessExactlyOneStartEvent A.58

EXT.059 SubProcess EventDefinition EventSubProcessRequiresEventDefinition A.59

EXT.060 Transaction method TransactionMethodExecConstraint A.60

EXT.061 AdHocSubPro-cess AdHocSubProcessAtLeastOneActivity A.61 EXT.062 AdHocSubPro-cess AdHocSubProcessElementsNotAllowed A.62

EXT.063 CallActivity

InputOutput-Specification (inherited from Activity) CallActivitityInputOutputSpecificationCon-straints A.63

EXT.064 CallableElement ioBinding CallableElementAtLeastOneIOBinding A.64

EXT.065 CallableElement ioBinding

CallableElementInputOutputBindingCon-straint

A.65

EXT.066 GlobalTask - GlobalTasksCheckCorrespondingRules A.66

EXT.067 MultiInstance- LoopCharacter-istics - MultiInstanceLoopCharacteristicsRequired-LoopCardinalityOrLoopDataInput A.67 EXT.068 MultiInstance- LoopCharacter-istics loopDataInput-Ref MultiInstanceLoopCharacteristicsLoopData-InputForTasks A.68 EXT.069 MultiInstance- LoopCharacter-istics inputDataItem MultiInstanceLoopCharacteristicsOutputDa-taItemType A.69

(31)

EXT.070 MultiInstance- LoopCharacter-istics outputDataItem MultiInstanceLoopCharacteristicsInputData-ItemType A.70 EXT.071 MultiInstance- LoopCharacter-istics Completion-Condition MultiInstanceLoopCharacteristicsComple-tionConditionBooleanExpression A.71 EXT.072 ComplexBe-haviorDefinition condition ComplexBehaviorDefinitionElementCondi-tion A.72

EXT.073 DataObject - DataObjectsAllowedInProcessesOnly A.73

EXT.074 DataObject dataState DataObjectsCannotSpecifyStates A.74

EXT.075 DataObjectRe-ference itemSubjectRef DataObjectReferencesCannotSpecifyItemDe-finitions A.75 EXT.076 DataObjectRe-ference

name DataObjectReferenceNamingConvention A.76

EXT.077 DataObject isCollection

DataObjectIsCollectionSameValueAsInItem-Def

A.77

EXT.078 Property - PropertyUsageRestrictions A.78

EXT.079

InputOutput-Specification

- InputOutputSpecificationUsageRestrictions A.79

EXT.080 DataInput - DataInputAssociationConstraints A.80

EXT.081 DataInput isCollection DataInputIsCollectionDefaultValue A.81

EXT.082 DataOutput - DataOutputAssociationConstraints A.82

EXT.083 DataOutput isCollection DataOutputIsCollectionDefaultValue A.83

EXT.084 DataInput - DataInputMustBeReferencedByAnInputSet A.84

EXT.085 InputSet

optionalInput-Refs

InputSetOptionalInputRefDefinedAsDataIn-put

A.85

EXT.086 InputSet

whileExecuting-InputRefs

InputSetWhileExecutingInputRefsDefinedAs-DataInput

A.86

EXT.087 InputSet /

Out-putSet

outputSetRefs / inputSetRefs

InputOutputRuleDefinition A.87

EXT.088 DataOutput -

DataOutputMustBeReferencedByAnOutput-Set

A.88

EXT.089 OutputSet

optionalOutput-Refs

OutputSetOptionalOutputRefDefinedAsDa-taOutput

A.89

EXT.090 OutputSet

whileExecuting-OutputRefs

OutputSetWhileExecutingOutputRefsDe-finedAsDataOutput

A.90

EXT.091 DataAssociation - DataAssociationValidityCheck A.91

EXT.092 DataAssociation sourceRef

DataAssociationExactlyOneSourceRefIfNo-TransformationIsPresent

A.92

EXT.093 Event EventDataInputOutputConstraints A.93

EXT.094 Event

EventDataInputOutputItemDefinitionCon-straints

A.94

EXT.095 ThrowEvent eventDefinitions ThrowEventEventDefinitions A.95

EXT.096 StartEvent incoming StartEventNoIncomingSequenceFlow A.96

EXT.097 StartEvent - StartEventMandatoryWhenEndEventUsed A.97

EXT.098 StartEvent StartEventTopLevelAllowedEventDefinitions A.98

EXT.099 CallActivity calledElement

CallActivityCalledProcessMandatoryNone-StartEvent

A.99

EXT.100 StartEvent

StartEventSubProcessAllowedEventDefini-tions

A.100

EXT.101 StartEvent outgoing StartEventMandatoryOutgoingSequenceFlow A.101

(32)

3.4

Extended Constraints

25

# Element Attribute/Sub

Element

Label Details

EXT.103 StartEvent

messageEvent-Definition

StartEventMessageEventDefinintionFlow-Constraint

A.103

EXT.104 EndEvent outgoing EndEventNoOutgoingSequenceFlow A.104

EXT.105 EndEvent - EndEventMandatoryWhenStartEventUsed A.105

EXT.106 EndEvent

cancelEventDe-finition

EndEventCancelOnlyAllowedInTransaction A.106

EXT.107 EndEvent incoming EndEventMandatoryIncomingSequenceFlow A.107

EXT.108 MessageFlow targetRef MessageFlowEndEventInvalidTarget A.108

EXT.109 EndEvent

messageEvent-Definition

EndEventMessageEventDefinintionFlowCon-straint

A.109

EXT.110 BoundaryEvent cancelActivity

BoundaryEventCancelActivityValueRestric-tions

A.110

EXT.111 BoundaryEvent -

BoundaryEventSubProcessCancelRequires-Transaction

A.111

EXT.112 BoundaryEvent incoming BoundaryEventNoIncomingSequenceFlow A.112

EXT.113 BoundaryEvent outgoing

BoundaryEventMandatoryOutgoingSe-quenceFlow

A.113

EXT.114 BoundaryEvent outgoing

BoundaryEventCompensateNoOutgoingSe-quenceFlow A.114 EXT.115 Intermediate-Event incoming IntermediateEventMandatoryIncomingSe-quenceFlow A.115 EXT.116 Intermediate-Event outgoing IntermediateEventMandatoryOutgoingSe-quenceFlow A.116 EXT.117 Intermediate-Event incoming / out-going LinkIntermediateEventSequenceFlowCon-straint A.117 EXT.118 Intermediate-Event - LinkIntermediateEventSourceTargetMatching A.118 EXT.119 Intermediate-Event - MessageIntermediateEventMessageFlowCon-straint A.119

EXT.120 BoundaryEvent attachedToRef CancelIntermediateEventUsageConstraint A.120

EXT.121 StartEvent CompensateStartEventUsageConstraint A.121

EXT.122 BoundaryEvent attachedToRef

CompensateIntermediateEventCatchUsage-Constraint A.122 EXT.123 conditional-EventDefinition condition ConditionalEventDefinitionFormalCondition-MandatoryForExecutability A.123 EXT.124 LinkEventDefi-nition source LinkEventDefinitionSourceRequiredFor-CatchEvents A.124 EXT.125 LinkEventDefi-nition target LinkEventDefinitionTargetRequiredFor-ThrowEvents A.125 EXT.126 LinkEventDefi-nition

source/target LinkEventDefinitionLinkValidityConstraint A.126

EXT.127 MessageEvent-Definition messageRef MessageEventDefinitionMessageRefMandato-ryForExecutability A.127 EXT.128 MessageEvent-Definition operationRef MessageEventDefinitionOperationRefManda-toryForExecutability A.128

EXT.129 StartEvent -

NoneStartEventNotAllowedForEventSubPro-cesses

A.129

EXT.130 BoundaryEvent - NoneCatchBoundaryEventNotAllowed A.130

EXT.131 TimerEventDe-finition - TimerEventDefinitionOnlyOneAttribute-Allowed A.131 EXT.132 TimerEventDe-finition

References

Related documents