Sonargraph Product Family

Sonargraph-Architect

Sonargraph-Architect is a general purpose static analysis tool and can be best described as the swiss army knife for architects, quality analysts and developers. It is also a very powerful tool in the hands of a capable software craftsman. Currently it supports C#, C/C++, Java/Kotlin, TypeScript and Python 3. More languages will be supported in the future. It provides powerful software visualization views, hundreds of metrics, automated architecture checks based on a powerful DSL, a Groovy based scripting engine, a checker for duplicate code, virtual refactorings, issue resolution workflow, advanced metrics like LCOM4 and a break up computer for cyclic dependencies. Moreover you can define quality gates based many different criteria and use baselines to find out what changed compared to a previous version of your software. Your quality gates can be configured to break the build if things got worse in comparison to the baseline. It is also the best available tool for the modernization of monolithic legacy applications.

Code Exploration and Comprehension

Sonargraph has very powerful dependency visualization features. The graph view displays dependencies between arbitrary elements selected by the user in form of a layered graph.

Graphview

All nodes that are in a cyclic group are combined into a single node, that can be further investigated using the cycle viewer.

Cycle-view-new

The exploration view displays dependencies in a more hierarchical and scalable fashion. The arcs in the view are directional and go counter-clockwise. You should see some cyclic dependencies in the screenshot below.

Explo-view-new

This view comes with many powerful features that allow you to focus on specific parts of your application. You can drill down, jump to the source code and expand the focus by adding incoming and/or outgoing dependencies. Every dependency can be tracked down to the code.

Architecture as Code: Design your Architecture using Sonargraph's Architecture DSL

use our powerful and easy to learn and understand software architecture DSL to describe the architecture of your system. Watch the video below and read our blog article "How to organize your code" to learn more.

Sonargraph now mines your Git history

This allows us to derive metrics like change frequency and code-churn, which are really useful to indentify the stable and unstable parts of your code base. If you read the book "Your Code as a Crime Scene" you will find that Sonargraph now supports most of the analysis recommended in the book. And we will further enhance this capability.

Visualize Hotspots using 2D and 3D Tree Maps (aka software cities)

Software-city

Tree maps give you a very powerful and unique way to visualize the metrics of your software system. The 3D example treemap above shows 3 metrics in the different characteristics of the "buildings". The ground area is proportional to the size of a source file in LoC. The color is derived from the number of changes in the last 90 days. The dark red building on the bottom right is the Sonargraph class "TreemapView". It has been changed frequently, because that is a feature we are actively working on. The height of the building reflects complexity measured here in form of average indentation. Tall large buildings in red are good candidates for refactorings, they combine high complexity with frequent changes, which really increases the probability of errors. Of course Sonargraph allows you to choose which metrics you'd like to disply in a treemap. it is even possible to use script based metrics in treemaps.

Virtual Refactorings allow the Simulation of Refactorings without touching the Code

With a virtual refactoring you can delete, move or rename certain elements without actually changing your code. Sonargraph will simulate the effect of those refactorings for you. If you are happy with the results just excute those refactorings in the real world by using your IDE. This is much safer than experimenting with refactorings in your IDE because you can actually see, how your refactorings will impact the architecture and dependency structure of your code.

Break up cyclic Dependencies with minimal Effort

Our cycle break-up computer helps you to identify the dependencies you need to cut to untangle cyclic dependencies with the smallest possible effort. You can then fine tune the result set according to your architectural requirements.

Breakup

Assess Quality by Analyzing Metrics and Code Structure

The screenshot below shows the overall system metrics of NHibernate (C#) including the associated test projects.

Metrics

Sonargraph-Architect computes hundreds of code and quality metrics that can be used to quickly assess the technical quality of any software system.

p>

Using dependency visualization and metrics it becomes easy to gain a better understanding of any software system, even if it lacks documentation. Moreover the metrics allow a quick and solid assessment of the technical quality of the codebase.

Quality assessments can be performed remotely by using a snapshot file generated by Sonargraph-Architect on a development machine. If the user creating the snapshot permits the snapshot will not only hold a complete model of the software system, but also all of the source code. The remote machine does not need a development environment.

Find Duplicated Code Blocks

Sonargraph-Architect comes with a powerful duplicate code detection algorithm. This makes it easy to detect code sequences created by copy & paste. The duplicate code viewer is able to conveniently display duplicated blocks side by side.

Dupview

Manage Issues

All issues detected by Sonargraph-Architect are displayed in the issues view. Issues can be filtered, ignored or converted into tasks. Ignoring issues is useful for any issue that you do not plan to fix in the near future.

Create Your Own Code Checkers

You can use Groovy Script to check for specific issues in the code. The script in the screenshot below detects all uses of sub classes from their super classes. This is considered to be bad practice. You can configure the script to run automatically with each refresh. The issues detected by the script will then show up in the issues view.

Scriptview

Ready to try Sonargraph-Architect? Here is what you need to do:

  • Register now! As a registered user you can download and test Sonargraph-Architect for free.
  • After you are registered and logged in you can download and install Sonargraph-Architect. Then you should request a free 14 day evaluation license, that allows you to test the full product on any Java, TypeScript, C# or C/C++ project.