Book a Demo

Author Topic: BPMN Association  (Read 10440 times)

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
BPMN Association
« on: May 17, 2006, 05:39:23 am »
Can anyone come up with the rationale as to why Sparx used an Association stereotyped Dependency to implement the BPMN Association.  (I guess other than the EA design DOESN'T allow Associations to have their appearance changed to dashed)

It would be nice if the Quick Linker had both (undirected) Association and Directed Association - like the normal Class Diagram Quick Linker.

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Scott Lindner

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Re: BPMN Association
« Reply #1 on: May 17, 2006, 10:43:42 am »
Could you explain your post a bit more?  I'm not up on the subtleties of Sparx, UML and BPMN just yet.  As of yessterday I started to experiment with BPMN in Sparx and I had some difficulties related to associations and the differences between UML Actors and BPMN Pools.  I suspect that your question is somehow related to my questions on this as well.  Although I don't fully understand your question.  :)

The only thing I do understand is the BPMN and UML 2.x specifications do not provide any guidance for integrating the two.  Not yet that is.

I'm curious to read more on this topic.

Scott

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: BPMN Association
« Reply #2 on: May 17, 2006, 03:25:10 pm »
Quote
Could you explain your post a bit more?  I'm not up on the subtleties of Sparx, UML and BPMN just yet.  As of yesterday I started to experiment with BPMN in Sparx and I had some difficulties related to associations and the differences between UML Actors and BPMN Pools.  I suspect that your question is somehow related to my questions on this as well.  Although I don't fully understand your question.  :)
[size=13][SNIP][/size]
Hi Scott,

Well, in summary, if I drag an Association from the Analysis toolbox folder onto the diagram (and then look at its properties), I get an Association EA Element.  However, if I drag an Association from the BPMN Core folder, I get a Dependency EA element!  This is (shock, horror) inconsistent!  AND in my view wrong!  BPMN Associations aren't dependencies!  Directed BPMN Associations even have a kind of flow.

If I want to emit this on my Universal Interface - mentioned elsewhere - I'll have to map it to an Association element and vice versa.

By the way, I saw your postings on Actors and Pools.  From a conceptual viewpoint, It may be preferable to use Lanes as Actors and Pools as clusters of Actors.  The impost is that every Pool would then have to have a Lane.

Has this clarified things?

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Scott Lindner

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Re: BPMN Association
« Reply #3 on: May 18, 2006, 05:39:30 pm »
I'm with you now.  I agree regarding the reference difference.  I noticed it as well and changed it in my BPMN to be what I intended, but didn't recognize the inconsistency with the rest of the tool.  Good thing to point out.

I think I see the point on pools and lanes.  I need to think about it more though.  It isn't just arbitrary because if I understand right, a sequence flow cannot pass through a pool boundary, but it can a lane boundary.  Oh.. yeah.. I got it.  I like it.  It helps separate the business in a way.  I should only use a pool for a very discrete and independent business entity (be it an entire company, unit within a business, or a role/individual).

I'm still learning BPMN.  I'm trying to make some BPMN diagrams in Sparx EA, but I'm having troubles figure out how to use EA to do some of the things that I know can be done with BPMN.  For example, there are a bunch of specilizations for each of the BPMN types.  Like a sub process.  How do I draw a sub process?  How do I tie the sub process as a single activity object to the actual full blow up sub process itself?  I know this is a tangent from this thread, but we're on the topic.

Cheers,
Scott

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: BPMN Association
« Reply #4 on: May 18, 2006, 07:22:10 pm »
Quote
I'm with you now.  I agree regarding the reference difference.  I noticed it as well and changed it in my BPMN to be what I intended, but didn't recognize the inconsistency with the rest of the tool.  Good thing to point out.
OK, I'll post a formal defect to Sparx.  For my part, if they can't fix it immediately, I'm satisfied with it being fixed in a near future major release.  It's the commitment that I'm after.  Also, Since Sparx haven't changed the DB in a long while, I think a refactor tool to automatically convert all Dependencies with «Association» stereotypes to Associations should be provided.
Quote
I think I see the point on pools and lanes.  I need to think about it more though.  It isn't just arbitrary because if I understand right, a sequence flow cannot pass through a pool boundary, but it can a lane boundary.  Oh.. yeah.. I got it.  I like it.  It helps separate the business in a way.  I should only use a pool for a very discrete and independent business entity (be it an entire company, unit within a business, or a role/individual).
Yes, I sort of see it as an ActorCollection.  The downside of this is that each collection has to have at least one item (the Lane) - which is the actual Actor.  But the improvement in consistency is a small price to pay.
Quote
I'm still learning BPMN.  I'm trying to make some BPMN diagrams in Sparx EA, but I'm having troubles figure out how to use EA to do some of the things that I know can be done with BPMN.  For example, there are a bunch of specializations for each of the BPMN types.  Like a sub process.  How do I draw a sub process?  How do I tie the sub process as a single activity object to the actual full blow up sub process itself?  I know this is a tangent from this thread, but we're on the topic.

Cheers,
Scott
We're all learning BPMN, I think.  In fact, I'd suggest to Sparx that it will be a hot topic and it may pay them to set aside a separate forum for BPMN.
I agree with you questions.  I'd like answers to those also.  Perhaps it would be worth a separate thread?

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

sargasso

  • EA Practitioner
  • ***
  • Posts: 1406
  • Karma: +1/-2
  • 10 COMFROM 30; 20 HALT; 30 ONSUB(50,90,10)
    • View Profile
Re: BPMN Association
« Reply #5 on: May 18, 2006, 07:53:25 pm »
BPMN was originally pretty ambivalent about the nature of both pools and lanes.

Quote
A Pool represents a Participant in the Process. A Participant can be a specific business entity
(e.g, a company) or can be a more general business role (e.g., a buyer, seller, or
manufacturer).
 Quite nicely ambivalent about whether they are physical things - companies, people, etc or abstract things - like the UML actor which is a role.

Similarly,
Quote
Lanes are used to organize and categorize activities within a Pool. The meaning of the Lanes
is up to the modeler. BPMN does not specify the usage of Lanes.


I haven't waded through the OMG version yet, but I dont think its changed this.

Also note that lanes can be nested.  

But to get back to your original post ...
I note that the OMG version is explicit at 10.1.4

Quote
An Association Flow is line that MUST be drawn with a dotted single black line (as seen in Figure 10.8).


bruce
« Last Edit: May 18, 2006, 07:58:23 pm by sargasso »
"It is not so expressed, but what of that?
'Twere good you do so much for charity."

Oh I forgot, we aren't doing him are we.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: BPMN Association
« Reply #6 on: May 19, 2006, 12:21:16 am »
I received the following reply from Neil (KP) at Sparx:

Quote
The problems of different technologies using the same words to mean different things...

A UML Association is described as follows:
"An association specifies a semantic relationship that can occur between typed instances. It has at least two ends represented by properties, each of which is connected to the type of the end. More than one end of the association may have the same type."

A BPMN Association is described as follows:
"An Association is used to associate information and Artifacts with Flow Objects. Text and graphical non-Flow Objects can be associated with the Flow Objects and Flow. An Association is also used to show the activities used to compensate or an activity."

The BPMN Association doesn't sound much like a UML Association to me - there is no notion of types or properties. In the absence of an official UML Profile for BPMN to map BPMN elements to UML metaclasses, we have had to consider what we felt fitted best.

In my opinion, BPMN Associations are closer in nature to UML Dependencies than UML Associations. If you can think of a UML metaclass more appropriate than Kernel:: Dependency then I would be pleased to hear, but (name excepted) Kernel:: Association isn't it.


Neil has given permission to post it here and to discuss it.

The question seems to hinge on whether a BPMN Association is closer to a UML Association or a UML Dependency.

Just for completeness, here's the UML definition of a UML Dependency:
"A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation.  This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s)."
Incidentally, a UML dependency is ALWAYS a directed relationship.  Specifically, the arrow is at the supplier end - denoting that the client is dependent upon the supplier.

It seems to me (from my reading of the BPMN Specification) that the BPMN Association falls between the two stools of UML Association and UML Dependency.

Conceptually it is described as an Association (since it doesn't "flow").  However, a UML Association is specifically between typed instances - which Flow Objects (in BPMN aren't).  However, when a BPMN Association is directed, the arrowhead (from what I can see) is actually at the client end rather than the supplier.  This makes it more like a navigable UML Association in that respect.

Consistency, Consistency, Consistency! TM

As Neil said, there is no formal UML BPMN profile.

The more I look at the specification, the more I think there are actually distinctly two types of BPMN Association:  The undirected (Note-Link) form and the directed (more associative) form.  The compensation Association Neil mentioned in the BPMN Association definition is definitely one of the latter.

Perhaps, OMG will sort this out in a later revision of the Specification.   ::)

Thoughts anyone?

BTW Neil, as you can see... I am no longer as hard line as I was earlier...  ;D
[size=0]©2006 Paolo Cantoni, -Semantica-[/size]
« Last Edit: May 19, 2006, 12:23:16 am by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: BPMN Association
« Reply #7 on: May 19, 2006, 12:28:19 am »
Quote
An Association Flow is line that MUST be drawn with a dotted single black line (as seen in Figure 10.)
bruce,
As I indicated in the previous post, Association Flow is a non sequitur (and therefore probably a typo).
Your point is taken.  I'm assured by Neil that the decision to go with a UML Dependency has nothing to do with the fact that a UML dependency already is defined as a dashed line!

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Scott Lindner

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Re: BPMN Association
« Reply #8 on: May 22, 2006, 06:00:09 pm »
I love this discussion, and am glad I'm not an idiot in asking.

It's going to be a while before there is a BPMN profile in UML 2.x.  They are still hammering out the very issues that we are discussing here.  Whatever Sparx does, is not wrong.  ALthough we can certainly ask Sparx to do things that help bridge the gap in the mean time.  The fact that they even support BPMN is awesome.

BTW, who's this Nick fellow and why do you need permission to discuss BPMN on this forum?  I'm guessing he's an employee or moderator.

I figured out how to change the Activity type to a Sub-Process.  The best recommendation is to permanently add Tagged Values to the desktop.  This tip comes from the help file (I figured the tip out on my own about five minutes before reading it.. ouch).  When you select the activity change the tagged value Activity Type to Sub-Process and the object will change per the BPMN specification.  Pretty cool... now if only I knew BPMN better.

One thing that is missing in my opinion is that if the linkage between actor, swinlane, and activities/objects.  In UML we know that if we open up the properties for an object that anything linked to it will show up in the Links tab and will also show up on all diagrams that object is included on, and in all reports that are generated from the tool.  This isn't the case with the swimlanes and anything that is placed within it.  The best work around I could find to this is to create a UML actor a BPMN Swimlane, and BPMN activities.  Then drag the Actor to the BPMN diagram, associate the UML Actor to the BPMN Swim lane, and associate the UML Actor to the BPMN Activities, then remove the UML Actor from the BPMN diagram.  This is more maintanence but does provide for a transition between the two so you can do business process modelling in BPMN while doing the rest of the EA goodness in UML 2.x.

The one catch is that as you make changes to the BPMN diagram, you'll need to drag that UML Actor back to the diagram as a test to make sure that all objects are linked to the UML Actor.  It's work.. but it seems to work out.

Would it make sense for Sparx to consider doing something like this automatically?  Like a duality for actors?

Scott