cimug-org / CIMTool

CIMug's CIMTool for the Common Information Model (CIM).
http://cimtool.ucaiug.io/
GNU Lesser General Public License v2.1
40 stars 5 forks source link

Add support for visualizing UML class diagrams for a profile definition. #143

Closed admin-cimug closed 3 weeks ago

admin-cimug commented 3 weeks ago

There has been a long standing need to be able to provide some type of UML Class diagram that reflect a graphical view of a profile definition within CIMTool. Additionally, it would be ideal to be able to make such a view available as a .png, .svg, or other format that could be utilized outside the context of CIMTool such as in IEC publications, custom documentation or in GitHub sites where such a view would be useful depending on the repository and its purpose.

We know that as part of our long range DevOp discussions that we would like to leverage AsciiDoc in future workflows for generating publications for various purposes. It would be beneficial if CIMTool could produce artifacts beneficial towards this end and the long range vision. PlantUML/Ditaa are a couple of options that would fit this objective.

What this issue is intended to track is the following proposed enhancements to CIMTool:

  1. Minimally, create an implementation of a PlantUML builder (NOTE: this would be one of a number of potential options but the first one with which we will experiment)
  2. Support annotations to hide a class, an association, all of a class's attributes, or just the individual attributes for a class and to hide such elements from what is finally displayed within the profile's visualized diagram generated by CIMTool. These annotations should be for internal purposes only and should not be relevant in any other context.
  3. Explore potential export options in SVG, PNG, JPG, etc. and determine initially what we might be able to support in a "first round" of enhancements in this area.
  4. Explore as part of this development effort if we can integrate within CIMTool a new tab for dynamically visualizing the current state of a profile as it is being built out. This is more of a wish list and may not be necessarily possible in this "first pass".
Sveino commented 3 weeks ago

I have looked a the PlantUML before, and it looks very promising. I think it is a great idea. It would be good if we are enabling some basic editing possibility and create the functionality of generating diagram and export them as SVG, PNG, JPG as serviced that we can use as part of DevOps. We do not necessary need to develop all relevant UML support, but focus on what we are doing. Another topic is that we might consider including Draw.io as part of CIMTool so that one installation can support everything we need to develop the CIM standard. We have then one version to be aligned with, the CIMTool version :-)