There are two major pitfalls in the development of extensions to the BPMN 2.0 metamodel.
First, there is a lack of methodological guides considering the extensibility approach supported by the extension mechanism of the language.
Second, BPMN does not provide any graphical notation for the representation of extensions.
This work proposes a method based on Model-Driven Architecture for the development of extensions to the BPMN 2.0 metamodel. It enables the conceptual modeling of extensions by using UML, their graphical representation in terms of the BPMN extension mechanism, and their transformation into XML Schema documents that can be processed by BPMN tools. A tool supporting the proposed method is also presented.
1. Centro de Investigación y Desarrollo de Ingeniería en Sistemas de Información Universidad Tecnológica Nacional – Facultad Regional Santa Fe Stroppi, L.J.R., Chiotti, O., Villarreal, P.D.: Extending BPMN 2.0: Method and Tool Support. In: BPMN 2011: Proceedings of the 3rd International Workshop and Practitioner Day on BPMN. (November 2011) Extending BPMN 2.0: Method and Tool Support
After a brief introdution, I will present the proposed method for the development of extensions. Then I will show the tool we have developed to support the method Finally I will present some conclusions we have arrived at.
If we look at the diagram depicting the BPMN extension mechanism, we can see that defining extensions to BPMN is basically a matter of creating ExtensionDefinition elements Containing a set of extension attributes of different types that can be attached to elements In the inheritance hierarchy of BaseElement. We refer to this way of extending metamodels as the approach of extension by addition, Which is different of other extensibility approaches like the Extension by Specialization provided by UML.
If we compare the MOF representation (on the left hand) with the XML Schema representation of the BPMN extension mechanism (on the right hand). We will see that the ExtensionDefinition and the ExtensionAttributeDefinition elements have no counterpart. This is because according to the BPMN specification, when the XML interchange format defined by the XML Schema of BPMN is used, extensions are defined in separate XML Schema Documents which are then imported by de documents describing BPMN models.
If we compare the MOF representation (on the left hand) with the XML Schema representation of the BPMN extension mechanism (on the right hand). We will see that the ExtensionDefinition and the ExtensionAttributeDefinition elements have no counterpart. This is because according to the BPMN specification, when the XML interchange format defined by the XML Schema of BPMN is used, extensions are defined in separate XML Schema Documents which are then imported by de documents describing BPMN models.
In this context, we have identified two major pitfalls in the development of extensions to BPMN. The first is a lack of methodological guides for developing language extensions by applying the extension by addition approach provided by BPMN. The second one is a lack of graphical notations for the representing and visualizing extensions in terms of the elements defined by the BPMN metamodel. This fact requires people defining extensions to deal with low level details of XML Schema.
Therefore the goals of this work are The development of an MDA-based method for the development of extensions Enabling their conceptualization. Their graphical representation in terms of the BPMN extension mechanism. Their transformation into XSD Documents that can be processed by BPMN tools. And The development of a tool supporting that method.
Now, I will present the proposed method for the development of extensions.
The method consists of four steps which starts with the Definition of a Conceptual Domain Model of the Extension by using UML Follows by Deriving a BPMN plus Extensions (BPMN+X) model from the created conceptual model. And ends with the transformation of the BPMN+X model into a model representing the extension in terms of XML Schema and its serialization into an XML Schema document.
At the first step …
We start by creating a UML model of the extension Representing the concepts of the extension without taking into account any restriction imposed by the BPMN extension mechanism. Then, we analyze the concepts of that model looking if they can be mapped with a concept of the BPMN metamodel. If that is the case, the given concept will be preliminarily characterized as a BPMN concept, In other case, the concept will be assumed as defined in the context of the represented domain. The result of this step will be the concepts defined as part of the modeled domain and their relationships with the BPMN concepts.
In this slide we can see three possible results of this step for an extension defined in order to specify additional details with regard to the way in which the work associated with an UserTask has to be distributed to the resources participating in a process. In this case, the BPMN Concepts are colored in gray while the Extension concepts are shown in white. We will see in the next steps how a valid BPMN extension can be derived from any of these alternative conceptual models of the extension.
The second step consists of deriving a BPMN plus Extensions model from the conceptual domain model of the extension.
BPMN+X is a UML Profile developed to enable the specification and visualization of BPMN extensions. It is based on the BPMN extension mechanism. It consists of the following stereotypes ExtensionModel is the topmost container of the elements defining a BPMN extension. BPMNElement and BPMNEnum enables representing the elements and enumerations of the BPMN metamodel. ExtensionDefinition which allows grouping a set of extension attributes under a concept name. ExtensionAttributeDefinition that allows representing each of the new attributes to be attached to the BPMN elements. ExtensionElement and ExtensionEnum enables representing the new kinds of elements and enumerations belonging to the domain of the extension.
The procedure to derive a BPPMN+X model from a conceptual model of an extension has two stages. First, create an extension model and populate it with the BPMN+X elements which cha be directly mapped to the characterized concepts of the conceptual model of the extension.
In this slide we can see the BPMN+X model resulting of the described procedure.
In the second stage, a set of rules based on an analysis of the properties and generalization relationships of the CDME concepts Are applied to decide how they have to be represented in the BPMN+X model and to decide whether the Extension concepts of the CDME have to be represented as an ExtensionDefinition or as an ExtensionElement within the BPMN+X model. The table shows the structure of the rules for representing properties.
This table shows the structure of the rules for representing generalization relationships.
In this slide, we can see how the elements of the resulting BPMN+X model can derived from the different conceptual domain models of an extension by applying different sets of rules.
The third step consists of transforming the BPMN+X model in another model representing the extension in terms of the elements defined by XML Schema.
In this step An ExtensionModel element is transformed into a Schema element. An ExtensionDefinitionModel is transormed into a ModelGroupDefinitionElement. ExtensionElements are translated into ComplexTypeDefinition elements And ExtensionEnums are translated into SimpleTypeDefinition elements.
This slide shows the result of the described transformation. Notice that BPMNElements and BPMNEnums are not represented in the resulting model as the XML schema of BPMN is will be imported in the resulting document enabling the reutilization of its elements.
In the last step, the model resulting of the third step is serialized as an XML Schema document defining the created extension.
This is done by a straightforward model-to-code transformation. The structure of the resulting documents will be the following The document defining the extension (on the right) imports the XML schema document of BPMN. AND XML documents defining BPMN models will be an instance of the BPMN XML Schema and will import the document defining extensions.
Here we can see an example of XML Schema document defining a BPMN extension.
And this is an Example of an BPMN model definition applying the developed extension.
With regards to the tool support …
A tool based on the eclipse platform was developed. The conceptual domain models of the extension can be defined by means of the UML Tools plugin. The BPMN+x models can be developed by using a plugin implementing the developed profile. The model to model transformation of the third step was implemented by means of a QVT transformation. And the model to code transformation of the last step was implemented as a JET transformation.
This work proposed an MDA-based method for the development of BPMN 2.0 extensions It encourages starting from an UML CDME. It defines a procedure for creating a BPMN+X model from a CDME by applying the developed rules. The remaining steps can be done automatically with the aid of the provided tool.
This work also proposed the BPMN+X profile It enables defining BPMN extensions graphically. It is better suited than XML Schema to be used by people.