<p>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 detected that some of my code is badly codependent. I've arranged for counseling.</p><p>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.</p><p>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.</p><p>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.JArchitect lets you select and customize a number of different report formats.</p><p><a href="http://www.pcworld.com/article/2040356/review-jarchitect-analyzes-java-code-revealing-structures-dependencies-and-design-flaws.html">Keep reading...</a></p>