BP-VA supports both UML and BPMN, however there’s no strong integration between these models. I wonder wether it would be possible to add refrence to UML Class from BPMN Data Object ? BPMN spec says that it is up to modeling tool vendor whether there will be an extensions to data object artifacts (see text below). From modeling point of view having the possibility to link DO to Class would enable keeping corporate company information model in sync with process descriptions.
“In BPMN, a Data Object is considered an Artifact and not a Flow Object. They are considered an Artifact because they
do not have any direct affect on the Sequence Flow or Message Flow of the Process, but they do provide information
about what the Process does. That is, how documents, data, and other objects are used and updated during the Process.
While the name “Data Object” may imply an electronic document, they can be used to represent many different types of
objects, both electronic and physical.
In general, BPMN will not standardize many modeling Artifacts. These will mainly be up to modelers and modeling tool
vendors to create for their own purposes. However, equivalents of the BPMN Data Object are used by Document
Management oriented workflow systems and many other process modeling methodologies. Thus, this object is used
enough that it is important to standardize its shape and behavior.” BPMN Spec, page 93
Thank you for taking the time to write to us. I wonder of diagram reference can solve your problem. Please watch the following movie for the diagram reference feature:
Let me know if this can help you or not.
Thanks for the response.
Using this kind of referencing does not really make real connection between artifact and concrete class. Having possibility to treat Data Object as “ambassador” (or view) of class on BPMN diagram (with automatic name refreshing, maybe as an option) would make the model consistency assurance process easier.
Do you mean one Data Object will map to one UML Class and changing the name of Data Object will also update the UML Class name and vice versa?
In my point of view, I think the business process diagram is quite high level while the class is close to implementation level. I think normally, the data object is not one to one map to the class. I think UML’s Activity Diagram is much more appropriate for this mapping. What do you thing?
If you can give an example to show your idea, it should be good.
Class diagraming, as a technique, can be used for modelling any information structure. As UML was intentionally constructed for modeling software systems, thus typically one can see examples of using class diagrams for presenting logical system information (so called analysis model, o PIM) or designed solution (PSM, using MDA terminology).
what I currently recommend is to allow assign Data Object from BPMN to classes, that would represent entities at the organization level (it is sometimes called conceptual model, organization information model, etc). It is very useful to have possibility to keep consistent entity (class in this case) at business process model (MDA defined it as CIM level) in a repository to allow for example:
- base business rule definitions on common terms (class, attribute definition) and facts
- show different aspects of the same business information (structure on class diagrams, lifecycle od state diagrams - also at business level, object flow within the process context at BPMN diagram).
Kind regards, Artur
Thank you for the elaboration. Do you think provide link between Data Object and Class is enough?
Link = can navigate between these two elements.
Well, creating a link…or rather possibility to assign class to be represented as Data Object resolve this problem (I mean similiar mechanism as assignng for example Class to Model within Requirement Diagram). It would be nice, if DO states that one can choose would be restricted to ones defined for that class (or, from the other side, adding state to DO, taht are not defined for class, would define the state for assigned class).
Kind regards, Artur
Thank you for your reply. I will discuss with our developer about your idea. In the mean time, there is work around for showing the relationship between task and class (at least visually). You can use Generic Connector to connect task and class (actually, you can connect anything). Please see the detail at:
Have a nice weekend.