Will you add swimlanes to Acticity Diagrams?

+2 votes
asked Mar 27, 2013 in Wanted features by anonymous
Hi,

swimlanes tell me who is responsible for an action.

E.g. a class represents a swimlane, the method calls another method in another class, which is a swimlane on its own.

It helps to understand complexity.

Look for example to the last example in your new Activity diagram examples: There is no "separation of concern". It is hard to understand who is responsible for the actions.

I could imagine something like

swimlane
:first;
:second;
endswimlane

Best regards,

Klaus

2 Answers

0 votes
answered Mar 28, 2013 by anonymous
I would take Bonita as a model (not Activity diagrams but Business Modeling Notation):

http://www.bonitasoft.com/

It is open source.

I would not make it complicated:

* No nested swimlanes

* Just horizontal ones, no vertical

* Maybe you can adapt something what you already have

* Could be just two lines with a vertikal textbox on the side on the left

I use bonitas Business Process Modelling for source code! very often. I misuse it for this purpose. And it helps me a lot.

Everything becomes complicated in software development and my impression is in the last years more than before.

I cannot think that a programmer can cope with this situation without some modelling help.

And your tool is great for this purpose! (Very fast. I use gvim (on windows), F5 generate -> voilà).

Thank you very much. Ich will propagate it to others ...
+1 vote
answered May 22, 2013 by plantuml (298,440 points)

Hello,

In version 7967, you can use this as beta feature;

@startuml
|swinlane1|
:first;
:second;
|swinlane2|
:third;
if (foo) then
:something;
endif
|swinlane1|
:back to swinline1;
|swinlane2|
:back to swinline2;
@enduml

http://www.plantuml.com/plantuml/img/NOmn3e0W40HxNa6ffPJm6eH3BkfT0YGsFDxJn9ZGpknEhnVIuGcMhcp2KfjJja9WYaxrJngHBMCHXabFYNdMBGF9b4yGGvjJG17J_tc2gm-xRgnVXiA6vkYDkm40

Some points are still missing:

  • Title for swimlanes
  • Swimlanes separations
  • ...

Tests and feedback are welcome, especially on the syntax itself : is it really convinient ?

Thanks,

commented May 23, 2013 by anonymous
Hi,

thank you for the start!

To be more specific:

Search google images with searchwords "Activity diagram with swimlanes".

Are there any plans to add these lines?

Best regards,

Klaus
commented May 25, 2013 by plantuml (298,440 points)
Yes, this has been implemented in Version 7968

Regards,
commented May 28, 2013 by anonymous
Hi,

I am a C# .Net programmer. Not Java.

Is there any way to provide a compiled version? (I have no Eclipse ... installed.)

I will try it out.

Best regards,

Klaus
commented May 28, 2013 by plantuml (298,440 points)
You can download it here :
http://plantuml.sourceforge.net/download.html
Regards,
commented May 28, 2013 by anonymous
This is perfect!

But it is is not "swinline" or "swinlane" it is swim lane, from swimming. Imagine you are in a public swimming pool, where there are some sports guys practising for their competition - and having their own swim lane separated from others.

(My mother tongue is not English - but this is my interpretation).

Best regards,

Klaus
commented Jun 6, 2013 by anonymous
This seems not to work - the width is not adjusted. In the png-image the text gets overlapped:

@startuml
|swimlane1 aaaaaaaaaaaaaa|
:first;
:second;
|swimlane2 aaaaaaaaaaaaaa|
:third;
if (foo) then
:something;
endif
|swimlane1 aaaaaaaaaaaaaa|
:back to swinline1;
|swimlane2 aaaaaaaaaaaaaa|
:back to swinline2;
@enduml

Best regards,

Klaus
commented Jun 7, 2013 by plantuml (298,440 points)
Hello,

Thanks for the report : this has been solved in version 7969.

Regards,
commented Feb 7, 2014 by anonymous
The concept is great, but the Activity syntax feels a bit kludgy.

Aside from missing some labeling, it is very positional in nature and not as declarative as I had hoped.

I was hoping for something more like:

@startuml

swimlane Swimlane1
swimlane Swimlane2

Swimlane1.first --> Swimlane1.second : label1
Swimlane1.second --> Swimlane2.third : label2
Swimlane2.third --> Swimlane2.if (foo) : label3

Swimlane2 if (foo) then { Swimlane2.something : true }
Swimlane2.if (foo) else { : false }
Swimlane2.done --> Swimlane1.back to swimlane1 : return

Swimlane1.back to swimlane1 --> Swimlane2.back to swimlane2 : go back

@enduml
commented Feb 7, 2014 by anonymous
Is this available in the Confluence Plug-in?
commented Sep 7, 2015 by moishe (260 points)
Yes, I use the current confluence plugin and this feature is included.
asked Feb 15, 2016 in Bug by Fuhrmanator (1,700 points) Swimlanes not showing in SVG
...