Language Review

Hi again,

to discuss a language structure and other aspects in the team it would be nice if one could export it as kind of a "concept diagram" (maybe comparable to UML class diagram). Is there any way to do this?

Thank you in advance,
LaAck
8 comments
You can view a very simple diagram of your language by opening its context menu and select Analyze -> Language Diagram. Unfortunately it has no UML syntax and the contained information are very few. Perhaps someone likes to extend this view.
I use the plantuml plugin which comes with mbeddr to visualize the models, which I can build with my language. I guess its not so much effort to use this technology to implement a language overview as UML class diagram. Unfortunately you can't use the visualization framework without installing the whole mbeddr platform at the moment. I have already filed this issue: https://github.com/mbeddr/mbeddr.core/issues/643
You can see the plantuml features of mbeddr in this video: https://www.youtube.com/watch?v=QjwXITp6fwg
0
Thank you very much for the informative response. The visualization of the model, created with your own language, itself would also be nice and I'm looking forward to see this feature integrated in MPS.
However I think that reviewing the language structure would be much easier with a more expressive graphical visualization. It does not necessarly need to be UML, though it would be no problem to map most of the paradigms of the language structure to a class diagram. But at least the interfaces could be a challange since in MPS they seem to have more semantics than in UML (e.g. parent-child relations).

Ok, I have one question to model visualization using mbeddr. Did I unterstand right, that you create models using a language defined in MPS and somehow import them into mbeddr? Or do you import your language into mbeddr (I don't know much about mbeddr, yet).
Thank you again in advance!
0
Since language concept's attributes, children and references have no visibility the visibility syntax could be reused to separate between this elements. So I think a class diagram could express all information. Although the composition and aggregation are the proper expression for children and reference relations, I doubt that the diagram will have a clear layout with such connections.
If you create your own diagram syntax you have to build all the visualization stuff from scratch.

To use the mbeddr plantuml bindings you have to install the mbeddr platform plugins first. Now you will find a concept interface IVisualizable and the class VisGraph in the modules pool. The concept of each node, which should be visualizable, must implement the IVisualizable interface. This will create context menu entry in the editor. A special VisGraph class must be created to collect the information from the AST and serialize them into a proper string with plantuml syntax.

I would support such a project, because I would like to have such diagrams for documentation, too. But it would be great if the mbeddr developers could provide a modular plantuml plugin. Otherwise we would have to fork the whole mbeddr project. Is any mbeddr developer around here?
0
The mbeddr platform, available from

   https://github.com/mbeddr/mbeddr.core/releases

contains a plugin for plantuml. YOu can visualize any diagram you
want simple by creating the plantuml string from your model.
See here:
  http://mbeddr.wordpress.com/2013/02/14/visualizations-reloaded/
0
Hello Markus,

Thanks for your attention! The plugin works quite good but it is unfortunately packed with all the other mbeddr stuff, which is a big overhead just for a visualization. I've had a closer look to the dependencies of com.mbeddr.plantuml.pluginSolution. It depends on com.mbeddr.core.base just because of the concept IVisualizable and the classes VisGraph and MbeddrURLHelper. Only the latter one seems to be used for something else than for visualization. But I guess it will not waste the structure of your project if you move these concept and classes to a particular language and provide it together with the pluginSolution in a ZIP file.
Of course I could fork mbeddr. But I think it will be hard to join these structural changes after a while.
It would be great if you could help us with this problem!
0
We do understand that we need to untangle these things. Unfortunately we currently really don't have time for that. One problem is that changing the build structure is a MAJOR pain, and we don't do that anytime soon.

So you either have to use the mbeddr.platform and ignore the stuff you don't need, or you'll have to fork.

Sorry.
Markus
0
Hello Markus,

thanks for your reply and the hints. I will try mbeddr with the plantuml plugin you mentioned.

Regards,
LaAck
0
I have created a simple language and VisGraph class, which generates PlantUML class diagram using the mbeddr platform without any modifications. It is available at https://github.com/maystar/LanguageVisualization
0

Please sign in to leave a comment.