Products > Sonargraph
Sonargraph is a powerful static code analyzer and comes in two major product variants. Sonargraph-Architect is the successor of SonarJ and has a focus on software structure and architecture. Sonargraph-Quality includes the capabilities of Sonargraph-Architect and adds metrics, quality models, duplicate code search, integration of 3rd party code checkers and many other festures.
Sonargraph Product Family Overview
Sonargraph-Architect uses direct parsing to build an in-memory model of your software project. Since everything happens in memory Sonargraph-Architect is incredibly fast while still being able to analyze large systems on a typical developer machine. As soon as you define an architectural model for your system, Sonargraph-Architect will compare your architecture with the dependency structure of your code and list all places, where the code does not conform to your architecture. This feature is also available in our IDE plugins for Eclipse and IntelliJ, so that developers are able to detect rule violations while they are working on the code.
These are the typical use-cases for Sonargraph architect:
- Permanent monitoring of architecture rules and dependency structure in the development process
- Assessment of architectural and structural qualty of a code base
- Analyze and visualize the dependency structure of your code
- Analyze and visualize cyclic dependencies
- Break up cyclic dependencies with the least amount of effort
- Prepare and simulate complex refactorings to improve the structure of your system
- Implement planned refactorings in coopeation with your IDE
- Define and enforce architectural rules and constraints for your system in your IDE and during build time
- Integrate sophisticated architecture rule checking into your Sonar build
Adding Sonargraph-Architect to your development process will significantly improve the technical quality, maintainability and comprehensibility of your code base. It will help to keep coupling low and greatly simplify the reuse of exiting components. As a result you can expect a sizeable productivity boost for your development team. Developers will spend less time trying to understand complex code and therefore spend more time implementing useful functionality.
Sonargraph-Quality includes all the features of Sonargraph-Architect and adds many features that will help you to analyze, manage and assess the overall technical quality of a software system. Sonargraph-Quality uses a persistent repository to store all the information gained from analyzing your system. While it supports direct parsing you would usually do all the heavy-duty parsing and analysis during your nightly build. The result of such an analysis is a snapshot of your system. The snapshot contains a complete model of your code base including structural information, metrics and other data. Since Sonargraph will create many snaphots over time it is easy to compare different snapshots with each other.
Here are some typical use-cases for Sonargraph-Quality:
- All the use cases of Sonargraph-Architect
- In-depth code quality assessments and due diligence checks
- Permanent monitoring of most aspects of code quality in the development process
- Use predefined or customized quality models to identify problems and quality trends in your code base
- Discover metric trends
- Find out which problems have been added or solved since the last build
- Find duplicate code blocks
- Retrieve and analyze hundreds of different software metrics
- Create your own customized metrcis
- Use prepared queries to find bad smells and other anomalies in your system
- Create your own customized queries
Sonargraph-Quality is the big brother of Sonargraph-Architect. It brings you all the benefits of Sonargraph-Architect, but also allows much more in-depth analysis of many different aspects of technical quality. While the typical user of Sonargraph-Architect is a software architect or development team leader, Sonargraph-Quality can also be used by QA specialists or the central QA department. Another typical user group are consultants doing code quality asssessments or software due diligence.