Application architecture is significantly different from building architecture. For the person designing the building, the underlying structure can be seen every day as the project progresses. But for application builders, that architecture becomes more obfuscated with new code every day.
SonarJ 6.0, which was released on July 1 by hello2morrow, aims to solve this problem by bringing the underlying architecture of Java applications out into the open.
For development managers looking for a daily starting point, SonarJ 6.0 includes a new dashboard that aggregates metrics from its static analysis of code and shows potential trouble spots.
There’s also a new metric for measuring architectural complexity. Called the “structural debt index,” this metric measures the amount of effort needed to remove structural debt from a project.
Alexander von Zitzewitz, CEO of hello2morrow, said that structural debt is an estimate of the effort needed to clean a project from structural erosion.
“Structural erosion is caused by unwanted dependencies violating architecture rules and cyclic dependencies between packages,” he said. “I observed that, by just looking at cyclic package dependencies, you can get a pretty good estimation of the degree of structural erosion. The structural debt is calculated by calculating how many places in the code would need to be changed to break up all cyclic dependencies.”
Combined with new traffic light icons that signal just how badly convoluted an area of code has become, development managers can see their Java applications as they evolve and increase in complexity.
Further, a new sandbox mode gives the tool the ability to provide a look at how a refactoring would affect the code, revealing architectural problems that would result from such a refactoring without actually touching the code itself.
von Zitzewitz said that version 6.0 makes it easier for newcomers to start using the tool, thanks to handlers that can import an application’s structural information from popular development tools.
“Creating a new system is now easier than ever,” he said. “A wizard guides you through all the needed steps, and you can directly import software systems not only from Eclipse, but also from Maven.”
For existing SonarJ users, version 6.0 is a free upgrade, provided those licenses are already up to date. It is available for Linux, Mac OS X and Windows.