BPMN Integrity Extension

This add-in to Enterprise Architect (version 16.x or later) provides a comprehensive rule-based verification of the quality and coherence of BPMN 2.0 business process models. The default rule set can be customized by the end User.

As an added bonus, the extension supports the automatic numbering of process steps, including any sub-processes. Conversely the numbers can also be removed from the steps.

Verification Rules

  • Start Event related rules verify that:
    • Events of type other than None are labeled.
    • A Message Event is labeled with "Receive [message name]" and has the "messageRef" property defined.
    • A Message Event has an incoming Message Flow.
    • In a Sub-Process, only one Event of type None is present.
    • An Event of type Error in an Event Sub-Process has a corresponding Error End Event defined.
    • An Event of type Cancel in an Event Sub-Process has a corresponding Cancel End Event defined.
    • An Event of type Escalation in an Event Sub-Process has a corresponding Escalation throw Event defined.
    • A Signal Event has the "signalRef" property defined.
    • A Conditional Event has the "condition" property defined.
    • An Error Event has the "errorRef" property defined.
    • An Escalation Event has the "escalationRef" property defined.
  • Intermediate Event related rules verify that:
    • The Event is labeled.
    • A Link throw Event has a corresponding Link catch Event, and vice-versa.
    • A Message Event has an incoming (if catch) or outgoing (if throw) Message Flow defined.
    • An Error Event on the boundary of a Sub-Process has a corresponding Error End Event defined.
    • An Escalation Event on the boundary of a Sub-Process has a corresponding throw Escalation Event defined.
    • A Cancel Event on the boundary of a Sub-Process has a corresponding Cancel End Event defined.
    • A throw Escalation Event has a corresponding catch handler defined.
    • A Signal Event has the "signalRef" property defined.
    • A Message Event has the "messageRef" property defined.
    • An Error Event has the "errorRef" property defined.
    • An Escalation Event has the "escalationRef" property defined.
    • A Conditional Event has the "condition" property defined.
  • End Event related rules verify that:
    • A Message Event has an outgoing Message Flow defined.
    • Two Events in the same scope do not have the same name/label.
    • If more than one Event is present in the same scope, each one is labeled.
    • A Signal Event has the "signalRef" property defined.
    • A Message Event has the "messageRef" property defined.
    • An Error Event has the "errorRef" property defined.
    • An Escalation Event has the "escalationRef" property defined.
    • An Event of type Error, Cancel, or Escalation has a corresponding catch handler defined.
  • Activity related rules verify that:
    • The Activity is labeled.
    • A Send Task has an outgoing Message Flow and has the "messageRef" property defined.
    • A Receive Task has an incoming Message Flow and has the "messageRef" property defined.
    • The Activity has at least one incoming and one outgoing Sequence Flow (if not part of an ad-hoc Sub-Process).
    • Two Activities in the same scope do not have the same name.
    • Not more than 20 Activities are defined with the same diagram.
  • Sub-Process related rules verify that:
    • The name of the Sub-Process diagram matches the name of the Sub-Process.
    • If followed by an Exclusive Gateway, the label of each outgoing non-default Sequence Flow matches the name of an End Event in the Sub-Process, and no additional End Events are defined.
    • The Sub-Process is modeled in a collapsed (i.e. with child diagram) rather than an expanded way.
    • Incoming and/or outgoing Message Flows of the Sub-Process itself are replicated in its child diagram.
    • All incoming or outgoing Message Flows modeled in a Sub-Process diagram are replicated in its parent diagram (i.e. connected to the Sub-Process itself).
    • The "activityType" property is set to "Sub-Process", and the "taskType" property is set to "Abstract".
  • Pool/Lane related rules verify that:
    • A Pool is the child of a Collaboration Model element.
    • A Lane is either named or has the "partitionElementRef" property defined.
  • Exclusive/Inclusive Gateway related rules verify that:
    • At most one outgoing default path is defined with its "conditionType" property set to "Default".
    • If a default (unlabeled) outgoing path is defined, the Gateway itself is labeled.
    • Each non-default outgoing Sequence Flow has the "conditionExpression" property defined and the "conditionType" property set to "Expression".
  • Message/Sequence Flow related rules verify that:
    • A Message Flow is labeled with the name of the Message it is carrying.
    • A Message Flow has the "messageRef" property defined.

Whenever possible, the extension will attempt to automatically fix rule violations (this option can be disabled).

The verification can be performed in the context of a diagram, for a complete business process, or for selected elements in the diagram. Individual rules can be disabled. Rule violations are reported in a dedicated tab of the System Output window, with active hyperlinks to the offending element, connector or diagram.

For further details of how the extension operates, please see the End User Documentation.

To integrate your own custom rules into the extension, please contact us!

Related Extensions

Software Architecture (UML) Validation

A FREE BPMN2.0 syntax validator

Pricing

QuantityFixed license
1-4USD 70.00
5-19USD 55.00
20+USD 45.00
Download the trial version to test out the extension, or place your order now.

Trial Request

Simply fill out the form below and we will email you the password providing access to the download page of the trial version. Also make sure that the End User License Agreement is in accord with your company's legal standards!
 
Please view our Privacy Policy page if you have concerns about filling out this form!
 

    Note: an error message in an orange box indicates Google flagged your request as spam...