It's unfortunate that programmers come and go at an alarming rate in the IT industry, leaving code that must be maintained by someone who quite frequently had no hand in writing it. Software engineers using UML have models on how their programs behave, but the rest of us are left to read through reams and reams of methods. Most of the time all you need is an overview of how the program is made up, not the finer details.
Java-Miner
CAST's Java-Miner provides a graphical "roadmap" of Java packages, classes, and their associated methods and constructors. As the saying goes, "A picture paints a thousand words"; this application can tell the whole story behind Java classes in a way that's easy to interpret.
Installing and Using Java-Miner
Installation is straightforward. A self-installing package can be downloaded from CAST's Web site (it's a 15-day evaluation) or it can be installed from the distribution CD. The Help documentation is also installed onto your system, so you can use Help and program simultaneously.
Java-Miner works via a series of wizards that guide you through the process of loading in a Java application to view. When starting the program you're asked whether you want to load an existing analysis or create a new one. Creating a new analysis is a simple process, again using a wizard to gather the required information. A project name is required, which becomes the XML output filename. This, by default, is saved to the root directory of the "C" drive on your system, so it's very important to use the directory-browsing function to place the output files somewhere sensible. In my opinion, this is a big oversight and perhaps a default directory should be included somewhere in the proceedings. Within this wizard the Java source files and associated classpaths are added. Once the "Start" button is clicked, Java-Miner will analyze the packages and create the roadmap.
An object browser provides a dropdown view of the analysis you're working on. Many IDEs work this way so most people will easily make sense of this. The graphical layout is basically a large blank workspace that's scrollable. Within this area you can zoom in and focus on specific components or zoom out for an overall picture. These graphical views can be output to a printer for a permanent copy of the analysis.
Working with the analysis is easy, but the blank screen is a little off-putting to the new user. I expected to see some sort of roadmap on-screen, which could be customized as required. Instead the user is expected to drag the object onto the output screen, which drops the object onto the roadmap. It's up to the user to expand the other methods and constructors of that object by right-clicking and then selecting "Expand." The parts of the object will appear and link together. The expanded links provide a wealth of information about where methods are called from and which objects they belong to (see Figure 1).
Figure 1
For a programmer looking at some code for the first time, it's an enormous benefit to be able to learn the program structure without reading through pages and pages of source code.
With large applications the amount of detail on the roadmap can be overwhelming, so you can tailor the amount of detail displayed by setting up a series of layers. For example, you can create a layer to display the relationship links between the methods and another layer to display the objects, not the methods within them. Another useful feature is Java-Miner's ability to work its way through a batch of objects and show a roadmap from one specified method to another. So if you know that an object references a method but can't see how, let Java-Miner do the work for you.
Summary
My first impressions were positive, though I was a little surprised about the file locations that Java-Miner was using; with a little planning this won't be a problem for most people. For those who need to maintain a working application in which time is precious, Java-Miner may be the answer.
Product Snapshot
Target Audience: Java programmers, business analysts
Level: Beginner to advanced
Pros:
Easy to use
Graphical roadmaps are easy to read.
Cons:
No default directory; used defaults to the root directory
CAST
3, rue Marcel Allégot
92 190 Meudon
Paris, France
Phone:+33 1 46 90 21 00
Fax:+33 1 46 90 21 01
Web: www.castsoftware.com
Test Environment
Computer: Compaq Presario 1920 Processor: 300MHz Pentium III
Hard Drive: 4GB
Memory: 64MB
Platform: Windows ME
Specifications
Platforms: Windows 98, 2000, or NT 4.0
jasonbell@sys-con.com