At the beginning, capabilities were very limited. The layout engine used for Sequence Diagrams was pretty simple, but this was enough to do basic diagrams.
Then more and more people begin to use PlantUML and ask for new features. We add those features (group, activation, note, encompass...) by adding some code in the existing layout engine, but we did not change its roots.
So you know the story : the code is getting more and more complex. It begins to be difficult to maintain. The initial simplicity is gone, because some initial architecture decisions were not good regarding the new capabilities.
Moreover, some features (especially for parallel message, see pending wanted features) are almost impossible to implements with the current "Puma" architecture.
This is the bad news.
The good news is that we are willing to overcome those issues.
So we've read many things about design patterns to define a better software archicture. And we need some courage too:
- Hey coders, have you read about all crazy features users would love to have ?
- Yes, but it's quite impossible to do with the actual code!
- It would mean that we have to rewrite a large part of the existing code, that works fine!
- And we will have to ensure ascending compatibility!
- The tests are going to be very long! You must be kidding!
- No, the show must go on.
By default, the old "Puma" layout engine is still used, but you can turn on Teoz engine using some
!pragma directive :
@startuml !pragma teoz true Alice -> Bob : hello & Bob -> Charlie : hi @enduml
&) is a good idea.
So we need feedback from the community: please use the Q&A forum, putting a Teoz tag in your questions.
We would like to have a complete overview of what users wants to do, to be sure to design some Teoz engine able to handle all new features.
Thanks for your feedback!
HOME NEWS MAP