June 06, 2013, 4:50 PM — Once you get past "Hello World," code can become very complex. Programmers in business environments must often deal with code written by dozens of developers over a span of many years, often with shifting standards for design and documentation. Even a simple bug fix or enhancement can involve tracing through a maze of twisty little subroutines, all alike. JArchitect is a powerful tool for mapping that maze.
JArchitect can analyze a code base, applying dozens of different default metrics to provide both statistical analysis and pinpoint likely areas in need of refactoring. The reports are exhaustive, and relatively easy to understand and drill down into.
It takes some time to learn what's most important and what isn't for your project and needs, but JArchitect provides a high level of customizability that can help with that, too. A query language called CQL allows you to define tests and constraints, so you can apply your code standards instead of JArchitect's defaults.
JArchitect displays the information it gathers in a variety of ways, from graphical trees ofcalls and dependencies, to cross-referencing graphs, to a psychedelic "nested box" graph that displays the relative size of different code modules. Most of these are configurable and interactive, so you can zoom out to get an overview of a sprawling project, or zoom in to look at a small section of code.
I ran JArchitect on an older project of mine, and the program revealed a number of issues which showed poor coding style or which could lead to bugs (such as having an utility function dependent on a specific form, rather than having the form pass the needed values to the utility). This is the sort of thing which tends to happen when trying to develop to a tight deadline, with the intent, always, of going back and "doing it right," but it's very easy to forget such promises in the heat of development. JArchitect reminds you... before your boss does at your next code review.
There are a few downsides to JArchitect. First, it's not a tool for casual or non-commercial developers. At $500 for a single-user license, someone not deriving steady income from their software will need to seriously consider the benefits. The 20-day trial should help with that. Second, the documentation is sparse and written in broken English. Since JArchitect is presented as a high-end, enterprise-level program, there's no excuse for not having someone go over the documentation and clean up the writing.
There are also also small things like the links for JArchitect demos going to videos for a related program, NDepend (the icon for JArchitect is also the NDepend icon), or the "Site Map" link on the JArchitect site giving a 404 error as of this writing. These are minor, but sloppiness in small areas is troubling when a user, or a company, trusts the tool to do precise and accurate analysis.
Bottom line? Get the trial. See how much it reveals to you. I tested the Windows edition, but there are editions for Linux and Mac, too. Particularly in a business, especially one with extensive software development, a tool such as JArchitect can easily pay for itself with time saved in both understanding and maintaining code.