Welcome to PlantUML Q&A, where you can ask questions and receive answers from other members of the community.

You can also submit new features request and vote for them.

Plans for BPMN support

0 votes

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:


asked Mar 11 in Wanted features by lemurek (160 points)

1 Answer

+1 vote
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!
answered Mar 17 by plantuml (118,230 points)
selected Mar 17 by lemurek
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?
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
:show new message1;
resume 20
:show new task2;
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...
Support This Project Offer 250 Mo! Follow PlantUML on Twitter