Sequence diagram arrow and activation problems

0 votes
asked Jun 26, 2015 in Bug by pacheco (590 points)
edited Jun 26, 2015 by pacheco

I've found some bugs with arrows in a sequece diagram:

Bob ->x Alice +:
Bob -> Alice +:
Bob ->> Alice +:
Bob -\ Alice +:
Bob \\- Alice +:
Bob //-- Alice +:
Bob ->o Alice +:
Bob o\\-- Alice +:
Bob <-> Alice +:
Bob <->o Alice +:
Bob <-> Alice +:
Bob <-> Alice +:
Bob <-> Alice +:

[-> Bob
[o-> Bob
[o->o Bob
[x-> Bob
[<- Bob
[x<- Bob
Bob ->]
Bob ->o]
Bob o->o]
Bob ->x]
Bob <-]
Bob x<-]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 problems so far identified:

  1. [blue] After some activations (I know this is very hard-core scenario, but...) the drawing gets cropped and you cannot see more activations...
  2. [pink] Outside activations on the left are not pointing to the latest activation but to the first instead...
  3. [orange] after many activations, any arrow that should start/end in "one-not-represented-participant" (right handed side) will be drawn in a way it seems to go to one previous activation...
  4. another bug I found is with the "+"/"-" to create/terminate activations automatically... They work ok as long as you don't use them with "one-not-represented-participant" (aka "[->" for exmaple) arrow... In those cases we get an error...

Sorry to report all of this in one go, but I noticed the (4) and while generating the example noticed the other ones as well...

Thanks for all your work :)

commented Jun 26, 2015 by pacheco (590 points)
Also another minor thing, but I think is worth mentioning about the "+" and "-" syntax...
In the case of the line:
     "Bob //-- Alice +: some text"
Although fair that it activates the Bob, as the arrow is pointing to him, I would suggest the syntax to be expanded and the "+"/"-" signs to be in the correct participant. like:
     "Bob+ //-- Alice : some text"
(and maybe throw an error on the above weird syntax?)

This is more important in this case:
      "Bob <-> Alice +: some text"
Where the "+" activates Alice, which from the syntax point-of-view seems ok, but what if I wanted to activate Bob instead?
     "Bob+ <-> Alice : (syntax error)"
With my suggestion this would be valid now :)

And better, in the strange scenario of wanting to activate both, we could even do:
     "Bob+ <-> Alice +: (Activate both)"

This is just a suggestion, don't know how difficult it would be to change the parser to do this, but for sure it would make the platuml way-more-powerful :)

1 Answer

0 votes
answered Jul 15, 2015 by plantuml (194,950 points)
Hi,

Thanks for your feedback!

We are working to solve all those issues, although it will take some times.

Actually, you have pointed out several limitations of the current code, so those bugs will be solved in future teoz version (see http://plantuml.com/teoz.html ).

You can try your example while adding "!pragma teoz true". The result is not perfect (yet). We will post a message here when all will be ready.

Thanks again!
...