Plans for BPMN support

+15 votes
asked Mar 11, 2017 in Wanted features by lemurek (120 points)

Are there any plans to extend PlantUML Component diagram with BPMN Semantics? I'm not sure if existing model could be extended, as possibly some of the alignment semantics seem to be incompatible between the formats. However I would find it very useful to be able to describe Business processes in Plant UML. Possibly it could be introduced as a different diagram model (@startBPM).

If you check examples on http://www.bpmn.org/ BPM diagrams are somewhere between activity and component diagrams. If I compare them to Component diagrams I can see only few differences. I included my very high level assesment of each of the elements, mostly to show why I believe 90% of the support can be added with little to medium effort. 

  1. Nodes: In addition to Actors/Components
    • Events (start, stop, terminate, trigger, message, etc.) are first class citizens
      Critical, easy
    • Control nodes - a bit tricky, but activity diagrams already deal with them
      Important, medium
  2. Lanes  
    • Default flow is from left to right with left edges of lanes aligned to the left, with Event being the first Component.
      Critical, easy
    • Communicating components should be also 'rougly' aligned on neighbouring lanes
      Important, medium
    • Communication between lanes is done via Component-->Event nodes, it doesn't need to be enforced tough.
      Important, medium
  3. Edges
    • Axis oriented tracing of all lines (activity diagram has this already implemented)
      Important, easy
    • You could consider adding few extra types of lines, as they seem to have specific semantics in BPM world
      Nice to have, easy
    • Message symbols on the edges
      Nice to have, difficult

An interesting example that illustrates most of above requirements:

https://www.businessprocessincubator.com/content/the-nobel-prize/

3 Answers

+5 votes
answered Mar 17, 2017 by plantuml (294,960 points)
selected Mar 17, 2017 by lemurek
 
Best answer
It sounds like a nice idea. The major issue is that GraphViz/dot will probably not be able to layout such diagrams.

So we probably need another engine.

We will have a look at https://www.researchgate.net/publication/221542866_A_Simple_Algorithm_for_Automatic_Layout_of_BPMN_Processes

Unfortunatly, the are probably a lot of work to be done here, so do not expect anything in short/medium term. Sorry about that!
commented Mar 17, 2017 by lemurek (120 points)
As I mentioned most of the alignment challenges seem to have been solved in Activity diagram. Which aspect of alignment do you find the most challenging ? Would it be possible to provide remaining features, and limit alignment scope just to lanes alignment?
commented Mar 20, 2017 by plantuml (294,960 points)
It's difficult to explain in few lines, but the layout algorithm we have implemented for Activity Beta (this is not using GraphViz) won't work for BPM :
- It cannot manage goto
- It does not manage swimlanes. Even if Activity Beta does handle swimlanes, it's actually an illusion : we actually print several times the same diagram (hidding some elements) to simulate swimlanes. So we have limited choice here.

We really want to give a try with the grid notion explained in this paper https://www.researchgate.net/publication/221542866_A_Simple_Algorithm_for_Automatic_Layout_of_BPMN_Processes

Don't worry : we are going to reuse many code written for Activity Diagram. It's just that the layout engine will really be different.
So we are going to make some test with @startbpm
Not sure of the result...
If you are really curious, you can try
@startbpm
:login;
20:<+>
:show new message1;
30:<+>
resume 20
:show new task2;
@endbpm
with last beta https://www.dropbox.com/s/koo42q3d9gxw288/plantuml.jar?dl=0
However, please be patient : we'll post a new message here when we will have some better results...
commented Oct 7, 2017 by tiberriver256 (100 points)
Just want to say thanks @plantuml. This is going to be awesome.
commented Nov 2, 2017 by lemurek (120 points)
Hi!

Thank you for all the effort! I know that this one is a tough nut to crunch, but I do believe you'll get it working eventually!

All the best!
commented Dec 19, 2017 by acolisys (100 points)
Hello, pals ! This will be a really, really amazing feature if successfully added to plantUML ! Have been using third-party software just for this purpose (Modelio, Visual Paradigm), wish you total success in this initiative, I'll be tuned for your news ! Very best regards from Brazil !
commented Mar 18, 2019 by anonymous
Do you have any update about this support?
commented Dec 6, 2021 by markusr
why not introduce a layout grid. sometimes you want to define symbols at the same horizontal or vertical position.Imagine you could add a row and column postition of just the objects you want them to appear at a certain position.
0 votes
answered Dec 3, 2019 by anonymous

If you are trying to use text to draw visual BPMN diagrams (with swimlanes) which can be also exported to standard BPMN/XML, take a look at the BPMN Sketch Miner.

0 votes
answered Feb 4, 2021 by lockywolf (400 points)
commented Mar 26, 2021 by Paulo Tavares
Thank you for this example.

Do you know where can I found the full specification?

Thank you.
commented Mar 26, 2021 by plantuml (294,960 points)
Unfortunately, this feature is frozen.

It's not really ready to be used in real-world project.

Sorry about that !
commented Jan 9, 2022 by soloturn
plantuml activity diagrams "partitions" cannot handle it?
...