Conformance Checking: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
1. Conformance is tested for a specific event log object separately starting from each start event in the BPMN model.
Conformance is tested for a specific EventLog separately starting from each start event in the BPMN model. If conformance check succeeds from any start event, the conformance check succeeds. A sequence of event type names is extracted from the object to be checked (i.e., Case or Variation).
1.1. If conformance check succeeds from any start event, the conformance check succeeds.
2. A sequence of event type names is extracted from the object to be checked (I.e., Case or Variation).
3. If IgnoreEventTypesMissingInModel (#34204#) is false and the sequence of event type names contains event type names that don't have similarly named tasks in the conformance model, the path does not conform with the model.
3.1. InvalidEventType (#34211#) will be added as nonconformance reason.
4. A new empty conformance model run-time state is initialized with the start event.
5. This sequence is then traversed one event type name at a time as follows:
5.1. If event type does not exist in the model and IgnoreEventTypesMissingInModel (#34204#) -property is set to be true, move to the next event type name and go to 5.1.
5.2. Based on the run-time state, find next BPMN task whose name matches with the event type name.
5.2.1. If such a task is found, update the run-time state to according to the path required to be traversed in order to reach the found task.
5.2.2. If such a task is not found, the tested event log object does not conform with the model.
5.2.2.1. InvalidStateChange (#34212#) will be added as nonconformance reason.
6. After the iteration, if IgnoreIncompleteCases (#34205#) is false and the current run-time state is such that end event is not reachable without traversing through any additional tasks, the tested event log object does not conform with the model.
6.1. NotCompleted (#34213#) will be added as nonconformance reason.


If ''IgnoreEventTypesMissingInModel'' is ''false'' and there are EventTypes in the Case that don't exist in the conformance model (comparing using EventType names), the path does not conform with the model. Then the ''InvalidEventType'' will be added as nonconformance reason.
A new empty conformance model run-time state is initialized with the start event. This sequence is then traversed one event type name at a time as follows:
* If event type does not exist in the model and IgnoreEventTypesMissingInModel property is set to be true, move to the next event type name and go to 5.1.
5.2. Based on the run-time state, find next BPMN task whose name matches with the event type name. If such a task is found, update the run-time state to according to the path required to be traversed in order to reach the found task. If such a task is not found, the tested event log object does not conform with the model. ''InvalidStateChange'' will be added as nonconformance reason.
After the iteration, if ''IgnoreIncompleteCases'' is false and the current run-time state is such that end event is not reachable without traversing through any additional tasks, the tested event log object does not conform with the model. ''NotCompleted'' will be added as nonconformance reason.


The conformity of any given case or variation can be checked against a conformance model specified in BPMN notation. Conformance checking functions support the parameters listed in child requirements of this requirement.
The conformity of any given case or variation can be checked against a conformance model specified in BPMN notation. Conformance checking functions support the parameters listed in child requirements of this requirement.
Line 19: Line 13:
* '''IgnoreEventTypesMissingInModel''': Boolean parameter used to configure whether the check should ignore any event types that are present in the variation but not in the model. Default value is ''true'' (unknown event types are filtered automatically before performing conformance check)  
* '''IgnoreEventTypesMissingInModel''': Boolean parameter used to configure whether the check should ignore any event types that are present in the variation but not in the model. Default value is ''true'' (unknown event types are filtered automatically before performing conformance check)  
* '''IgnoreIncompleteCases''': Boolean parameter used to configure whether the check should count unfinished variations as conformance violations. Default value is false (incomplete variation is counted as nonconformant).
* '''IgnoreIncompleteCases''': Boolean parameter used to configure whether the check should count unfinished variations as conformance violations. Default value is false (incomplete variation is counted as nonconformant).
=== Con-conformance reasons ===
* '''InvalidEventType''': InvalidEventType (=1) nonconformance occurs when the tested event type name sequence has event type names that do not exist as similarly named tasks in the BPMN conformance model. This nonconformance reason can be ignored using IgnoreEventTypesMissingInModel parameter. As additional information for this type of nonconformance, an array having the following elements will be added after the reason identifier: An array of all the invalid event type names not found in the model that exist in the object being checked.
* '''InvalidEventType''': InvalidEventType (=1) nonconformance occurs when the tested event type name sequence has event type names that do not exist as similarly named tasks in the BPMN conformance model. This nonconformance reason can be ignored using IgnoreEventTypesMissingInModel parameter. As additional information for this type of nonconformance, an array having the following elements will be added after the reason identifier: An array of all the invalid event type names not found in the model that exist in the object being checked.
 
* '''InvalidStateChange''': InvalidStateChange (=3) nonconformance occurs when the tested event type name sequence is not possible according to the BPMN conformance model due to missing connections between successive tasks. As additional information for this type of nonconformance, an array having the following elements will be added after the reason identifier:
Con-conformance reasons
** Index of the first event type name that was not possible to reach in the BPMN conformance model.
* '''InvalidStateChange''': InvalidStateChange (=3) nonconformance occurs when the tested event type name sequence is not possible according to the BPMN conformance model due to missing connections between successive tasks.
** Name of the previous event type or null if this was the first event type name in the sequence.
2. As additional information for this type of nonconformance, an array having the following elements will be added after the reason identifier:
** Name of the failed event type.
2.1. Index of the first event type name that was not possible to reach in the BPMN conformance model.
* '''NotCompleted''': NotCompleted (=2) nonconformance occurs when the model, after replaying the whole event type name sequence extracted from the object being checked, did not end up into a valid end state of the BPMN conformance model. This nonconformance reason can be ignored using IgnoreIncompleteCases parameter. In this case, there is no additional information.
2.2. Name of the previous event type or null if this was the first event type name in the sequence.
2.3. Name of the failed event type.
 
* '''NotCompleted''': NotCompleted (=2) nonconformance occurs when the model, after replaying the whole event type name sequence extracted from the object being checked, did not end up into a valid end state of the BPMN conformance model. This nonconformance reason can be ignored using IgnoreIncompleteCases (#34205#) parameter. In this case, there is no additional information.
 


=== Supported BPMN Elements and Attributes ===
=== Supported BPMN Elements and Attributes ===

Revision as of 08:43, 29 March 2018

Conformance is tested for a specific EventLog separately starting from each start event in the BPMN model. If conformance check succeeds from any start event, the conformance check succeeds. A sequence of event type names is extracted from the object to be checked (i.e., Case or Variation).

If IgnoreEventTypesMissingInModel is false and there are EventTypes in the Case that don't exist in the conformance model (comparing using EventType names), the path does not conform with the model. Then the InvalidEventType will be added as nonconformance reason.

A new empty conformance model run-time state is initialized with the start event. This sequence is then traversed one event type name at a time as follows:

  • If event type does not exist in the model and IgnoreEventTypesMissingInModel property is set to be true, move to the next event type name and go to 5.1.

5.2. Based on the run-time state, find next BPMN task whose name matches with the event type name. If such a task is found, update the run-time state to according to the path required to be traversed in order to reach the found task. If such a task is not found, the tested event log object does not conform with the model. InvalidStateChange will be added as nonconformance reason.

After the iteration, if IgnoreIncompleteCases is false and the current run-time state is such that end event is not reachable without traversing through any additional tasks, the tested event log object does not conform with the model. NotCompleted will be added as nonconformance reason.

The conformity of any given case or variation can be checked against a conformance model specified in BPMN notation. Conformance checking functions support the parameters listed in child requirements of this requirement.

  • IgnoreEventTypesMissingInModel: Boolean parameter used to configure whether the check should ignore any event types that are present in the variation but not in the model. Default value is true (unknown event types are filtered automatically before performing conformance check)
  • IgnoreIncompleteCases: Boolean parameter used to configure whether the check should count unfinished variations as conformance violations. Default value is false (incomplete variation is counted as nonconformant).

Con-conformance reasons

  • InvalidEventType: InvalidEventType (=1) nonconformance occurs when the tested event type name sequence has event type names that do not exist as similarly named tasks in the BPMN conformance model. This nonconformance reason can be ignored using IgnoreEventTypesMissingInModel parameter. As additional information for this type of nonconformance, an array having the following elements will be added after the reason identifier: An array of all the invalid event type names not found in the model that exist in the object being checked.
  • InvalidStateChange: InvalidStateChange (=3) nonconformance occurs when the tested event type name sequence is not possible according to the BPMN conformance model due to missing connections between successive tasks. As additional information for this type of nonconformance, an array having the following elements will be added after the reason identifier:
    • Index of the first event type name that was not possible to reach in the BPMN conformance model.
    • Name of the previous event type or null if this was the first event type name in the sequence.
    • Name of the failed event type.
  • NotCompleted: NotCompleted (=2) nonconformance occurs when the model, after replaying the whole event type name sequence extracted from the object being checked, did not end up into a valid end state of the BPMN conformance model. This nonconformance reason can be ignored using IgnoreIncompleteCases parameter. In this case, there is no additional information.

Supported BPMN Elements and Attributes

  • Flows:
    • Supported attributes: id, sourceRef, targetRef
    • sequenceFlow
  • Events:
    • Supported attributes: id
    • startEvent
    • endEvent
  • Tasks:
    • Supported attributes: id, name
    • Supported sub-entities: standardLoopCharacteristics, multiInstanceLoopCharacteristics (with and without isSequential attribute)
    • sendTask
    • receiveTask
    • userTask
    • manualTask
    • businessRuleTask
    • serviceTask
    • scriptTask
  • Gateways:
    • Supported attributes: id
    • parallelGateway
    • exclusiveGateway
    • inclusiveGateway

Conformance related objects

ConformanceModel

ConformanceModel properties Description
Id (Integer) Returns an unique id for the conformance model. New random id is always assigned to the conformance model object when creating a new conformance model object.
EndEvents (ConformanceModelEvent*) Returns an array of all the top-level end event objects (##) in the model.
Flows Returns an array of all the top-level flow objects (##) in the model.
Nodes Returns an array of all the top-level nodes in the model.
StartEvents (ConformanceModelEvent*) Returns an array of all the top-level start events in the model.

ConformanceModelFlow

ConformanceModelFlow properties Description
Id (Integer) Id of the flow.

ConformanceModelNode

This object type is an abstract type defining common properties and functions available for all its sub-types.

ConformanceModelFlow properties Description
Id (Integer) Id of the node.
IncomingFlows Array of incoming flows (flows whose To -property equals this node).
Name (String) Name of the node.
OutgoingFlows Array of outgoing flows (flows whose From -property equals this object).
Type 1. Type of the node. Supported values are:

1.1. Event 1.2. Task 1.3. Gateway

ConformanceModelEvent

ConformanceModelEvent objects inherit all the properties from ConformanceModelNode -object (#34175#). 2. In addition to these inherited properties and functions, the child requirements of this requirement describe properties and functions available for this object type only.

ConformanceModelEvent properties Description
EventType Type of the event. Allowed values are Start and End

ConformanceModelGateway

ConformanceModelGateway objects inherit all the properties from ConformanceModelNode. In addition to these inherited properties and functions, the child requirements of this requirement describe properties and functions available for this object type only.

ConformanceModelGateway properties Description
GatewayType 1. Type of the gateway. Allowed values are Parallel, Exclusive and Inclusive.
BranchType Branching type of gateway. Allowed values are Fork and Join.

ConformanceModelTask

ConformanceModelTask objects inherit all the properties from ConformanceModelNode. In addition to these inherited properties and functions, the child requirements of this requirement describe properties and functions available for this object type only.

ConformanceModelTask properties Description
LoopType Type of looping allowed for the task. Supported values are: null (=no loop), StandardLoopCharacteristics, MultiInstanceLoopCharacteristics and MultiInstanceSequentialLoopCharacteristics.
TaskType Type of the task. Allowed values are Task, Send, Receive, User, Manual, BusinessRule, Service and Script.

Conformance analysis related functions