Соответствие Требованиям моделирования Процесса (Process Modeling Conformance) включает элементы, входящие в состав диаграмм Взаимодействия и Процесса, а именно: Задачи всех типов, встроенные Подпроцессы, Действия типа Вызов, Шлюзы всех типов, События всех типов (Стартовые, Промежуточные, Конечные), Дорожки, Участников, Объекты данных (также Входные и Выходные данные), Сообщения, Группы, Текстовые аннотации, Потоки операций (также условные Потоки операций и Потоки операций по умолчанию), Потоки сообщений, Обмен сообщениями (ограниченный до группировки Потоков сообщений, ассоциативных корреляций), Корреляцию, Ассоциацию (также Ассоциацию компенсации). В этот набор также входят маркеры (маркеры Цикла, Многоэкземплярные, Транзакции, Компенсации), используемые для дифферинцировки Задач и встроенных Подпроцессов.
Примечание: Такие элементы моделирования Хореографии, как Задача Хореографии и Подхореография, в этот перечень не входят.
Для того, чтобы инструмент моделирования мог декларировать поддержку подкласса, он ДОЛЖЕН подходить под следующие критерии:
- В нем ДОЛЖНЫ поддерживаться все элементы подкласса.
- В нем ДОЛЖНЫ поддерживаться все перечисленные атрибуты каждого из элементов подкласса.
- В целом, если атрибут не упоминается в подклассе и НЕ является ОБЯЗАТЕЛЬНЫМ для отображения в схеме, то он не входит в данный подкласс. Исключения для этого правила описаны в примечании.
Подкласс соответствия для Описания
Таблица 2.1 содержит информацию о Подклассе соответствия для Описания.
Таблица 2.1 – Элементы и Атрибуты Подкласса Соответствия для Описания
Элемент |
Атрибуты |
participant (pool) |
id, name, processRef |
laneSet |
id, lane with name, childLaneSet, flowElementRef |
sequenceFlow (unconditional) |
id, name, sourceRef, targetRef |
messageFlow |
id, name, sourceRef, targetRef |
exclusiveGateway |
id, name |
parallelGateway |
id, name |
task (None) |
id, name |
userTask |
id, name |
serviceTask |
id, name |
subProcess (expanded) |
id, name, flowElement |
subProcess (collapsed) |
id, name, flowElement |
CallActivity |
id, name, calledElement |
DataObject |
id, name |
TextAnnotation |
id, text |
association/dataAssociationa |
id, name, sourceRef, targetRef, associationDirectionb |
dataStoreReference |
id, name, dataStoreRef |
startEvent (None) |
id, name |
endEvent (None) |
id, name |
messageStartEvent |
id, name, messageEventDefinition |
messageEndEvent |
id, name, messageEventDefinition |
timerStartEvent |
id, name, timerEventDefinition |
terminateEndEvent |
id, name, terminateEventDefinition |
documentationc |
text |
Group |
id, categoryRef |
- Ассоциация данных является АБСТРАКТНОЙ, т.е. Ассоциация с Входными и Выходными данными появляется в сериализации XML. У этих типов Ассоциаций есть ОБЯЗАТЕЛЬНЫЕ атрибуты [sourceRef и targetRef], относящиеся к элементам itemAwareElements. Для согласования с метамоделью возникает необходимость в дополнительных элементах: ioSpecification, inputSet, outputSet, Data Input, Data Output. Когда в редакторе BPMN отображается Ассоциация данных, относящаяся к Действию или Событию, должна сформироваться невидимая подконструкция. Другими словами, было бы необходимо изменять метамодель для того, чтобы сделать атрибуты sourceRef и targetRef опциональными или допустить использование ссылки на элемент, не относящийся к itemAwareElements (например, Действие или Событие).
- Атрибут associationDirection, не указанный для Ассоциации данных.
- Documentation не отображается. Он является атрибутом практически всех элементов.
Аналитический подкласс соответствия
Аналитический подкласс соответствия включает в себя все элементы Подкласса соответствия для Описания, а также элементы, приведенные в таблице 2.2.
Таблица 2.2 – Элементы и Атрибуты Аналитического Подкласса Соответствия
Элемент |
Атрибуты |
sequenceFlow (conditional) |
id, name, sourceRef, targetRef, conditionExpressiona |
sequenceFlow (default) |
id, name, sourceRef, targetRef, defaultb |
sendTask |
id, name |
receiveTask |
id, name |
Looping Activity |
standardLoopCharacteristics |
MultiInstance Activity |
multiInstanceLoopCharacteristics |
exclusiveGateway |
Add default attribute |
inclusiveGateway |
id, name, eventGatewayType |
eventBasedGateway |
id, name, eventGatewayType |
Link catch/throw Intermediate Event |
Id, name, linkEventDefinition |
signalStartEvent |
id, name, signalEventDefinition |
signalEndEvent |
id, name, signalEventDefinition |
Catching message Intermediate Event |
id, name, messageEventDefinition |
Throwing message Intermediate Event |
id, name, messageEventDefinition |
Boundary message Intermediate Event |
id, name, attachedToRef, messageEventDefinition |
Non-interrupting Boundary message Intermediate Event |
id, name, attachedToRef, cancelActivity=false, messageEventDefinition |
Catching timer Intermediate Event |
id, name, timerEventDefinition |
Boundary timer Intermediate Event |
id, name, attachedToRef, timerEventDefinition |
Non-interrupting Boundary timer Intermediate Event |
id, name, attachedToRef, cancelActivity=false, timerEventDefinition |
Boundary error Intermediate Event |
id, name, attachedToRef, errorEventDefinition |
errorEndEvent |
id, name, errorEventDefinition |
Non-interrupting Boundary escalation Intermediate Event |
id, name, attachedToRef, cancelActivity=false, escalationEventDefinition |
Throwing escalation Intermediate Event |
id, name, escalationEventDefinition |
escalationEndEvent |
id, name, escalationEventDefinition |
Catching signal Intermediate Event |
id, name, signalEventDefinition |
Throwing signal Intermediate Event |
id, name, signalEventDefinition |
Boundary signal Intermediate Event |
id, name, attachedToRef, signalEventDefinition |
Non-interrupting Boundary signal Intermediate Event |
id, name, attachedToRef, cancelActivity=false, signalEventDefinition |
conditionalStartEvent |
id, name, conditionalEventDefinition |
Catching conditional Intermediate Event |
id, name, conditionalEventDefinition |
Boundary conditional Intermediate Event |
id, name, conditionalEventDefinition |
Non-interrupting Boundary conditional Intermediate Event |
id, name, cancelActivity=false, conditionalEventDefinition |
messagec |
id, name, add messageRef attribute to messageFlow |
- Значение ConditionExpression, используемого только для Потока операций, исходящего из Шлюза, МОЖЕТ БЫТЬ равно нулю.
- Атрибут Default является атрибутом sourceRef Шлюза (эксклюзивного или неэксклюзивного).
- Обратите внимание, что атрибут messageRef, являющийся атрибутом различных Событий типа Сообщение, является опциональным и не входит в данный подкласс.
Подкласс Соответствия Общему выполнению
Данный подкласс соответствия предназначен для инструментов моделирования, выпускающих выполняемые модели.
- Языком определения типа данных ДОЛЖЕН БЫТЬ XML Schema.
- Языком определения интерфейсов Web-сервисов ДОЛЖЕН БЫТЬ WSDL.
- Языком доступа к данным ДОЛЖЕН БЫТЬ XPath.
Элементы подкласса соответствия Общему выполнения приведены в таблице 2.3, а сопутствующие классы отображены в таблице 2.4.
Таблица 2.3 – Элементы и Атрибуты Подкласса Соответствия Общему Выполнению
Элемент |
Атрибуты |
sequenceFlow (unconditional) |
id, (name), sourceRefa, targetRefb |
sequenceFlow (conditional) |
id, name, sourceRef, targetRef, conditionExpressionc |
sequenceFlow (default) |
id, name, sourceRef, targetRef, defaultd |
subProcess (expanded) |
id, name, flowElement, loopCharacteristics, boundaryEventRefs |
exclusiveGateway |
id, name, gatewayDirection (только сходящийся и расходящийся), default |
parallelGateway |
id, name, gatewayDirection (только сходящийся и расходящийся) |
startEvent (None) |
id, name |
endEvent (None) |
id, name |
eventBasedGateway |
id, name, gatewayDirection, eventGatewayType |
userTask |
id, name, renderings, implementation, resources, ioSpecification, dataInputAssociations, dataOutputAssociations, loopCharacteristics, boundaryEventRefs |
sig serviceTask |
id, name, implementation, operationRef, ioSpecification, dataInputAssociations, dataOutputAssociations, loopCharacteristics, boundaryEventRefs |
callActivity |
id, name, calledElement, ioSpecification, dataInputAssociations, dataOutputAssociations, loopCharacteristics, boundaryEventRefs |
dataObject |
id, name, isCollection, itemSubjectRef |
textAnnotation |
id, text |
dataAssociation |
id, name, sourceRef, targetRef, assignment |
messageStartEvent |
id, name, messageEventDefinition (either ref or contained), dataOutput, dataOutputAssociations |
messageEndEvent |
id, name, messageEventDefinition, (либо ссылка, либо наличие), dataInput, dataInputAssociations |
terminateEndEvent |
(Триггер завершения в комбинации с одним из конечных событий) |
Catching message Intermediate Event |
id, name, messageEventDefinition (либо ссылка, либо наличие), dataOutput, dataOutputAssociations |
Throwing message Intermediate Event |
id, name, messageEventDefinition (либо ссылка, либо наличие), dataInput, dataInputAssociations |
Catching timer Intermediate Event |
id, name, timerEventDefinition (наличие) |
dary error Intermediate Event |
id, name, attachedToRef, errorEventDefinition, (ссылка или наличие), dataOutput, dataOutputAssociations |
- Множественные исходящие соединения допускаются только для Шлюзов, в которых маршруты сходятся.
- Множественные исходящие соединения допускаются только для Шлюзов, в которых маршруты расходятся.
- Значение ConditionExpression, используемого только в направленных от Шлюзов Потоках операций, МОЖЕТ БЫТЬ равно нулю.
- Атрибут Default является атрибутом sourceRef Шлюза (эксклюзивного или неэксклюзивного).
Таблица 2.4 – Сопутствующие Классы Подкласса Соответствия Общему Выполнению
Элемент |
Атрибуты |
StandardLoopCharacteristics |
id, loopCondition |
MultiInstanceLoopCharacteristics |
id, isSequential, loopDataInput, inputDataItem |
Rendering |
|
Resource |
id, name |
ResourceRole |
id, resourceRef, resourceAssignmentExpression |
InputOutputSpecification |
id, dataInputs, dataOutputs |
DataInput |
id, name, isCollection, itemSubjectRef |
DataOutput |
id, name, isCollection, itemSubjectRef |
ItemDefinition |
id, structure or importa |
Operation |
id, name, inMessageRef, outMessageRef, errorRefs |
Message |
id, name, structureRef |
Error |
id, structureRef |
Assignment |
id, from, tob |
MessageEventDefinition |
id, messageRef, operationRef |
TerminateEventDefinition |
id |
TimerEventDefinition |
id, timeDate |
- Структуру ДОЛЖЕН определять составной тип XSD (XSD Complex Type).
- Структуру ДОЛЖЕН определять составной тип XSD (XSD Complex Type).