OCBC Model Editor

This software is a tool to create, edit and export OCBC models.

Download Runnable JAR (2017.05.29) Download Runnable JAR (2017.12.12)


Next, we briefly introduce how to draw OCBC models (i.e., nodes and edges) using OCBC Model Editor as well as explaining other functionalities provided by the editor. For more details, please refer to the manual.

Download manual

1. Editing Models

Drawing nodes: Panel 1 contains two basic elements (i.e., ActivityCell and ClassCell symbols) for drawing activities and classes of OCBC models. One can drag an element to the canvas (i.e., panel 2 ) and release it, which automatically creates a corresponding node (activity or class) at the point where the element is released. If the element is dragged and release in other panels, nothing is created. As shown in Fig. 8, two activity nodes (“create order” and “create shipment”) and three class nodes (“order”, “order line” and “shipment line”) are created.

Model Editor

Drawing edges: Panel 2 supports drawing edges (activity, class and AOC relations) between nodes in an implicit way, i.e., there are no visible symbols for drawing edges. More precisely, when the cursor of the mouse is located at the center of one node (meanwhile a green square appears around the node), an edge can be dragged out from the node (called the source node) for connecting other nodes. If the cursor is released on another node (called the target node), one new edge connecting the source node and target node is generated. If the cursor is released in the blank, a new edge is generated as well as a target node which is the copy of the source node. Note that, there are implicit nodes (denoted by green rectangles) in the middle of activity and class edges, which are used to draw crel relations (i.e., an edge connect an activity edge and a class edge or node) in the similar way. The implicit nodes can be hided to simply the model by checking out the “Connector” in the pop up menu of clicking right button of the mouse. The types (i.e., activity, class, AOC or crel edges) of edges are automatically determined by the source node and target node. For instance, if the source node is an activity and the target node is an class, the edge is an AOC relation. As shown in Fig. 8, the example model has two class edges (denoted by directional lines from source nodes to target nodes), three AOC edges (denoted by dotted lines with small space), one activity edge and one crel edge (denoted by dotted lines with large space).

Editing nodes and edges: By double clicking nodes and edges, one can edit their names. The cardinalities of AOC and class edges can be edited by the four pull-down boxes in c in Fig. 9. More precisely, when one AOC or class edge is selected, its corresponding boxes are enabled. The cardinalities can be modified by choosing a value, or inputting a value and pressing the “Enter” button in the corresponding boxes. The first and second pull-down boxes correspond to the “always” (denoted by “□”) and “eventually” (denoted by “◇”) cardinalities, respectively, on the source (or activity) side of a class (or AOC) edge. The third box corresponds to the “always” cardinality on the target side of a class edge and the cardinaltiy on the class side of an AOC edge, while the fourth box is only used to edit the “eventually” cardinality on the target side of a class edge. For instance, as shown in Fig. 8, the AOC edge (highlighted in red) between “create order” and “order” is selected, and its cardinalities are the value we set in the first three boxes. Note that it is also possible to directly click the cardinality symbols (e.g., “□1◇1”) and edit cardinallities in the corresponding boxes. Moreover, the constraint type of activity edges can be edited in the pull-down box in b in Fig. 9 in a similar way. Currently by default, the box provides some single constraint types (such as “unary response” and “unary precedence”) and combined constraint types (such as “unary response-unary precedence”). It is possible to swap the source node and target node of one constraint by clicking “Swap S/T” in the pop up menu after clicking right button of the mouse.

Deleting elements: One can delete a node or an edge by the following three ways after selecting it in the graph: – press the “Delete” button; – click the icon similar to“X” in panel 5 ; – click the “Delete” item in the pop up menu after clicking right button of the mouse.

2. Adjusting the Layout of Models

After editing an OCBC model, it is possible to adjust the layout of the model. One can relocate a class or activity node through dragging its margin to the target location. Note that, if dragging the center of nodes, new edges are created rather than relocating nodes. One edge can be moved through moving its two nodes. Besides, the middle part between its two ends can be adapted to make the model more easy to read, e.g., avoiding overlapping between nodes and edges. To do this, we need to identify the style of an edge we want to adapt. The style of an edge can be modified through the pulldown box in d in Fig. 9. There are three common styles, “line”, “elbowEdgeStyle” and “segmentEdgeStyle”. By default, the style is “elbowEdgeStyle”. When one edge is clicked, the box is editable; otherwise, it is disabled. We can see the current style or modify the style of one edge by the box. An edge of the “line” style is a straight line while an edge of the “elbowEdgeStyle” style or “segmentEdgeStyle” style can has one or multiple points which can be dragged to adjust the layout of the edge.

3. Simplifying Models

When a model is very complex, i.e., containing a lot edges, one can use the “View” menu to hide less important types of edges to simplify the view (by default, all types of edges are shown). For instance, we can cancel the “AOC relations” to disappear all AOC relations in the model. Note that, we split activity relations into a further level based on constraint types. i.e., we can filter activity relations of a specific constraint type. In the same way, we can also hide the cardinalities and edge names by canceling corresponding items if necessary.

4. File Operation

At any moment of editing a model, it is possible to save the model (with a assigned name) into a XML file (with a suffix “.ocbcmml”) on the local disk. Besides exporting models, importing models is also supported. All these functionality can be realized by “File” menu or corresponding icons in panel 5 . We do not give details about how to import and save models because the usage is total the same as common software. When the editor is launched, it provide a default canvas. It is possible to create multiple canvases using the “New” functionality. Models in different canvases can be saved in separate files. Besides, the interaction between multiple canvases is supported, such as copying nodes from one canvas to another canvas. This makes it easier to create a large model by reusing contents from several small models. Note that, a strong and useful functionality is provided by this editor, which is to export vector diagrams (i.e., svg and pdf files) of models through selecting corresponding file types in the “Files of Type” pull-down box in the “Save” dialog box.

5. Other Functionality

Besides the functionality introduce above, the editor support “Undo” and “Redo” operations. These can be realized through the corresponding icons in panel 5 or buttons such as the combination of “Ctrl” and “Z”. Note that, no all operations can be reverted through the ‘Undo” functionality. The “Format” menu is used to customize the features of nodes and edges. For instance, through specifying a value for “Opacity”, one can control the transparency of selected nodes or edges. The “Window” menu can modify the window style of the editor and the “Help” menu provide some information about the editor and the link to the manual of the editor.


We give some example OCBC models next.

Order TO Cash

This example model is based on the OTC scenario. It includes activities such as "create order", "create order", etc., and classes such as "order", "invoice", etc.

Download dataset