Sparx Systems Forum

Enterprise Architect => General Board => Topic started by: Michael L. Preiss on December 03, 2020, 04:58:12 am

Title: BPMN Object Reuse
Post by: Michael L. Preiss on December 03, 2020, 04:58:12 am
I'm so confused...  ??? ??? ???

I'm trying to figure out how to reuse various objects (roles, lanes, etc.) in different diagrams. In one post (https://www.sparxsystems.com/forums/smf/index.php/topic,38775.msg240645.html#msg240645 (https://www.sparxsystems.com/forums/smf/index.php/topic,38775.msg240645.html#msg240645)), Eve said (last reply) that pools, lanes, and events are not reusable. In another post, Geert said that, according the BPMN spec, you're not supposed to reuse BPMN elements because they only live inside each instance of a process.

In other posts, I've read that there are various ways to effect reuse:
Would someone tell me if my understanding of the concept of reuse and how it's accomplished in EA using BPMN offbase? Under which circumstances would someone prefer to use one method over another? The answer is probably a hearty, "It depends."

As a side note, I was playing with reusing data stores by creating a new data store as a DataStoreReference and then inserting (by picking the object in the popup project browser) into the dataStoreRef field one of the data stores in my catalog. The name displayed on the data store reference object remained blank (I deleted the default name associated with the object as you would with lanes and pools). Am I doing something wrong? I would hope it's a bug so I can shift the blame to EA instead of my lack of knowledge.
Thanks for any help anyone can provide!

Michael

Thanks
Title: Re: BPMN Object Reuse
Post by: qwerty on December 03, 2020, 07:40:44 am
Reuse means you put a light on the same thing in different ways. That's good for classes which you can put in different contexts where you show collaboration with different classes/sub domains. Objects however represent something concrete. They are created especially for ONE scenario where you will use them. Reuse of an object rarely makes sense and often it's plain wrong (life lines in SD MUST not be reused). It's fairly simple if you take it this way.

q.
Title: Re: BPMN Object Reuse
Post by: Geert Bellekens on December 03, 2020, 06:02:08 pm
The 'reuse' part is where you reference or call existing things.

This works in BPMN with
- Business Processes (they can be called from an Activity using the tag calledActivityRef )
- Global task (similar to Business Process, but atomic)
- Messages (reference via the MessageRef tag on messageFlow)
- PartnerRoles and PartnerEntities used in Pools via the corresponding tags
- These same PartnerRole or PartnerEntities used in Lanes using the tag partionElementRef

BPMN is a lot like Activity Diagrams in UML. You don't reuse an action outside of it's owning activity either.

The problem with BPMN in EA is that EA doesn't force you to use it correctly, and there are a lot more ways to do it wrong then there are to do it right.
It took me a few years to figure out how it really should be used.
I still have a few customers who use BPMN somewhat wrong (but are now so invested it is not worth the trouble to correct the models)

It's not too bad to use it wrong, as long as you are aware of where you are diverting from the standard.
Not using the standard may result in problems when upgrading to a new version, or trying to exchange the model with another BPMN aware tool, or...

Geert
Title: Re: BPMN Object Reuse
Post by: Marc Lampron on February 21, 2024, 08:08:08 am
Hi,
To my understanding, the following video from CEPHAS Consulting is still the best explanation on how to model processes using BPMN notation with Enterprise Architect (v15 and v16)
https://www.sparxsystems.com/resources/webinar/partners/introduction/business-process-models-using-enterprise-architect.html (https://www.sparxsystems.com/resources/webinar/partners/introduction/business-process-models-using-enterprise-architect.html)

I wish it could be simpler (Pool & Lane with PartnerRoleRef, PartnerEntityRef, etc.) but it is what it is: a BPMN metamodel implemented on top of an UML tool based on the MOF metamodel.  Even ArchiMate suffer from the same approach. BPMN and ArchiMate diagrams are instance models but UML diagrams are mostly class models.