UML diagramming as of 8769

UML diagramming has been exposed in 8769 and looks very clean & attractive. I'm curious where this support is heading. Is class diagramming going to go beyond a read-only view of your code? Are sequence diagrams coming?

Thanks,
Jon

23 comments
Comment actions Permalink

Hello Jon,

UML diagramming has been exposed in 8769 and looks very clean &
attractive. I'm curious where this support is heading. Is class
diagramming going to go beyond a read-only view of your code?


Yes, some basic editing features are planned. What would you like to see
there?

Are sequence diagrams coming?


Not in Diana.

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

I'd just like to see visual ways to modify a class diagram, standard stuff.
Will there a way to go beyond a package to see relationships that are external to the package?

Thanks,
Jon

P.S. I'd love to see Sequence Diagrams even if crude! Basically, if Sequence is in there, that covers 90% of what my workplace does and I could see them doing the massive upgrade to V8 for that level of UML support: class & sequence.

0
Comment actions Permalink

I was just about to post asking what the installed "Uml plugin" did, then I saw this post. This looks great.

Are there any plans to show some form of interaction diagram between a module and/or project's classes? Who uses what, who is being abused etc.?

0
Comment actions Permalink

Hello Nick,

I was just about to post asking what the installed "Uml plugin" did,
then I saw this post. This looks great.

Are there any plans to show some form of interaction diagram between a
module and/or project's classes? Who uses what, who is being abused
etc.?


Whatever makes sense. :) Sticking to the UML standard is not a priority for
us, but different diagram-based visualizations of relationships between classes
are fairly easy for us to create, so I guess we're going to explore a lot
of them.

Did I mention that the plugin is open-source and we accept patches? :)
http://svn.jetbrains.org/idea/Trunk/bundled/uml/

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

I was just about to post asking what the installed "Uml plugin" did, then I saw this post. This looks great.

Are there any plans to show some form of interaction diagram between a module and/or project's classes? Who uses what, who is being abused etc.?


Isn't it what the "Analyze..." options do now?

BTW, I may be missing something totally obvious, but how exactly do you invoke the new UML feature? I am running 8733, and I can't figure out how to launch the UML diagramming mode... I just don't see it in any of the menus or buttons. can anyone please point me to it?
Thanks!

0
Comment actions Permalink

Being able to flip (vertically) the 'Hierarchic Group' layout would be nice - so that the interfaces / parent classes are on the top, and the current class that you are looking at is at the bottom.

Being able to see the users and/or derived classes of the class that you are looking at would also be very helpful.

0
Comment actions Permalink

Hello constv,

BTW, I may be missing something totally obvious, but how exactly do
you invoke the new UML feature? I am running 8733, and I can't figure
out how to launch the UML diagramming mode... I just don't see it in
any of the menus or buttons. can anyone please point me to it? Thanks!


Please download the latest build from http://www.jetbrains.net/confluence/display/IDEADEV/Diana+EAP

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Ctrl-Shift-Alt+U starting from build 8769
Right now you can view UML diagram for classes and packages (works in
package view). In the second case you can see all classes in a package and
relationships between them.

Konstantin
JetBrains, Inc.


"constv" <no_reply@jetbrains.com> wrote in message
news:6482018.118541220893299816.JavaMail.jive@app4.labs.intellij.net...
>>

>> I was just about to post asking what the installed "Uml plugin" did, then
>> I saw this post. This looks great.
>>
>> Are there any plans to show some form of interaction diagram between a
>> module and/or project's classes? Who uses what, who is being abused etc.?
>

Isn't it what the "Analyze..." options do now?

>

BTW, I may be missing something totally obvious, but how exactly do you
invoke the new UML feature? I am running 8733, and I can't figure out how
to launch the UML diagramming mode... I just don't see it in any of the
menus or buttons. can anyone please point me to it?
Thanks!



0
Comment actions Permalink

BTW, I may be missing something totally obvious, but how exactly do you invoke the new UML feature? I am running 8733, and I can't figure out how to launch the UML diagramming mode... I just don't see it in any of the menus or buttons. can anyone please point me to it?
Thanks!


Oops, silly me! Just noticed that it was introduced in 8769, and i am still using 8733. D'oh! :)

0
Comment actions Permalink

Jon,
I'm planning to finish as much as possible things for navigation between
UML nodes and source code. Main goal of current implementation of UML plugin
is to help developers to learn unknown source code by viewing inheritance
relationships on diagrams. Things that are work right now (all of them are
in SVN, but I'm not sure they are in the EAP):
Shift+F6 (Rename), Navigate to (Enter or F4), Move (F6), very useful
Ctrl-Alt+B (finds and adds on the diagram subclasses and realizations of
interfaces), etc

I'm not sure sequence diagram and UML diagram editing will be pretty soon,
but they will.

Konstantin,
JetBrains, Inc.



"Jon Steelman" <no_reply@jetbrains.com> wrote in message
news:32937020.117441220885521070.JavaMail.jive@app4.labs.intellij.net...

UML diagramming has been exposed in 8769 and looks very clean &
attractive. I'm curious where this support is heading. Is class
diagramming going to go beyond a read-only view of your code? Are sequence
diagrams coming?

>

Thanks,
Jon



0
Comment actions Permalink

Hi Konstantin,

The UML support is a very useful feature, and, I am sure, most IDEA users can't wait to have it fully enabled. From what I have seen so far, and based on your post, the current functionality is limited to simply illustrating the inheritance relationships. I am surprised to see that it does not even include Composition. That is, I can't see the relationships between the class and other classes whose instances are properties of the given class. In other words, a UML diagram - in the current implementation - does not offer anything that the Structure pane doesn't already show e.g. inherited properties and methods. Can't imagine that anyone will find this useful at all, at this point.

IMHO, at the minimum, IDEA should offer the capability to select a package or multiple individually picked classes (in the Project or Packages pane) and produce a class diagram that would include all the selected classes in the package with their relationships. Here's a typical scenario:

1) User right-clicks on the package name in the Project or Packages pane... or
2) User selects multiple classes in the Project pane, right-clicks...

then, choses the "Generate Class Diagram" option in the pop-up menu. IDEA displays the class diagram with all selected classes and relationships. Dependencies on other packages (that are not selected) may be shown as package boxes connected to a class with a "depends-on" link. (This can be turned on/off with a tool button: "show package dependencies", something like that; the same goes for "show composition" and other types of relationships.)

It would be nice to be able to individually add or remove classes, add/remove text notes, etc. - for an existing diagram. That, of course, implies that you'd have to be able to persist diagrams in external files.

The "Simple UML" plug-in has been doing this for years, except its usability is not up to par.

Sequence diagrams would be nice, of course. However, more than anything, I would like to see a good support for class diagrams - that is actually useful. I am sure many IDEA users would agree.

Thanks, and keep up the good work!
Constantine

1
Comment actions Permalink

Ctrl-shift-alt-U doesn't do anything for me in 8769 on Win XP.

0
Comment actions Permalink

+1.

The only way I can get the UML functionality is within the editor - for the given class only, via a context menu (right-click in the editor.) All I see is a simple Inheritance diagram.

0
Comment actions Permalink

Am I missing something or UML diagramm does not derive associations only
inheritance and inner classes?


0
Comment actions Permalink

+1

also have a look how Code Navigator plugin does it: http://plugins.intellij.net/plugin/?id=3202

0
Comment actions Permalink

Hmm. seems it wasn't commited into this eap. Wait a little for the next eap.

"Norris Shelton" <no_reply@jetbrains.com> wrote in message
news:5382951.120101220904624752.JavaMail.jive@app4.labs.intellij.net...

Ctrl-shift-alt-U doesn't do anything for me in 8769 on Win XP.



0
Comment actions Permalink

The priorities are the following:
1. Class diagrams (inheritance + additing of new entities onto a diagram
(CtrlAltB, etc))
2. Simple Node/Edge creation/editing
3. Flexible Find Usages on diagrams (elements highlighting, associations,
relations )
4. Advanced Node/Edge creation, sequence diagrams

We're doing our best for features from 1 to 3 will be in 8 release.
"Alex Roytman" <nospam@domain.com> wrote in message
news:ga4os8$8u1$1@is.intellij.net...

Am I missing something or UML diagramm does not derive associations only
inheritance and inner classes?

>



0
Comment actions Permalink

Does point 1 also include associations?

for example:

public class User {
private FirstName firstName;
}

When using the UML diagram, no line is drawn between the user and FirstName class. Btw, what's the reason for adding it to the package view, and not to the 'project browser' ? I never use the package view, so I had to use this forum to find this (potentially) very useful feature.

0
Comment actions Permalink

Hello Erik,
No, but point 3 does.

Answering on your second question, it's already fixed. CtrlShiftAlt+U and
appropriate popup menu action are available on all views. You also can
perform it on libraries, tests, etc.

Konstantin Bulenkov
JetBrains, Inc

"Erik Pragt" <no_reply@jetbrains.com> wrote in message
news:2999783.140111221222902268.JavaMail.jive@app4.labs.intellij.net...

Does point 1 also include associations?

>

for example:

>

public class User {
private FirstName firstName;
}

>

When using the UML diagram, no line is drawn between the user and
FirstName class. Btw, what's the reason for adding it to the package view,
and not to the 'project browser' ? I never use the package view, so I had
to use this forum to find this (potentially) very useful feature.



0
Comment actions Permalink

This is, by the way, an awesome plug-in that does reverse-engineering to UML brilliantly! I love how it composes the diagram layouts, and redraws them nicely each time you make a change. A few things could be made a bit easier to use (e.g. improving/simplifying the setting of some options that control which classes and associations get included into the class diagram, etc.) but even in its current form it does a lot and has great flexibility. Shame on me for not discovering this plug-in for so long! It is probably due to the name - Code Navigator. The name just didn't poke my curiosity enough. I thought it was just another code browser/explorer kind of thing, and just skipped over it each time... It is an excellent, very useful, very well-designed plug-in! Many thanks to the author, Frank Gerberding!

BTW, with this plug-in already available, shouldn't JetBrains just work together with the author to make it a standard feature in IDEA?

0
Comment actions Permalink

I still can't figure out how to see the diagrams. I'm using #8823 on OS X.

I don't see any options in the context menu (right-click), and the shortcut isn't working. In fact, I don't see any shortcut that contains the text "uml".

Tobin


Answering on your second question, it's already fixed. CtrlShiftAlt+U and
appropriate popup menu action are available on all views. You also can
perform it on libraries, tests, etc.

0
Comment actions Permalink

Hello Konstantin,

i'm using the latest EAP (8987) and i have a few suggestions :

- first of all, excellent work :)
- add support for associations (like it's been said before)
- add cardinality support especially for non-generic collections (just look how it's done in Together, ask around ;) )
- hide by default classes from test sources
- hide by default common JDK classes or interfaces : Object or Serializable
- hide by default serialVersionUID fields
- add a button to show 'properties' like in Structure window (the violet P)

I will post more soon...

Gilles

0

Please sign in to leave a comment.