Business Process Model and Notation (BPMN)

This is preliminary works to add BPMN support in PlantUML.

Right now, some quick stuff have been done.

The implementation is based on ideas developped in: * kitzmann2009a.pdf * A Simple Algorithm for Automatic Layout of BPMN Processes

[Ref. Wiki-BPMN]

Final examples

@startbpm
:login;
20:<+>
:show new message1;
30:<+>
resume 20
:show new task2;
@endbpm

[Ref. QA-5647]

@startbpm
:login;
new branch
:show new message1;
else
:show new task2;
end branch
new branch
:Accept Task;
else
:nothing;
else
new branch
:read message;
else
:dummy;
end branch
end branch
:logout;
@endbpm

[Ref. Wiki-bpmn]

Existing diagrams

Please put here pointer existing diagrams that you’d like to have supported in PlantUML.

Start with simple examples!

This PDF gives a good overview of the BPMN2.0 syntax. It basically boils down to boxes, circles and lines plus swimlanes. So it is close to an activity diagram.

All shapes can be "decorated" with symbols. These add some more detail, but are not necessary to get an overview of the process. This fact should be reflected in the syntax - it should first let you design the process and then add the details.

Syntax

The proposed syntax is probably not very clear.

Here we have to talk about it and propose a better one.

There are rules for good diagrams which might make the syntax easier to create. One of these rules is that when you split the process- (token-) flow, it will be merged back together with the same symbol.

There is also the feature of "closed" swim-lanes - swim-lanes where the content is not shown because the detailed process is not known or you want to focus on other parts of the diagram. It should be reflected by the syntax that a swim-lane can be opened and closed with just a switch.

Example1

bpm01
@startbpm
XXXX
@endbpm

Example2

bpm02
@startbpm
XXXX
@endbpm

Example3

bpm03
@startbpm
XXXX
@endbpm

Other theorical works

The following BPMN Layouter project may be interesting. link::jjc-mt.pdf[jjc-mt.pdf]