Author Topic: Maximising element re-use in BPMN, minimising workload, increasing accuracy  (Read 585 times)

Mr Stuff

  • EA User
  • **
  • Posts: 56
  • Karma: +0/-0
    • View Profile
In recent months, at this very large organisations with a large repository using multiple notations and methodologies (current and legacy), a team of business analysts has produced several dozen BPMN models (process &  collaboration; not conversation or choreography) primarily for communication with business stakeholders, i.e. the models are formally non-executable BPMN2.

Model validation, adherence to formalities and traceability/connectivity to other artefacts were not priorities.

We now have to formalise these models, maximise traceability and element reuse, and provide architecture teams with reports identifying data flows to/from specific systems, while respecting BPMN formalities because they need to be exported to XPDL (the diagrams should at least validate) for import into another system. (Policy is that EA must remain our primary architecture & model repository)

The question is, how best to do this efficiently and appropriately in EA (v12.1) and BPMN2.0 given the following:

   All messages, data objects, pools & lanes were created on an ad hoc basis (commonality may be inferred from similarity of names)
   BPMN <<BusinessProcess>>es were reused by dragging and dropping from the project explorer, creating Action instances (which do not validate and were linked "by hand" because they're not valid BPMN as such)
   The system elements that are the resources of some activities, or that should be represented by pools, were modelled as Archimate
   BPMN requires that certain elements be correctly placed (owned) in the element hierarchy in the project browser - so reuse of any "library" of elements looks as though it has to be by copy/paste in the project (which is very slow here)

I think we're trying to do process and system modelling at the same time in BMPN...

What would you recommend?

Thanks, Julian

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 7810
  • Karma: +171/-21
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Hi Julian,

Seems like you have your work cut out for you :-\
It is going to take a lot of work to clean out the model and make it BPMN compliant.

I would definitely consider to script at least part of it, e.g. replacing the "Action Instances" by proper BPMN elements that use the CalledActivityRef tagged value to link it to the process/activity it executes.
In fact I recommend to create each process and activity in the library and use those "Action Instances", but then using the appropriate BPMN notation on all of your diagram.
In that case you can safely allow the activities to be nested into the pool and lanes and you re-use the library elements by calling them through the CalledactivityRef tagged value.

In case you are interested, I wrote some scripts to help a customer with exactly that process: see https://github.com/GeertBellekens/Enterprise-Architect-VBScript-Library/blob/master/Projects/Project%20A/Diagram%20Group/Synchronize.vbs

They can now drag a business process or Activity from the library onto the diagram as a link and then run this script on it. It will replace the link with a local "instance" element, fills in the CalledActivityRef tagged value and also makes sure it has the same composite diagram as the library Process, making drill down easier.

We also do the same for Message. We link them to the messageFlows using the MessageRef tagged value, but also place an "instance" of the message on the diagram for the sole purpose of being able to drill down to the composite diagram of the message.
Using only "instances" of library objects makes it no problem that the instances are owned by a pool or lane, and also allows us to put it more then once on a diagram.

Geert

Mr Stuff

  • EA User
  • **
  • Posts: 56
  • Karma: +0/-0
    • View Profile
Hi Geert

I did report internally that this would be a big issue ;) My plan was not dissimilar to yours, incl. scripting (but not as sophisticated), so your reply is very helpful!

I've had a quick look at the script - it's going to be an interesting learning exercise since, whilst I am comfortable with vbscript (coming from VBA there are some gotchas but no major issues so far!0 the EA object model is new to me and I have yet to find any serious documentation on attributes/methods, so ready-made scripts or examples are great; thank you.

I think it will take a while to see how it works (clearly I need to mod Atrias references) and how to adapt it for message flows.

A number of related questions will be showing up in due course - your input would be very much appreciated.

Thanks again

Julian