Answer 2 on 2012-03-10:
Answer 2 on 2012-03-07: I replaced the diagram. The possibilities to control the layout are limited. How much control is needed?
Answer 2 on 2012-02-29: What characteristics of a UML sketching and documentation tool are required to make it useful in the design and programming process?
Answer 1 on 2012-02-24: I have started to make a tool.
Question on 2012-02-12: Does it exist a tool to automatically generate UML-diagrams from Matlab m-code? If not I plan to make a simple tool.
=====================================
I want an automatic tool to generate UML diagrams from MATLAB code. Thus, I ask for your comments on the following idea. Is is worth to try? Is there already such a tool for MATLAB? There are for other languages.
Currently, I sporadically use the interactive tool UMLet, which is really easy to use. However, I don't update the diagrams when I make changes to my MATLAB-code.
The idea is to put together a tool that consists of three parts
I have looked at the three open source tools, TextUML, UMLGraph and PlantUML. I have experimented a bit with PlantUML and picked that.
I hope to get something working in a short time. However, there is a tool, PlantUML Dependency, which creates code for PlantUML from Java-code. It's many lines of code!
There are a number of contributions in the File Exchange. I'll study them.
Here is a list of the tools that I've found.
Maybe, The Mathworks has a tool that can be contributed to the File Exchange. However, I assume that this UML Class Diagram is not generated automatically.
No products are associated with this question.
I've done some experiments with PlantUML+Graphviz. My Matlab tool automatically generates PlantUML-code based on the m-files. This class diagram is based on the classes, which are provided in the FEX-contribution "Class Inheritance Browser". (I can use some advise on including pictures.)
UML diagrams can include a lot of detail. How much detail is useful? How do I extract the needed information from the Matlab-code? I know of meta.class.fromname, profile('info'), evalc( 'mlint( ''-calls'', filespec )' ); and my tracer4m.
Is it a good idea to write "UML-code" in the comments of the m-files for this tool to read? Is there a "language" that I could borrow from? (V) in the diagram stands for value-class.
UML-diagrams for real programs easily becomes so huge and cluttered that they are useless. Would it be a good idea to include "UML-code" in comments of the m-files, based om which it is possible to filter the diagram, e.g conditionally exclude unimportant classes?
I need help to make a useful tool and FEX-contribution!
The Taxi class has two sets of properties and methods. I have to find out why!
2010-03-07: I replaced the diagram. (S) stands for Singleton.
================
I incude a Class Diagram that I just generated automatically. It shows some classes from an experiment I did last year. The red square in ICE_waitbar indicates that it is a singleton; the constructor is private. The last thing I did was to suppress displaying of inherited properties and methods. (H) stands for inheritance from the handle class. I don't want a separate box for the handle class.
The associations between State and IceProxy looks a bit strange. (I cannot do much to the crossing arrows!)
Now, I'm need to think about the requirements. What would be useful and what not. Goals:
Would it be a good idea to include "significant comments" in the comments of the Matlab source code? That is to say short strings preceded by some special character, e.g. "¤". For example, I thought about the codes "¤L1", "¤L2" and "¤L3" (level 1,2 and 3) to use a bit like outline view in Ms Word. A class at level, L3, would not be included in an overview. From there it is easy to envision a set of keywords forming a kind of language. Multiplicity might be specified with a "significant comment"
-
1 Comment
Direct link to this comment:
http://www.mathworks.com.au/matlabcentral/answers/28195#comment_64962
http://www.jgraph.com/jgraph.html might be of interest too.