Hi everyone. This is Jick Yeung from Visual Paradigm. In this video I am going to introduce you to a modeling approach that makes visual modeling more effective. The approach is called the On-Demand Model ETL.
Throughout this video I will explain the idea of On-Demand Model ETL with the help of this use case model. This is a use case model for an online shop.
There are actors like Buyer, General Visitor, Affiliate and Seller.
There are use cases like Search Product, Place Order, Cancel Order, Create Account, Advertise Items, etc.
This use case model provides an overview of all the goals to be achieved by the online shop.
Throughout a software project there are different stakeholders who have different interests and expectations on the system. For this reason they have different perspectives on a model.
For example, the scrum product owner is interested in the priority of use cases in order for him to perform release planning. The project manager might want to estimate the costs of use cases and keep monitoring the costly ones to ensure that the project can be completed within the approved budget.
A project involves many different people with different interests and concerns. Visual model, as a medium for conveying messages to different parties, has to be flexible enough to accommodate different information needs.
How can a visual model function effectively in such a condition? Let’s consider these aspects.
The first one. How to discuss and brainstorm effectively?
Take the use case model for the online shop as an example. In prioritizing use cases, the cost of use cases is probably not a factor to consider. In order to facilitate a discussion that’s centered around relevant information and not being distracted by non-interested details, it is necessary for a model to purposefully convey and capture information.
A model that can purposefully convey information is nice but not enough. Think of the need of prioritizing use cases again. Prioritization is the result of comparison between use cases. It can be difficult to perform the comparison just by viewing a use case diagram because the use cases can be scattered anywhere. Therefore, it’s vital for a model to support a holistic view and editing interface on a selected kind of model element.
An effective model is not a silo but connected with other models in contributing the on-going design, analysis and communication needs throughout a software project.
Take the use case model as an example. Once the use cases are prioritized, the scrum product owner can pick-out those important ones, and present them on a new diagram specialized for release planning. To facilitate on-going project development, it’s important that a model can be transformed and evolved from one form into a new form.
Visual Paradigm has introduced a visual modeling approach to support all these needs, and the approach is called On-Demand model ET.
The word ETL comes from a popular concept in data warehousing. It stands for Extract, Transform and Load, three database functions.
The idea is simple.
Extract, is the process to read data from a database
Transform, is the process to convert the extracted data to another form.
Load, is the process to write the transformed data into the target database.
We apply this concept in visual modeling, becoming On-Demand Model ETL.
The idea is still simple.
You extract model elements from a source, which is typically a diagram. Here I use a use case diagram as example, but the concept applies to every other diagram types.
Alright, a list of elements is extracted, forming a table of model elements, and with their properties as columns. For example, you have a table of use cases, and with their name, description, ID as columns. And we call the table ETL table.
Transform is the process to manipulate the extracted elements via the ETL table. The beauty of this process is that you are allowed to attach custom properties to the extracted elements. I’ll show you how to do this later on in the demo session.
Load, is the process to visualize a selected set of elements in the ETL table in a new diagram. This means that if you need to prioritize use cases now, you can extract all use cases into an ETL table, adjust their priority and form a new diagram with those use cases in high priority. If later on you have the perform cost estimation, create another ETL table with all use cases, estimate their cost, form another diagram that contains the costly use cases that aids cost control.
Don’t worry if you do not fully understand. I will re-iterate the concept in the demo session.
Before we go into the demo session, let me give you a brief summary on the On-Demand Model ETL.
On-Demand Model ETL is an approach to effective visual modeling. It’s not a merely a feature, but an approach. The approach consists of a method, which is ETL, extract, transform and load. And some principles, which include creating multiple model views for different perspectives, promote model reusability to ensure data consistency, and bring order to scattered model element depicted on diagram.
Finally there are tools supported by Visual Paradigm for applying this modeling approach.
Alright, let’s see how to perform On-Demand Model ETL in Visual Paradigm. We’ll start from the letter “E”, extract.
This is a use case diagram for an online shop. Let's say I want to perform release planning by deciding the use cases to be completed in difference releases. In order to do this I have to prioritize the use cases. I will show you how to do this with On-Demand Model ETL.
First, create an ETL table.
Select ETL table from the diagram toolbar and click on the diagram. I want to edit the priority of use cases, so I name this table Use Cases Priority.
An ETL table shape visualizes the data in the underlying table. You may know what it is in a minute. Now, click on this button to associate the table shape with a table. Click here to create a blank table.
This is the interface of the ETL table. This is where you can list the model elements. I want to manipulate use cases, so I select Use Case here.
The use cases are extracted from the diagram and being listed in the table.
This is the name of the use cases. I can connect to sort them alphabetically.
This is the Description column. Since this part is about extracting in ETL, the ‘E’. I'm not going to manipulate the use cases right now. I will do this in the next part. For now I'll just close the ETL table and go back to the diagram.
As you can see the table data is presented in the diagram. You see the name and the description of the used cases. So with this ETL table you have a way to reveal the details of model elements without the need to open any specification window. Let me show you another usage.
This is a state machine diagram. There are some states – Placed, Paid, Shipping. And on the right hand side you can see an ETL I created before. It lists the states with their description.
This is an activity diagram. It has actions like Checkout Shopping Cart, Settle Payment and Request Pickup. Besides the actions I've also include the states in this diagram which are in pink. I did this because I wanted to present the change of states throughout an activity.
Here we have a problem. The reader of this activity diagram may not understand the meaning of the states. To solve this problem we can apply On-Demand Model ETL.
Again I create an ETL table. I name it States.
Click this icon.
Instead of creating a blank table, this time I select an existing ETL table here – “Description of Orders’ States”. Click Next.
I want the table to show both the name and description column, so I keep this unchanged and confirm. Fit the table size.
The ETL table is presented next to the diagram. It acts like a dictionary of states. If a reader is uncertain about the definition of the state “Refunding”, he can look-up the table and find that “Refunding” means the system is processing the refund resulted by a returned product.
This is how data extraction works. You create an ETL table, lists some model elements in it, and have the table data reflected back on the diagram. Now let's move on to ‘T’, Transform. As mentioned before we wanted to perform release planning by prioritizing the use cases. We will do this in this part.
Open the ETL table in the use case diagram.
These are the use cases. To prioritize the use cases, we need a new column to store the priority. Let’s add this column. Right click on the table header and select Add Custom Property Column.
I name it Priority. I want to restrict the value to be either High, Medium or Low. To do this create an enumeration. Select configure enumeration. Click New. Enter the name of enumerations, which is Priority in this case. Click New to enter a value, say ‘High’. The next value ‘Medium’, and ‘Low’. Click OK to confirm. I set the type of the property to be Priority, and confirm.
A new Priority column is added into the table. Let me move it to the left.
So now, I can discuss with the stakeholders and decide which use cases are in high priority, and which are in medium and low. I can adjust the priority of use cases directly in the table.
I've finished setting the priority of use cases. As part of the release planning, I want an extra column to document the planning notes. Again right click on the table header and select Add Custom Property Column. Enter “Release Planning Notes” as the name of column.
This time it’s a text property.
I have a new column for entering the release planning notes now.
I don't think I need the Description column anymore so I just remove it. Open the Configure Columns Window. Select “Description” here, and click this button to remove it from the table.
Alright the column is gone, so I can start entering the release planning notes. For the use case “Add Item to Cart”, I enter this note – “An essential feature. Must be done on or before the second release”.
And then the second use case “Add item to watch list”, which is a feature that's nice to have and prefer to be supported in the third release.
I just keep entering the release planning notes for the other use cases.
I've done. If now I go back to the diagram you can see the ETL table is updated to present the name, priority and release planning notes of use cases. This provides you with a way to easily identify the priority of use cases without the need to open any specification window back and forth.
By the way you can create multiple ETL tables in one diagram. Let me show you how to do this.
And perhaps I just minimize this table first because it's quite big.
Alright I create another one. Let's say I want to perform cost estimation, so I name the table Use Cases’
Create a new ETL table.
Again list use cases in the table.
I add a custom property column for entering cost. Cost is an integer or floating-point number as you like.
Again I don't want the Description column so I just remove it.
I can start entering the cost.
I finished entering the cost for all the use cases now. I want to show you a technique in data extraction. Instead of listing all the news cases, you can apply certain condition. Let me show you how to do this here.
Click on this button. Let's say I want to list all the use cases with cost higher than 1,000. So I select Custom Properties, and Cost. Select “Greater than”, and 1,000 as value. Confirm.
The table is updated to list only use cases with cost greater than 1,000. If I close the table now, the ETL shape in the diagram is updated automatically to reflect the cost of use cases.
I can also expand the first ETL table. So now I have two ETL tables in a diagram. One for displaying the priority of use cases and another one for displaying the cost.
This is how data transformation works. You manipulate model elements in an ETL table, and you can attach custom properties to the model elements through adding custom property columns.
The final part, “Load”.
We have prioritized the use cases. Now I want to create separates use case diagram, one for a planned release. In each diagram there are use cases planned to be completed in that release. In terms of On-Demand Model ETL, it’s the process to load the selected use cases into a diagram you want. Let's start.
Again we open the ETL table.
Let's say I want to include four use cases in the first release. I select them in the table - Create Account, Manage Account, Place Order and Sell Item.
I want to create a new use case diagram with these for use cases in it. To do this click on this button to visualize the selected element. I name the new diagram Release 01. Keep Use Case Diagram as the diagram type and click Create.
The selected use cases, along with the connectors are being visualized in a new use case diagram. I just tidy up the shapes to make it look prettier.
Now I can select other use cases in creating a new use case diagram as part of the release planning. This is how On-Demand Model ETL works.
Finally, I want to end this video by describing the benefits of the On-Demand Model ETL feature.
The first one - Bulk editing. The ETL table provides a single page editing environment for model data scattered in diagram. You don't need to scroll along the diagram to locate or to find any shape because all the shapes are put neatly inside the table, ready for editing.
Brainstorming. It allows you to extract a list of relevant model elements for brainstorming.
Extending. You can attach additional properties to any kind of model elements. In this video we have attached Priority and Release Planning Notes to use cases.
Transforming. Select a set of model elements and visualize them on a new diagram. It allows you to transform a model from one form to another.
Annotating. As demonstrated in the beginning of the demo session you can use ETL table as the table legend, like, to present a glossary or dictionary of elements.
Reporting. You can include ETL table you constructed as part of the report.
This is the end of this video. We hope you will find On-Demand Model ETL approach useful. If you want more information please visit our website www.visual-paradigm.com.