Formal analysis of UML diagrams

0 votes
asked Sep 16, 2019 in Question / help by aherranz

I am interested in the semantics of UML models, in particular in the "static analysis" of them.

If I wanted to add these kind of functionality to PlantUML, how could I collaborate (if PlantUML team is interested)? what would the best way to do a fork (if team not interested)? is github repo the right resource? who is "leading" the project? how I can contact them?

Thanks in advance.

PS. I have tried to find this information in the web but I was unable. Sorry if I missed it.

1 Answer

0 votes
answered Sep 17, 2019 by plantuml (226,400 points)
A possible option could be the use of an intermediate format such as XMI (see )

This way, you would do your static analysis on XMI file generated by PlantUML. What do you think about it ?
commented Sep 17, 2019 by aherranz

I hate xmi ;)

Less subjective rationale:

  • documentation says "This is only working with class diagrams." and I want to integrate, at least, class, object, state and sequence diagrams.
  • you give away a free license if someone is able to generate a XMI file that works Argo and Star, this is the symptom of a serious illness. I trust your internal AST to represent UML concepts.
  • textual human oriented syntax, like that used in Plant, favors the integration of models and model documentation in the development process.
I would prefer to introduce a magical --check or --verify flag that just verifies the consistency of several models given through several diagrams (an object diagrams can be consistent with respect to a class diagram, a sequence diagram can be consistent wrt to a state machine diagram, etc.).
commented Sep 17, 2019 by plantuml (226,400 points)
We are not fond of xmi neither....

However, adding a magic flag that would check consistency of several models is really out to scope of the PlantUML library.

Your idea is nice but it should be an external tool that would do this kind of check.

That's why we need an intermediate format (xmi or anything we may define). PlantUML would read usual .puml files and then generate some file(s) using this new format. This new format would be very easy to parse for you, so that you can do whatever check you want to.

Do you get the idea ? Is this something that makes sense for you ?
commented Sep 18, 2019 by aherranz (100 points)
I get it. I'll think and decide about using part of the infrastructure you already have in Plant or starting a completely new project.

Anyway, is there any description of the grammar of PlantUML files? (something I want is to use the same syntax in order to be able to generate diagrams.

PS. I love this tool! Thanks!