6

I have a very large server program written in java. It was written by another developer who is no longer with the company and is very complex.

It is made up of 23 packages and I use eclipse.

What I want is a program that will take the source files of my program and create a kind of flow char for the functions. Start with the class that has main and follow it through which classes it calls in its constructor.

Basically I have learned that the program uses interfaces heavily and I want a visual representation of how the server functions instead of tracking through several four line function in interfaces before I get to the real processing function. a flow chart type thing would allow me to see where the function call would end up.

Does anyone know of any program available that could do this for me ?

I don't really mind what format the visual representation is in as long as it is easy to follow.

Skeith
  • 2,512
  • 5
  • 35
  • 57
  • 1
    The term you're looking for is probably [Sequence diagram](http://en.wikipedia.org/wiki/Sequence_diagram). See this Q&A: http://stackoverflow.com/questions/4470329/free-uml-sequence-diagram-reverse-engineering-eclipse-plugin-working-out-of-the-b – Bart Kiers Jul 18 '11 at 11:50

2 Answers2

2

This is what you are looking for:

http://www.objectaid.com/

Edgar Velasquez Lim
  • 2,426
  • 18
  • 15
  • The class diagrams of the ObjectAid UML Explorer are based on the OMG's UML 2.0 specification (see http://www.omg.org/uml/). They can contain existing Java classes, interfaces, enumerations, annotations (collectively called classifiers henceforth in accordance with UML 2.0) as well as packages and package roots (i.e. JARs and source folders). – Edgar Velasquez Lim Jul 18 '11 at 12:20
1

The sequence in any program of significant size is so complex that an automatic tool (if it existed) is of no use - too many trees, no forest.

It is reasonable to generate class diagrams and then manually prune them down and organize them to show the organization of the program as you discover it.

To see the real flow of the program, I recommend using debugger breakpoints and then a good profiler. Usually it's relatively easy to find a spot where something important happens - the question usually is "how does it get here?". Take notes; when you think you understand a flow well, make a diagram.

Another diagramming package that I like a lot is PlantUML. It's missing a lot of UML features, but it allows for very rapid creation of diagrams, with the concise source within the .java files, and included in the JavaDoc.

Community
  • 1
  • 1
Ed Staub
  • 15,480
  • 3
  • 61
  • 91
  • 1
    This is the method I am using at the moment but it has been 4 months and I still don't have a full grip of the system :( – Skeith Jul 18 '11 at 14:24