Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I know about Omondo's plugin for live code-UML synchronization in Eclipse, but I was wondering if there was any other tool/IDE/IDE-extension that has some form of live graphical code representaiton (structural, flow, call-stacks, dependencies, etc.).

I'm essentially looking for richer visual feedback on code while programming, not really looking for purely graphical code editors, though round-trips would be nice (edit graphically, code gets modified; edit code, representation gets modified).

If you don't know about any graphical live documentation tool for code, maybe someone that can coexist with code, such as MySQL Workbench or Enterprise Architect.

EDIT: Please, original answers, meaning other tools different than what I quoted (even if they are similar to Omondo, MySQL Workbench and Enterprise Architect).

EDIT 2: I found Netbeans' C/C++ call graph:

enter image description here

share|improve this question
    
What information are you looking to get out of your code? Complexity? Where the bugs are? How finished it is? Whether it's symmetrical? It's hard to know what kind of visualization to suggest without understanding what you're trying to discover. –  Alex Feinman Jan 3 '11 at 18:31
    
Edited. I'd guess mainly something structural that helps visualize a program beyond a file, but as long as its live I'd guess it would be what I'm looking for... which yes, is somewhat vague but I'm guessing any answers will be interesting (true so far), so really didn't want to limit the answers. –  dukeofgaming Jan 3 '11 at 18:56
add comment

closed as off-topic by gnat, MichaelT, GlenH7, Kilian Foth, Bart van Ingen Schenau Sep 26 '13 at 7:51

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – gnat, MichaelT, GlenH7, Kilian Foth, Bart van Ingen Schenau
If this question can be reworded to fit the rules in the help center, please edit the question.

6 Answers

up vote 5 down vote accepted
+50

IntelliJ Idea is able to show UML class diagrams of Java code on the fly:

UML class diagram... lets you quickly examine your application structure either on class or package level.

You can view, create and delete packages, classes, class members and ther relationships. Convenient one-click navigation lets you jump from the diagram to the underlying code.

Live Demo

Also, many of IntelliJ IDEA refactorings can be applied directly from the diagram, via shortcut menu.

  • Quick Class Hierarchy View Using UML
    You can use the Show Class Hierarchy action that displays class hierarchy of a selected type. Just place the caret at any type in the code editor and press Ctrl+Alt+U... http://www.jetbrains.com/idea/features/screenshots/90/uml/Quick-Class-Hierarchy.jpg
share|improve this answer
    
You picture shows only inheritance and implementaton relations. Is it also possible to visualize composition for example? –  Mchl Jan 11 '11 at 10:02
    
+1 Thats the kind of thing I am looking for. –  dukeofgaming Jan 12 '11 at 4:29
    
@mchi: no, I only know about this diagram type. –  9000 Jan 12 '11 at 9:10
add comment

Not sure if it's available for Eclipse, but you might want to check out code maps. They are sort of like an architecture layer diagram, with links from the sections to either the code that implements the feature in the diagram or to another diagram with more detail (that is also navigable). You can zoom in on a particular feature, or zoom out to see how a feature interacts with other features, or where it stands as part of the entire system. There is supposedly a Visual Studio plug-in called Code Canvas that can create a code map from a project. There is also an Eclipse project called Code Bubbles. I haven't used either one, although I did use a similar VS plug-in for awhile.

share|improve this answer
add comment

While it is not a complete solution, I lean towards GraphViz for such visualizations. It isn't turn-key, you'll need to do some (simple) coding, but you can tune it and adjust it according to your requirements.

GraphViz provides a very simple language called Dot. You simply write a simple filter for your source code to generate the Dot file. You call the dot command against this file and you have yourself a pretty graph!

I set a macro in my text editor vim to run dot and have at times set it to run from the system scheduler (cron).

There are also books (check Amazon) about visualizing data that might be handy, if you choose to roll-your-own: Visualizing Data, Data Visualization, GraphViz.

share|improve this answer
1  
+1 For mentioning GraphViz as a resource. I know GraphViz, I wish more tools used it to provide better visual feedback. For example, yUML is implemented with graphviz behind yuml.me/diagram/scruffy/class/draw –  dukeofgaming Jan 13 '11 at 3:50
    
+1 This is a great solution and you can easily link it to doxygen which generate you documentation. –  Sardathrion Mar 9 '12 at 8:56
add comment

The best is Omondo for me because it has the incremental merge that other tools does not have. EA is a good tool for traditional modeler but not for programmers which need to model at the same time. I mean that Omondo merge Java and UML ids while other tools generate code from model. You then don't have any relation between the generated class and its model. This is like stupid but it seems to me that MDD code generation is a like a mum giving birth and then forgetting about her child :-)

I think that as parents we have the obligation to raise our children like we do our project from creation to delivery and not just pop a MDD code !!

share|improve this answer
add comment

The utlimate tool is probably Enterprise Architect from Sparx Systems which is fully integrated to both Eclipse and Visual Studio.

You can synchronize your code with diagrams. Change your code and it will be reflected on diagrams. Change your diagrams and it will be reflected on code.

share|improve this answer
    
EA rocks, it's even fairly inexpensive considering what capabilities it gives you. –  Ken Henderson Jan 9 '11 at 0:15
    
I never understood why it was so cheap –  user2567 Jan 9 '11 at 0:30
add comment

Subtext is a purely graphical programming language. That is, the "source code" is itself a diagram -- there is no "underlying textual representation".

If you're looking for something to visualise existing code in some existing language, this won't help, but you might find it interesting :)

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.