Skip to main content

IBM Pattern-based Process Model Accelerators for WebSphere Business Modeler, Part 3: Changing process models with ready-to-use transformations

Thomas Gschwind (thg@zurich.ibm.com), Research Staff, Zurich Research Laboratory, IBM
Thomas Gschwind photo
Thomas Gschwind is a research staff member at the IBM Zurich Research Laboratory and a lecturer at the university of Zurich. His research interests are business process modeling and software engineering. Thomas has developed the software technology foundations underlying the patterns, and led the conceptual design and implementation of the refactoring and transformation operations. You can reach Thomas at thg@zurich.ibm.com.
Jana Koehler (koe@zurich.ibm.com), Research Staff Manager, Zurich Research Laboratory, IBM
Author photo: Jana
Jana Koehler is a Research Staff Member and manager at the IBM Zurich Research Laboratory. She works on technologies for business process management and distributed systems, and leads the Business Integration Technologies team at the lab. Jana has contributed to the conceptual design of the patterns, refactoring, and transformation operations, and has authored the technical documentation. You can reach Jana at koe@zurich.ibm.com.
Janette Wong (janette@ca.ibm.com), Senior Technical Staff Member, IBM
Janette Wong
Janette Wong is a Senior Technical Staff Member at IBM. She leads patterns work in the BPM area. Currently she focuses on process patterns and collaborates with other subject matter experts in patterns areas such as connectivity and integration.
Cedric Favre (ced@zurich.ibm.com), PhD Student, Zurich Research Laboratory, IBM
Cedric Favre's photo
Cedric Favre is a graduate of the Ecole Polytechnique Fédérale de Lausanne, Switzerland, and a PhD student at the IBM Zurich Research Lab. He designed and implemented the Control-Flow Analysis as part of his Master's thesis during an internship at the IBM Zurich Research Lab. You can reach Cedric at ced@zurich.ibm.com.
Wolfgang Kleinoeder (wbk@zurich.ibm.com), Research Emeritus, Zurich Research Laboratory, IBM
Wolfgang Kleinoeder photo
Wolfgang Kleinoeder is an IBM Research emeritus at the IBM Zurich Research Laboratory working on implementing and testing the Pattern-based Process Model Accelerators. You can reach Wolfgang at wbk@zurich.ibm.com.
Alexander Maystrenko (oma@zurich.ibm.com), PhD Student, Zurich Research Laboratory, IBM
Alexander Maystrenko photo
Alexander Maystrenko is a graduate of the Kiev Polytechnic Institute, Ukraine, and PhD student working at the IBM Zurich Research Laboratory. He helped implement the refactoring and transformation operations during an internship at the IBM Zurich Research Laboratory. You can reach Alexander at oma@zurich.ibm.com.
Krenar Muhidini (oma@zurich.ibm.com), Former intern, IBM
Krenar Muhidini's photo
Krenar Muhidini is a student at Jacobs University Bremen and was a summer intern in the IBM Zurich Research Laboratory helping to implement the Pattern-based Process Model Accelerators.

Summary:  This series walks you through the IBM® Pattern-based Process Model Accelerators V2.0 for WebSphere® Business Modeler, a set of plug-ins for IBM WebSphere Business Modeler that add patterns, transformations, and refactorings to your business process modeling environment. In Part 3, you'll learn about transformations that apply a complex change to a process model in a single click.

View more content in this series

Date:  07 Oct 2009
Level:  Intermediate PDF:  A4 and Letter (1330KB | 37 pages)Get Adobe® Reader®
Activity:  1559 views

Introduction

This is Part 3 of a four-part series introducing IBM Pattern-based Process Model Accelerators V2.0 for WebSphere Business Modeler (hereafter referred to as the accelerators). These accelerators provide a set of plug-ins for IBM WebSphere Business Modeler (Modeler) that add patterns, transformations and refactorings to your business process modeling environment. The plug-ins also include a feature to automatically detect and correct control-flow errors

By using the accelerators you move away from a traditional business process modeling approach where process models are drawn by dragging and dropping elements on the drawing canvas that are then manually connected. The accelerators enable you to create business process models of higher quality by composing them from larger building blocks or by applying semantically correct change operations to your entire model with a single click. Your models will contain significantly less modeling errors, modeling becomes a much more fun exercise and you will experience productivity gains of about 70% compared to the traditional approach.

In this Part 3, we'll discuss the transformations provided in this release of the accelerators. A transformation is a complex change to a business process model that you can apply with a single click. You can think of it as a macro-editing operation that contains a sequence of several editing steps that add, delete, or modify elements in your process model.

The following transformations are available in this release of the accelerators:

  • Duplicate Element Duplicate Element
  • Merge                     Elements Merge Elements
  • Replace Global Process Replace Global Process
  • Remove                     Region Remove Region
  • Associate Data Associate Data
  • Autolink Elements Autolink Elements
  • Toggle Gateways Toggle Gateways
  • Reorder Sequence Reorder Sequence
  • Convert to Alternative Compound Convert to Alternative Compound
  • Convert to Sequence Convert to Sequence

Prerequisites

It is assumed that you have completed Part 1 of this series, which means that you have done the following:

  • Installed WebSphere Business Modeler V6.2.0.1 with Fixpack 1
  • Installed the accelerators and worked through the example modeling project HiringExample.mar

We also assume that you have basic familiarity with using Modeler to create business process models. You should also be familiar with the basic model elements such as gateways, tasks, subprocesses, and start and terminate events from the Business Process Modeling Notation (BPMN) available in WebSphere Business Modeler. For more information, refer to the Modeler Information Center.

View the video for the tutorial in Part 1.
Download the accelerators.

Part 1 of this series gave you detailed information on downloading the accelerators and how to install them as well as how to validate your installation. Part 1 also introduced you to five of the available transformations: Autolink Elements, Convert to Alternative Compound, Merge Elements, Associate Data, and Toggle Gateways. In addition, it introduced you to the Control-Flow Analysis that allows you to easily locate modeling errors in your process model. Part 2 described the available process patterns and explained how to configure the Accelerators palette.


General hints on how to use the transformations

In this article, we describe in detail all available transformations. Following Fowler and the common guidelines for the description of patterns, we describe a transformation (and, in Part 4, a refactoring) using the following information:

  • Transformation Name: A descriptive name that helps to identify and refer to the transformation.
  • Intent: A description of the goal behind the transformation.
  • Motivation: Reasons for using the transformation and circumstances under which it is not applicable.
  • Mechanics: A concise step-by-step description of how to apply the transformation. As our transformations encode a complex editing operation in a single click, we focus on describing the preconditions, i.e., how to correctly select the model elements to which the transformation is applicable, and the effects, i.e., the change that happens to your model.
  • Samples: One or more examples showing how the transformation works.
  • Related transformations: If applicable, we point you to selected patterns, transformations, and refactorings in this release of the accelerators that are especially useful when being combined with the described transformation.

A transformation is usually applied to a selected set of model elements, which can be connections, activities, gateways, and events. When you have nothing selected, a transformation is either applied to your whole model or is not applied at all, depending on what the transformation does.

After selecting your model elements, you have two choices to invoke a transformation, as described in Part 1:

  • Click on the drawing canvas of your business process model diagram and then invoke the transformation at the bottom of the pull-down menu, or
  • Click on the corresponding graphical symbol in the Accelerators palette.

We recommend that you save your model before applying a transformation. This makes it easier for you to undo unwanted changes by simply discarding a model and reopening it again in its last saved state. Alternatively, you can use the Modeler undo function to undo each of the individual editing operations applied by a transformation..


Duplicate Element transformation

Transformation Name: Duplicate Element Duplicate Element

Intent: Creates a copy of a selected activity that inherits the attributes of the activity and its outgoing connections. Between the selected activity and its copy a new control-flow connection is added.

Motivation: Use this transformation to duplicate a selected local or global task, human task, business rules task or service, and to connect the selected activity with an outgoing connection to its copy. The copy inherits all attributes of the selected activity. Use the transformation when you are refining the activities in your model; for example, when you want to split the functionality that is encapsulated in one activity of your current model across two activities, but the two new activities will still share a large subset of attributes.

Mechanics: Select exactly one activity (local or global task, human task, business rules task, or service), but not a local or global subprocess or loop model element (While-Loop, Do-While Loop and For Loop in Modeler) and invoke the transformation. A copy of the selected activity is placed on the canvas to the right of the selected activity. All outputs of the selected activity are removed and added to the copy. Only a single control-flow output remains for the selected activity that is connected to the single control-flow input of the copy. Attributes, such as an associated organization or classifier, are inherited by the copy.

If you try to apply the transformation to a local subprocess, the following error message displays.


Figure 1. Duplicate element error message
Duplicate                     element error message

Samples: Our first example shows a selected business rules task at the left and the result of applying this transformation to this task on the right.


Figure 2. Duplicating a business rules task
Duplicating a business rules task

Our second example shows a human task named Review Application with a business item input and two business item outputs. The task is colored by organization unit.


Figure 3. Human task with business item input and outputs
Human task                     with business item input and outputs

The result of applying the Duplicate Element transformation to this human task is shown here:


Figure 4. Duplicate element applied to human task
Duplicate element                     applied to human task

The associated organization unit is inherited by the copy of the task.

Related transformations: This transformation is similar to the Insert Task pattern, but creates a new activity by reusing the attributes of an existing activity. In contrast to Insert Task, which only creates a task, this transformation can create human tasks and business rules tasks. The inverse transformation is Merge Elements.


Merge Elements transformation

Transformation Name: Merge Elements Merge Elements

Intent: Takes two model elements of the same type that are directly connected and merges them into a single element of this type.

Motivation: Use this transformation when you want to simplify your model and the intended simplification implies to delete elements, while preserving the existing flow. The transformation is especially useful when you want to simplify branching flows by combining several gateways into a single gateway.

Mechanics: The Merge Elements transformation is applicable to pairs of directly connected gateways, local or global tasks, human tasks, business rules tasks, or services, but not to local or global subprocesses and loop model elements. To apply the transformation, you must select exactly two elements of exactly the same type, and these elements must have a direct connection. The transformation deletes the second element in the flow and reconnects all its outgoing connections by modifying the outputs of the first element.

When you select elements of different types, elements to which the transformation is not applicable, elements that are not directly connected, or more than two elements, the following error message displays:


Figure 5. Merge Elements error message
Merge Elements error                     message

Samples: Our first example reverses the effect of the Duplicate Element transformation described in the Duplicate Element transformation example. Select the two human tasks as shown in Figure 6.


Figure 6. Select two connected human tasks
Select two connected human tasks

Then invoke Merge Elements. The two human tasks are recombined by deleting the second task and adding any outputs of it to the first task as shown in Figure 7.


Figure 7. Results of Merge Elements transformation on human tasks
Results of Merge                          Element on human tasks

Our second example illustrates the effect of the transformation on connected decision gateways as shown in Figure 8. When merging two connected decisions as shown in Figure 9 , the second decision is removed, but its branches are combined with the branch of the first decision. The branch names and conditions are combined by "and," and the name of the first decision is preserved.


Figure 8. Two connected decision gateways
Two connected decision gateways

Figure 9. Results of Merge Elements transformation on two connected decisions
Results of Merge Elements on two connected decisions

Note that any expressions that were defined for a branch are removed by the transformation, because they are not valid in the context of the combined gateway. We recommend that you verify the output conditions and their percentages after you apply the transformation to decision gateways, because the transformation cannot imply your intended decision logic.

Related transformations: The inverse transformation is Duplicate Element, but this transformation is applicable only to activities, not to gateways.


Replace Global Process transformation

Transformation Name: Replace Global Process Replace Global Process

Intent: Replaces a selected global process with another global process chosen by the user from the available processes in the current modeling project or its reference group.

Motivation: Reusing processes across several models is a common practice. When changing a process model A that is reused in a process model B, a change in A may make its reuse in B obsolete, requiring you to replace A by some other process (such as C) in model B. The Replace Global Process transformation allows you to easily perform such replacements.

Mechanics: Select a global process and invoke the transformation. A window displays that allows you to browse to the available process models in your workspace as is shown Figure 10.


Figure 10. Select process
Select process

Select a process from the list and click OK. The selected process replaces the process in the diagram and is connected to the existing flow by adding any missing inputs or outputs to the process. This modification of the inputs and outputs can make the occurrence of the global process in the current process model inconsistent with the global process definition in the workspace. This inconsistency is shown in the Errors view when saving the transformed model. In the example below, we'll show you how to address such an inconsistency. If you want to avoid any inconsistencies, replace processes only with other processes that have exactly the same inputs and outputs.

Samples: In our example, we show what happens if a global process is replaced by another global process that does not have all inputs and outputs defined to re-establish the existing connections in the process model.

The process model shown in Figure 11 reuses a Verify Goods process that has Bill, Order, and Package business items as inputs and outputs. Our goal is to replace the Verify Goods process with a simpler Verify Bill process that has only the Bill business item as an input and output.


Figure 11. Verify Goods process model
Verify Goods process                     model

The transformation adds the missing Order and Package business items to the Verify Bill process to reconnect it to the existing flow in the model. When saving the transformed model, an error is displayed that the process invocation of Verify Bill is no longer consistent with its global process definition, as shown in Figure 12.


Figure 12. Error after automatic reconnection of the replacing global process
Error after automatic reconnection of the replacing global process

You have two choices to address this error:

  1. You can modify the global process definition of Verify Bill and add the required inputs and outputs. This will affect other process models that use this process, because you adjust a global process definition to the local requirements of one reusing process.
  2. You can right-click on the process invocation of Verify Bill in the diagram and select Update Global Element from the menu, then save your model. The error is eliminated and only those inputs and outputs provided by the global process definition remain connected. With this second option, you adjust your local usage of a process to its global process definition. The resulting model is shown in Figure 13.

Figure 13. Result of Update Global element
Result of Update                     Global element

You should consider how any dangling inputs and outputs of a reused process are handled by your process model. In Figure 13, the Ship Goods task cannot execute because it does not receive the required Order and Package inputs anymore. In Figure 14, we've decided that these inputs are directly provided by the Provide Goods task.


Figure 14. Inputs provided by the Provide Goods task
Inputs provided by                     the Provide Goods task

Related transformations: None.


Remove Region transformation

Transformation Name: Remove Region Remove Region

Intent: Cuts out an entire connected region containing an arbitrary selection of connected model elements and reconnects the remaining flow.

Motivation: Use this transformation when parts of your model are no longer valid and you want to discard them, but you would like to reconnect the remaining flow in the model. The transformation behaves like a smart delete that removes elements from the model, but is capable of reconnecting the remaining ones.

Mechanics: Select an arbitrary but connected region of your model by clicking on one or more model elements or holding the left mouse button and dragging over an area to select all model elements in the area. Invoke the transformation. This deletes all selected elements and tries to reconnect the remaining flow by connecting those connections entering and leaving the region removed by the transformation. The automatic reconnection may not always lead to a correct control flow when the process model contains complicated flow logic involving parallel and alternative flows that are opened by forks and decisions and end in joins and merges. Figure 15 illustrates five possible situations, from left to right.


Figure 15. Five possible situations for connections crossing the boundaries of a removed region
Connections crossing the boundaries of a removed region

Note: Situation 1 is on the far left, situation 5 on the right.

Situation 1: If only a single control-flow input and output connection exist for the selected region, a so-called fragment is removed from the model (see Part 2). Removing a fragment always leads to a correctly reconnected flow.

Situations 2 and 3: If several control-flow input connections enter the selected region, but only one output connection exists or vice versa, a fork or join is added between the connections to reconnect them.

Situation 4 (combines Situations 2 and 3): Several control-flow input and output connections enter the selected region. Input connections are combined with a join, output connections are combined with a fork and the join and fork are connected with each other.

Situation 5: A single data-flow connection enters the selected region and a single data-flow connection leaves the selected region, and both data-flow connections have the same business item associated. The two connections are reconnected. In the case of several data-flow connections that enter or leave the selected region or if different business items are associated with the connections, the model becomes disconnected.

The reconnected flow can become incorrect in Situations 2, 3, and 4. For example, when incoming connections are opened by a decision gateway, they are now connected with a join introducing a deadlock into the model. See Part 1 for a discussion of control-flow errors and how to easily detect them using the Control-Flow Analysis provided with the accelerators. We recommend you run the Control-Flow Analysis whenever a region that has several incoming and outgoing connections is removed from the model.

In Situations 2, 3, and 4, the transformation won't always remove all gateways to allow the user to inspect the structure of the control flow that crosses the region borders and make manual changes if desired. We'll illustrate this in the example.

Samples: In our first example, we select and remove a fragment with a single incoming and outgoing connection as shown in Figure 16.


Figure 16. Remove a fragment with a single incoming and outgoing connection
Remove a                     fragment with one connection

Following Situation 1, the fragment is removed and the two connections are merged into a single one as shown in Figure 17.


Figure 17. Result: Fragment removed and connections merged
Connections merged

In our second example, we select a region of two tasks that are located on two separate flows, which are not connected to each other as shown in Figure 18.


Figure 18. Select a region with unconnected tasks
Select a region                     with unconnected tasks

The two tasks are removed, but the gateways remain in the flow connecting the empty branches with each other, as shown in Figure 19.


Figure 19. Result: Tasks removed, gateways remain
Result: Tasks                     removed, gateways remain

To remove both gateways, they must both be selected. This selection determines a fragment with a single incoming and a single outgoing connection, which is removed by the transformation.

Figure 20 shows the result of removing the merge gateway. The selection of the single merge gateway in Figure 19 determines a region with two incoming connections and one outgoing connection that is not a fragment. Situation 2 applies and a join is added to the model to reconnect the two incoming connections with the single outgoing connection. A deadlock is introduced into the model that must be manually resolved by, for example, applying the Toggle Gateways transformation to the join gateway, which changes it to a correct merge.


Figure 20. Fork gateway added to the model when removing a region consisting of a single merge
Fork gateway added to the model

Related transformations: Apply the Control-Flow Analysis to validate your process model when a region with more than one incoming or outgoing connection was removed. See Part 1 for details on how to use the Control-Flow Analysis. Use the Toggle Gateways transformation to change any forks or joins to decisions and merges in case of a detected control-flow error.


Associate Data transformation

Transformation Name: Associate Data Associate Data

Intent: Assigns a new business item to selected connections or to all connections in a process model or removes an existing business item.

Motivation: Use this transformation when you want to change control-flow into data-flow and vice versa or if you want to modify existing data flow.

Mechanics: Select an arbitrary region of your process model or specific connections and invoke the transformation. A window displays that allows you to browse the business items that are available in your modeling project, as shown in Figure 21.


Figure 21. Select a business item
Select a business                     item

Select either No type, Basic type or Complex type. If you select Complex type, select one of the available business items. Then click OK. If you select No type, all business items that are associated with the selected connections are removed, leaving only control flow in the selected region of your model. If you select Basic type or Complex type, the selected business item is associated with the selected connections changing or adding data flow in your process model. The types of inputs and outputs of tasks or gateways involved in the selected connections are modified accordingly.

If no model element or connection is selected, the transformation is applied to the entire model.

If control flow is changed to data flow on connections that include start and end or terminate events, the transformation adds an input and output for the associated business item to the process model. It reconnects the flow to this input and output and the events are removed from the model. If data flow is changed to control flow, new start and terminate events are added to the model. The data inputs and outputs of the process mode are not removed in order to preserve the existing process interface.

When associating data with connections that involve global processes, the interface of the global process is modified. This can lead to inconsistencies that are reported in the Errors view when saving the model. See the example provided with the Replace Global Process transformation for information on how to address and resolve such inconsistencies.

Note that you cannot use the Associate Data transformation to change the data flow in and out of repositories because this flow should remain consistent with the type of the business item associated with the repository.

Samples: The example in Figure 22 shows an application of the transformation to an entire process model with no elements selected. The Application business item is chosen as the parameter of the transformation. It is applied to all connections in the example model except the one connecting to the repository.


Figure 22. Apply Associate Data to entire process model
Apply Associate                     Data to entire process model

Note that the start event is removed and that the Application business item becomes an input of the process. The Text business item on the repository connection remains unchanged.


Figure 23. Result of Associate Data transformation
Results of                     Associate Data transformation

Related transformations: None.


Autolink Elements transformation

Transformation Name: Autolink Elements Autolink Elements

Intent: Automatically connects model elements that are placed on the canvas following simple layout guidelines.

Motivation: Eliminates manually clicking on inputs and outputs and drawing a connection between them. Instead, you can place activities on the canvas following simple layout guidelines and let the Autolink Elements transformation connect these elements for you and even insert the right gateways between them.

Mechanics: The transformation can be applied to both unconnected and partially connected models to quickly create complex business processes. If no model elements are selected, the transformation tries to connect all model elements on the canvas, otherwise, it connects only the selected elements.

The following simple rules are applied by the transformation:

  • If tasks are to be connected in a sequence, they should be placed close to each other in an approximate row.
  • If tasks are to be connected such that they occur on different branches of a decision, they should be placed in an approximate column.
  • A gateway is added to the model when there is sufficient space between a row and a column of tasks.

The Autolink Elements transformation may result in a partially connected model when the transformation cannot clearly determine which layout rules apply to the model elements.

Samples: The example shown in Figure 24 illustrates the layout rules. Note that the start event, the Receive Order task, the Ship Order task, and the terminate event are placed in an approximate row. Between the Receive Order task and the Ship Order task, three more tasks are placed in an approximate column. Notice that we left sufficient space between the Receive Order task on the left and this column of tasks and the Ship Order task on the right such that a gateway fits between them.


Figure 24. Horizontal and vertical layout of process tasks
Horizontal and vertical layout of process tasks

Invoking the Autolink Elements transformation with no model elements selected, then applying the Auto-Layout, results in the process model shown in Figure 25. A decision and merge gateway are added to the model such that the tasks in the column are placed on three branches that are connected by these gateways. All model elements are connected.


Figure 25. Autolink Elements transformation result
Autolink Elements                     transformation result

By default, the transformation only adds decision and merge gateways to create alternative branches. It doesn't know whether the user wants to create alternative or parallel flow. Use the Toggle Gateways transformation to change decision and merge gateways to forks and joins.

The next example shows how to apply the Autolink Elements transformation to partially connected models. We'll reuse the example from Figure 25, but remove its start and terminate events as shown in Figure 26.


Figure 26. A connected process model fragment without start and terminate events
A connected process model fragment without start and terminate events

Next we'll place the Approve Order task above the existing column of tasks. Our goal is to add another branch to the existing decision and merge. Select the new task and both gateways as shown in Figure 27, and invoke the Autolink Elements transformation.


Figure 27. Selecting specific model elements to connect a new task to existing gateways
Selecting model elements to connect a new task to existing gateways

A fourth branch is added to the decision and merge gateways. Note that selecting the gateways is critical for the transformation to correctly connect the new task. More than one task can be placed on a single branch by arranging several tasks on a row.


Figure 28. New branch added to gateways
New branch added

Next we'll place this entire process fragment on a branch within another decision. Add the tasks Create Order, Suspend Order, and Print Order Information on the canvas as shown in Figure 29.


Figure 29. Add new tasks
Add new tasks

Then invoke the transformation again with no model elements selected. A new decision and merge gateway are added, as shown in Figure 30. (See a larger version of Figure 30.)


Figure 30. New gateways added
New gateways added

Note that a gateway is only added if there is at least one task placed before or after a column of tasks. In our example, this means that the Create Order and Print Order Information tasks are essential – they are placed before and after a column of tasks made up of the Suspend Order task and the fragment delimited by the Receive Order and Ship Order tasks. The Autolink Elements transformation therefore recognizes the new branch that is intended for the Suspend Order task and the need to connect this new branch with a newly introduced decision and merge.

Related transformations: The Toggle Gateways transformation is very useful to change a decision to a fork and a join to a merge and vice versa. To place more activities on a created connection, use the Insert Task, Insert Process or Sequence pattern (see Part 2). To add data flow to your model, use the Associate Data transformation.


Toggle Gateways transformation

Transformation Name: Toggle Gateways Toggle Gateways

Intent: Toggles a selected gateway, that is, it converts a fork to a decision and vice versa and converts a join to a merge and vice versa.

Motivation: Use this transformation to convert parallel branches into alternative branches and vice versa. Use it also to correct modeling errors that are caused by incorrectly paired gateways, for example, to change an incorrect decision/join pair to a correct decision/merge pair.

Mechanics: To apply the transformation, select a single gateway that you want to toggle. The transformation is applied to this gateway and to all correctly matching gateways. This means that, when you apply the transformation to a merge that pairs with a decision, the decision and the merge are changed to a fork and join. To detect matching pairs (or more generally matching sets of parallel and alternative gateways), the transformation analyzes the structure of the process model and toggles all those gateways that must be toggled for the control flow to remain correct. When a control-flow error exists in the model involving the selected gateway (see Part 1), only the selected gateway is toggled, helping the user to change incorrect gateways.

When no gateway is selected, the transformation is applied to the whole model if no control-flow errors are detected. Otherwise, no toggling of gateways takes place.

Samples: The first example illustrates the toggling of matching gateways in a correct process model. We start from a part of the Evaluate Candidate process that we used in Part 1,as shown in Figure 31. In this part of the process, two decisions are paired with a single merge.


Figure 31. Toggling of a merge gateway in a correct process model
Toggling of a merge gateway in a correct process model

Select the merge gateway and invoke the Toggle Gateways transformation. The merge and both decisions are toggled in order to preserve the correctness of the process model as shown in Figure 32. The three alternative branches are converted into corresponding parallel branches. Toggling only the merge would have introduced a deadlock into the process model.


Figure 32. Toggle Gateways transformation result: all correctly matching gateways toggled
Toggle                     Gateways transformation result: all correctly matching gateways                     toggled

The second example illustrates the behavior of the Toggle Gateways transformation on a model with a control-flow error. In this example, two forks are incorrectly paired with a closing merge, which leads to a process model with a lack of synchronization error. Select the merge as shown in Figure 33.


Figure 33. Toggling of a merge gateway in an incorrect process model
Toggling of a merge gateway in an incorrect process model

Invoke the Toggle Gateways transformation. Only the merge is toggled to a join correcting the error in the model as shown in Figure 34.


Figure 34. Toggle Gateways transformation result: only selected gateway toggled
Toggle Gateways transformation result: only selected gateway toggled

Our third example illustrates that the Toggle Gateways transformation does only affect matching gateways in a model. For this purpose, we embed the example in Figure 34 into a decision/merge pair and select the second fork as shown in Figure 35.


Figure 35. Select the second fork
Select the second                     fork

Now invoke the Toggle Gateways transformation. It only toggles the matching forks and their join, but leaves the outermost decision and merge unchanged as shown in Figure 36. Similarly, when toggling the first decision, Evaluate Candidate, only its matching merge (on the far right in Figure 36) is be toggled.


Figure 36. Matching forks toggled
Matching forks toggled

Related transformations: The Activity to Gateway Form refactoring can be applied to transform multiple incoming and outgoing connections of an activity to the corresponding gateway structure, which then allows you to toggle this gateway. The Merge Elements transformation is useful in combining several gateways into a single gateway. To add missing closing gateways to a model, use the Merge or Join Process Ends and the Close Branches refactorings. We'll describe refactorings in more detail in Part 4 of this series.


Reorder Sequence transformation

Transformation Name: Reorder Sequence Reorder Sequence

Intent: Reorders selected activities in a sequence based on a new order that is provided by the user clicking on the model elements.

Motivation: Reordering the steps in a process model is a common change. Either the order of activities that are already in sequence must be changed or activities must be moved elsewhere in the process flow. Such a reordering is a very time-consuming step, requiring users to manually delete and redraw connections. The Reorder Sequence Transformation facilitates this change.

Mechanics: The Reorder Sequence transformation is applicable to all activities, including tasks, local and global processes, business rules tasks, and human tasks, as well as loop model elements that don't have more than one incoming and one outgoing connection. Press and hold the Shift key and click on the elements in the order you want to create, then invoke the Reorder Sequence transformation on the selected elements. The selected elements are moved after the first element you selected and control-flow connections are created between them. When elements are connected with a single data-flow connection, the associated business items are preserved and any required but missing inputs and outputs are added to the reordered activities to establish a new connection. The positioning of the model elements on the drawing canvas is not changed. Use Auto-Layout to properly lay out the modified process model.

If only a single element is selected or elements to which the transformation is not applicable occur in a selection, the following error message is displayed.


Figure 37. Error message: Invalid model element selections
Error message: Invalid model element selection

Activities can't be reordered if they're connected with multiple connections. In this case, the following error message is displayed.


Figure 38. Error message: Multiply connected model elements
Error message: multiply connected model elements

Samples: Our example shows a sequence of model elements of different types that we want to order alphabetically.


Figure 39. A sequence of actitivies to be reordered alphabetically
A sequence of actitivies to be reordered alphabetically

To define the new order, press and hold the Shift key then click the following model elements in order: Business Rules Task, Process 2, Subprocess, Task, While Loop. The sequence of clicks determines the new order. Apply the Reorder Sequence transformation to reconnect the elements in the specified order as shown in Figure 40.


Figure 40. Reordered elements after transformation
Reordered elements                     after transformation

The positioning of the elements on the canvas is not changed by the transformation. Invoke Auto-Layout from Left to Right to adapt the positioning to the new sequential order. The result is shown in Figure 41.


Figure 41. The alphabetically reordered sequence of activities after Auto-Layout applied
Alphabetically                     reordered sequence of activities

The second example illustrates a scenario of moving a task to the beginning of an alternative branch. We use the initial part of the Handle Signed Contract process from Part 1. After the merge gateway, we added a Confirm Receipt task that we would like to move to the beginning of the Yes branch before the Verify Necessary Signatures task. To make this change, press and hold the Shift key and click on the Yes branch first, then on the Confirm Receipt task as shown in Figure 42. Note that you must have the output branch selected, not the connection from the decision gateway to the first model element on the branch.


Figure 42. Select Yes branch and Confirm Receipt task
Select Yes branch                     and Confirm Receipt task

Invoke the Reorder Sequence transformation. The desired change is applied to the model as shown in Figure 43.


Figure 43. Result of Reorder Sequence transformation
Result of Reorder                     Sequence transformation

Apply Auto-Layout to adjust the layout to the change.


Figure 44. The reordered Confirm Receipt task after Auto-Layout applied
The reordered Confirm Receipt task after Auto-Layout applied

Related transformations: The Convert to Alternative Compound transformation takes a set of selected model elements that occur in a sequence and places them on several alternative branches. The Convert to Sequence transformation removes alternative branches from a model and arranges the model elements in a sequence.


Convert to Alternative Compound

Transformation Name: Convert to Alternative Compound Convert to Alternative Compound

Intent: Takes a set of model elements that are connected in a sequence and places them on different alternative branches embedded within a decision and a merge gateway.

Motivation: An initial version of a business process model is often created by defining a sequential process flow. When later refining the model, one realizes that certain activities should occur on different branches of the flow and that gateways must be added to the model. The transformation allows a user to split sequences of tasks across alternative branches that are automatically added to the model.

Mechanics: The Convert to Alternative Compound transformation is applicable to all activities, including tasks, local and global processes, business rules tasks, and human tasks, as well as loop model elements that have not more than one incoming and one outgoing connection. To apply the transformation, click on the activities in a connected sequence that should begin the new alternative branches in the model, then invoke the Convert to Alternative Compound transformation. For each selected activity, a new branch is created. The selected activity becomes the first activity of this branch. All activities that follow this selected activity and that have not been selected are also added to this branch. All non-selected tasks that precede the first selected task are moved before the decision gateway. This means that by selecting activities in a sequence the user specifies subsequences for each of the alternative branches.

If activities are selected that occur on different alternative or parallel branches, the following error message is displayed.


Figure 45. Activities not in sequence error message
Activities not in                     sequence error message

Samples: In the example process shown in Figure 46, the Review Order and Check if Available tasks have been selected.


Figure 46. Review Order and Check if Available tasks selected
Review Order                     and Check if Available tasks selected

As a result, two branches are created, as shown in Figure 47. The selected tasks are placed on these branches as the first tasks followed by their successor subprocesses or tasks. The Receive Order task that precedes the first selected task is placed before the decision.


Figure 47. New branches created
New branches                     created

Related transformations: The Toggle Gateways transformation can be used to change the created alternative compound to a parallel compound. The Reorder Sequence transformation makes it easy to reposition activities within a newly created branch. Convert to Sequence is the dual transformation that takes a set of selected activities that occur on different branches in a model and orders them in a sequence.


Convert to Sequence

Transformation Name: Convert to Sequence Convert to Sequence

Intent: Transforms an alternative or parallel fragment of a process model into a sequence of activities deleting all gateways.

Motivation: The Convert to Sequence Transformation removes alternative or parallel branches from a model, but keeps all activities on these branches. The activities are arranged in a new sequence. Such a change occurs when, for example, the branching structure in a model is obsolete and must be changed completely or when branches have been removed and only a single or a few branches are left that a user wants to turn into a sequence. Making such a change manually would require the step-by-step deletion of all gateways and the manual reconnection of the affected activities.

Mechanics: The user selects a single task or gateway. The selected model element determines a fragment that encloses this element. A fragment is a part of the process model that is connected with one incoming and one outgoing connection to the remaining model (see Part 2). All gateways in this fragment are removed and the activities contained in the fragment are ordered within a sequence. Each activity in the fragment must have only one incoming and one outgoing connection, otherwise the transformation is not applicable. The sequence is built by joining the individual branches starting from the top-most branch in the diagram and proceeding until the lowest branch is reached.

The positioning of the activities on the canvas is not changed by the transformation. Apply Auto-Layout to improve the layout of the model.

If you select a model element that is not a gateway or an activity, or select more than one model element, the following error message is displayed.


Figure 48. Convert to Sequence error message
Convert to Sequence                 error message

In a complex model, large fragments can contain smaller fragments. When applied to a fragment, the transformation won't affect the structure of any of the contained smaller fragments; in other words, these nested fragments preserve their gateway structures. We'll illustrate this in the examples.

Samples: This example illustrates the behavior of the Convert to Sequence transformation on a model with several nested fragments. Figure 49 shows an example model with two highlighted fragments. We want to apply the Convert to Sequence transformation to the Fullfill Order task, so the Fulfill Order task is selected. It is contained within a fragment that begins with a decision and ends with a merge. Within this fragment, we highlighted a smaller fragment that starts with a fork and ends with a join.


Figure 49. Fragments in an example model
Fragments in an                     example model

Invoke the Convert to Sequence transformation with the Fulfill Order task being selected. The decision and merge are removed and the Fulfill Order and Reject Order tasks are placed within a sequence beginning with the Receive Order task. The result is shown in Figure 50. The inner fragment of this process model is not affected by the transformation--its fork and join gateways are preserved.


Figure 50. Result of Convert to Sequence transformation applied to the Fulfill Order task
Result of Convert                     to Sequence transformation applied to the Fulfill Order task

If we had selected one of the tasks in the fragment delimited by the fork and join gateway, such as Check Payment, Order From Stock or Determine Shipping, the fork and join would have been removed and the three tasks would directly follow the Fulfill Order task. The decision and merge gateways of the outer fragment would not be affected. Figure 51 shows the result of the Convert to Sequence transformation applied to the Check Payment task before the Auto-Layout.


Figure 51. Result of Convert to Sequence transformation applied to the Check Payment task
Result of Convert to Sequence transformation applied to the Check Payment task

Related transformations: The Reorder Sequence transformation can be used to change the order of the activities in the sequence that is created by the Convert to Sequence transformation. Additional activities can be added to the sequence by using the Insert Task, Insert Process, or Sequence patterns. (See Part 2.) To remove any part of the process model, use the Remove Region transformation. Convert to Alternative Compound is the dual transformation that takes a set of model elements that are connected in a sequence and places them on different alternative branches embedded within a decision and a merge gateway. To change an Alternative Compound to a Parallel Compound, use the Toggle Gateways transformation.


Summary

In this article, you learned about the business process model transformations available in Release 2.0 of the IBM Pattern-based Process Model Accelerators for WebSphere Business Modeler. Each transformation encapsulates a complex change in a single click. We described the purpose and usage of each transformation, how to correctly apply each transformation to selected model elements, and what effects the transformation has. We provided examples illustrating the power of each transformation.

By using the transformations and combining them with the patterns that we described in Part 2 and the refactorings (that we will describe in greater detail in Part 4), you can apply changes to process models in a more efficient manner.


Resources

Learn

Get products and technologies

  • Trial: IBM WebSphere Business Modeler Advanced: Download a free trial version of IBM® WebSphere® Business Modeler Advanced V6.2, IBM’s premier business process modeling and analysis tool for business users that offers process modeling, simulation, and analysis capabilities to help business users visualize, understand, and document business processes for continuous improvement. .

  • Download: Process Model Accelerators for WebSphere Business Modeler: Download ta set of plug-ins for IBM WebSphere Business Modeler V6.2 that add patterns, transformations and refactorings to the business process modeling environment.

Discuss

About the authors

Thomas Gschwind photo

Thomas Gschwind is a research staff member at the IBM Zurich Research Laboratory and a lecturer at the university of Zurich. His research interests are business process modeling and software engineering. Thomas has developed the software technology foundations underlying the patterns, and led the conceptual design and implementation of the refactoring and transformation operations. You can reach Thomas at thg@zurich.ibm.com.

Author photo: Jana

Jana Koehler is a Research Staff Member and manager at the IBM Zurich Research Laboratory. She works on technologies for business process management and distributed systems, and leads the Business Integration Technologies team at the lab. Jana has contributed to the conceptual design of the patterns, refactoring, and transformation operations, and has authored the technical documentation. You can reach Jana at koe@zurich.ibm.com.

Janette Wong

Janette Wong is a Senior Technical Staff Member at IBM. She leads patterns work in the BPM area. Currently she focuses on process patterns and collaborates with other subject matter experts in patterns areas such as connectivity and integration.

Cedric Favre's photo

Cedric Favre is a graduate of the Ecole Polytechnique Fédérale de Lausanne, Switzerland, and a PhD student at the IBM Zurich Research Lab. He designed and implemented the Control-Flow Analysis as part of his Master's thesis during an internship at the IBM Zurich Research Lab. You can reach Cedric at ced@zurich.ibm.com.

Wolfgang Kleinoeder photo

Wolfgang Kleinoeder is an IBM Research emeritus at the IBM Zurich Research Laboratory working on implementing and testing the Pattern-based Process Model Accelerators. You can reach Wolfgang at wbk@zurich.ibm.com.

Alexander Maystrenko photo

Alexander Maystrenko is a graduate of the Kiev Polytechnic Institute, Ukraine, and PhD student working at the IBM Zurich Research Laboratory. He helped implement the refactoring and transformation operations during an internship at the IBM Zurich Research Laboratory. You can reach Alexander at oma@zurich.ibm.com.

Krenar Muhidini's photo

Krenar Muhidini is a student at Jacobs University Bremen and was a summer intern in the IBM Zurich Research Laboratory helping to implement the Pattern-based Process Model Accelerators.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=WebSphere, SOA and Web services
ArticleID=433666
ArticleTitle=IBM Pattern-based Process Model Accelerators for WebSphere Business Modeler, Part 3: Changing process models with ready-to-use transformations
publish-date=10072009
author1-email=thg@zurich.ibm.com
author1-email-cc=crothemi@us.ibm.com
author2-email=koe@zurich.ibm.com
author2-email-cc=crothemi@us.ibm.com
author3-email=janette@ca.ibm.com
author3-email-cc=crothemi@us.ibm.com
author4-email=ced@zurich.ibm.com
author4-email-cc=crothemi@us.ibm.com
author5-email=wbk@zurich.ibm.com
author5-email-cc=crothemi@us.ibm.com
author6-email=oma@zurich.ibm.com
author6-email-cc=crothemi@us.ibm.com
author7-email=oma@zurich.ibm.com
author7-email-cc=crothemi@us.ibm.com

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers