Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Architecture Analysis Tool SonarJ 6.0 Supports Structural Debt Index and Quality Model

Architecture Analysis Tool SonarJ 6.0 Supports Structural Debt Index and Quality Model

This item in japanese

The latest version of software architecture analysis and quality governance tool SonarJ supports structural debt index metrics and architecture quality model. The company behind the product, hello2morrow, last month announced the release of version 6.0 of the tool.

The new metric "structural debt index" allows the architects and developers to measure the overall structural debt in their applications. It measures the structural erosion of the project using heuristics and shows the proportional effort needed to remove the architecture debt in the applications. The Structural Debt dashbox is displayed if the project contains cyclic package dependencies, architecture violations, threshold warnings or open tasks.

The free license version of SonarJ shows the cyclic package dependencies in this metric. The commercial license adds other statistics like architecture violations, threshold violations and open tasks. Other metrics like "type dependencies to cut" and "number of references to remove" show how many type dependencies need to be removed to break up all package cycles and how many lines in the code would be affected by the change respectively. There is also an updated version of the plugin for code analysis tool Sonar that displays the new structural debt index statistics on Sonar dashboard web page.

SonarJ 6.0 also allows the software architects to define application architecture quality models. A quality model is a set of metric thresholds that can be used to enforce specific quality guidelines. The new release ships with two ready-to-use quality models called the “Essential” and the “Extended” models. The essential model can be used as a simple starter for continuous integration and the extended model defines more thresholds and is useful when looking for problems in unknown code.

Other new features in the latest version include the following:

  • The new dashboard aggregates the most important metrics on a single page and highlights potential problems using traffic light colors.
  • A new system creation wizard guides the users through all the needed steps and the users can import software systems from Eclipse IDE and Maven application build tool. There also new build units added to help with the mapping between Maven or Eclipse projects and SonarJ projects. A build unit contains a set of source or class file root directories and is typically mapped directly to a Maven or an Eclipse project. A SonarJ project can contain any number of build units.
  • The patterns to assign Java types to architectural artifacts (like layers, slices or subsystems) now include strong and weak hierarchical patterns. Strong patterns can be used to force the assignment of a type to a specific architectural artifact regardless of restriction imposed by the parent artifact and the weak hierarchical patterns can be used to match types, that have not been matched by any other (stronger) pattern.
  • Sandboxing: The new sand-boxing mode allows the users to try the variants of a system file for trying out architectural ideas and refactoring ideas without changing the original system file.
  • Report Generation: SonarJ can now also generate reports based on RTF templates, which can be customized using any RTF file editor program (e.g. Microsoft Word).
  • The architecture view has a new option called "highlight restrictions". Selecting an architectural element in this mode will mark all other elements in green or red, where green elements are accessible from the selected element while red elements are not accessible.

SonarJ comes in three different product variants. SonarJ-Architect can be used by any one who must be able to create or modify architecture rules. SonarJ-Developer module enables the developers to detect rule violations and to execute virtual refactorings in Eclipse. SonarJ-Report comprises an Ant task and a Maven-plugin to create reports and provide support for continuous integration systems like CruiseControl. It can also be used to synchronize SonarJ work items with task tracking and application lifecycle management tools like JIRA and Codebeamer. This tool can be used free of charge for commercial projects with a size of up to 50,000 bytecode instructions (approximately 20,000 lines of code).


Rate this Article