Displaying items by tag: time aware modelling

Evolving your Business Processes through Time Aware modelling

Earlier this week I was spending a little time flitting around the various LinkedIn groups that I frequent. In one of the BPMN groups, the group admin had set a fun little challenge as follows:

Create a BPMN model for this leave application process:

  • Employee applies for annual leave
  • Employee must submit the request to their Manager if the leave is < = 5 days
  • Employee must submit the leave to their CEO if the leave is < 5 days
  • The Manager or CEO approve/reject the leave
  • The Manager or CEO inform Employee that their leave application is approved / rejected

I had some time to spare & thought I would quickly whip up a process model to represent this in its most simple form. This was the result:

Time Aware Modelling - BPMN

As you can see, this is probably as simple as this scenario could possibly be made. But, what if I want to evolve this model, how can I show the evolution of this process?

Time Aware BPMN modelling

You may or may not be aware of the ability to create time aware models within Sparx Systems Enterprise Architect, and this functionality allows us to take our as-is process (the simple process), clone it and make the modifications to process that will show our future state…the to-be model.

So how does this work?

This process works by cloning an existing package and its content as a new structure and using EA to give the newly cloned diagram a new version number.

For BPMN modellers, there is a trick that you must be aware of. Cloning a BPMN diagram for the purpose of time aware modelling requires that the diagram in question is at the highest possible level within the package being cloned. This means that you cannot have the diagram created beneath a model element as shown here:

Model Element

If you were to attempt to clone this, all that you would end up with is the package structure. To get the successful cloning your package needs to look like this:

Browser

If you have an existing model within a model element, all is not lost. First, you will need to copy the package using this option:

Duplicate Structure

Next, paste the package from the clipboard into your repository & rename it e.g. Package X for Time Aware. Then, open the package and expand the model element. Following that, move the diagram and all the elements to the top level of the package. You can then delete the model element as it will not be used and would still be present on the original version.

Having done this, you will now be able to clone the package successfully to undertake your time aware modelling activities.

There are a few things that you need to be aware of. For example, you must remember to rename the cloned diagram to reflect its new version so that it is obvious at a glance. This will prevent you from confusing the new version with the old.

Additionally, to make use of this functionality you will need to activate the following filters on the new diagram:

  • Filter to Version
  • New to Version

The ‘filter to version’ option will look at your cloned diagram and then grey-out anything that is the same as within version one. The’ new to version’ option will display any element added to the new version as ‘normal’, allowing you distinguish between features that are in place within your process and the features that you wish to add to your process in the newer version.

You can even make minor modifications to version one elements & have them render for version two. You can do this by right-clicking one of your greyed-out elements and cloning to new version:

Clone Element

You will of course need to ensure that the version number you assign to this cloned element matches the version number that you have assigned to the diagram. This will then allow you to see the new version of the element on your to-be diagram.

With this in mind, let us jump back to the original example in this article and see how it has evolved using this time aware approach:

Employee Request Leave v2

As you can see, in the to-be version of this simple process model, we can immediately see the differences between version one and version two, in which we have modelled how we would like this process to function in a future state, whilst retaining the ability to see how the original version functioned. This has been achieved through a combination of adding entirely new elements and cloning some of the original elements to this version and altering their properties.

This will allow you to make informed decisions on how you can change your processes over time before making sweeping change without seeing the effect on your current state of play.

Published in Tutorials
Friday, 22 July 2016 11:54

Time Aware Modelling in EA version 13 Beta

 

Enterprise Architect version 13 Beta ~ Time Aware Modelling

 

 

Sparx Systems released the first Beta of Enterprise Architect version 13 to registered users on June 3rd 2016. Since then a further build of the Beta was released on July 20th 2016.

 

Numerous changes have been made in version 13 (a full summary can be found at http://www.sparxsystems.com/products/ea/13/ ). I have not tried them all, but one of the more exciting features is explored in this tutorial, namely, Time Aware Modelling.

 

Overview

 

 

Time Aware Modelling is the ability to create an As-Is model, and to clone this to create a new To-Be version whilst maintaining traceability between all the elements. In previous versions of Enterprise Architect, this has been possible, but is quite a laborious process. In Enterprise Architect version 13, Time Aware Modelling becomes far easier as I hope this tutorial will illustrate.

 

Creating the As-Is Model

 

 

For this tutorial I will create a simple UML Model of a basic power supply, although Time Aware Modelling can be applied to any model.

 

Using EA version 13 Beta, create a new repository with a name and location of your choice.

 

Under the Model Root create the following Package structure:

 

 

In the Package named Design add a UML Class Diagram named Power Supply Version 1.0.

 

Create the following UML Class Model which is our As-Is model using Connector relationships between the Ports.

 

 

We observe that the Port named Earth-Out on the Class named Switch is not connected to anything (it should be connected to Ground). Also let us assume that for the next design we wish to use two controllers, hence we will need a transformer which has four outputs (or two transformers).

 

This provides us with an opportunity to create a To-Be model and relate this to our As-Is model.

 

Creating the To-Be Model

 

 

This is a four stage process:

 

Clone the As-Is package structure, creating a To-Be model.

 

Clone the Elements on the To-Be model.

 

Modify the To-Be model.

 

Create the Migration diagram(s).

 

Cloning the As-Is Package Structure

 

 

Right-click the Package named Design and select Clone Structure as New Version…

 

You will be prompted for a name and version for the new structure, which you should complete as shown below (any version other than 1.0 can be used):

 

 

Click OK.

 

You will then be prompted for a location for the new structure:

 

 

Select Power Supply

 

Click Add New and create a new Package named Version 2.0

 

 

Click OK.

 

You will see a new Diagram created in the Package named Version 2.0.

 

 

Rename this diagram Power Supply (Version 2.0).

 

 

This diagram contains links to the original As-Is model elements, but has its Version Property set to 2.0.

 

 

 

Cloning the Elements

 

 

Logically, you should only clone the elements where changes are to be made in the To-Be model, however I discovered, that when using the new Diagram Filter to Version Option (see later in this tutorial) potentially miss-leading results can occur, therefore I clone all elements in the To-Be model.

 

To clone an element:

 

Select an element (or more than one element).

 

Right-click on a selected element and select Clone Element(s) as New Version…

 

 

Click OK.

 

New elements (each with their Version Property set to 2.0) have been created and added to the package for the To-Be model.

 

 

In addition, the diagram has updated its links to refer to these new Elements.

 

Although not apparent, these new elements (add their child Ports), all have trace relationships back to their corresponding elements in Version 1.0 (the As-Is model).

 

Modify the To-Be Model

 

 

Now we can make some changes to the To-Be model.

 

By modifying elements and creating new elements create the following UML Class model:

 

 

 

NOTE

Do not forget to set the Version Property on any new elements (such as the Class named Ground and its Port named Earth-In to match those which have been cloned, that is, in this tutorial 2.0. This includes and child elements such as Ports.

 

 

Creating the Migration Diagram(s)

 

 

This stage is optional, but is a very useful analysis tool.

 

Create a Package named Migration in the View named Power Supply.

 

Ensure that you have saved the diagram named Power Supply (Version 2.0)

 

Right-click this diagram in the Project Browser and select Copy / Paste -> Copy Diagram

 

Right-click the Package named Migration and select Copy / Paste -> Paste Diagram…

 

Select Shallow Copy and rename the diagram to Power Supply Migration

 

 

Right-click the Class named Switch and select Insert Related Elements…

 

 

Check Switch and uncheck Layout Diagram when complete.

 

Click OK.

 

 

Right-click the newly added Class named Switch and select Structural Elements… and select all Ports.

 

 

Click Close.

 

 

After a bit of re-arranging you will have a good traceability diagram between the As-Is elements and the To-Be elements.

 

Repeat the above for the remaining elements and after some tidying up, you should have a diagram similar to that shown below:

 

 

NOTE

In the diagram above I have changed the line styles for the trace relationships to Orthogonal Square.

 

Once you have created this related migration diagram, you can use the new Filter to Version feature to highlight which elements are set to a selected version.

 

Ensure that this diagram has been saved.

 

Right-click this diagram in the Project Browser and select Copy / Paste -> Copy Diagram

 

Right-click the Package named Migration and select Copy / Paste -> Paste Diagram…

 

Select Shallow Copy and rename the diagram to Power Supply Migration – As-Is (Version 1.0)

 

Right-click the Package named Migration and select Copy / Paste -> Paste Diagram…

 

Select Shallow Copy and rename the diagram to Power Supply Migration – To-Be (Version 2.0)

 

Open the Diagram Properties for the Diagram named Power Supply Migration – As-Is (Version 1.0)

 

Set the Version to 1.0 and check Filter to Version:

 

 

 

Repeat this process for the Diagram named Power Supply Migration – To-Be (Version 2.0)

 

 

 

Conclusion

 

 

In this article I have provided a tutorial to illustrate the new Time Aware Modelling functionality provided in Enterprise Architecture version 13 Beta.

 

I hope you found this article useful and informative and please keep a lookout for further mini tutorials on the new an exciting features of EA version 13.

 

 

Phil Chudley

 

Principal Consultant

 

Dunstan Thomas Consulting

 

@SparxEAGuru

 

 

 

 

 

Published in Tutorials