Product Overview of JArchitect
JArchitect is a comprehensive static analysis tool specifically designed for Java developers, often described as a “Swiss Army Knife” for managing complex Java code bases. Developed by CoderGears, this tool is instrumental in enhancing software quality, simplifying code management, and ensuring adherence to architectural and quality standards.
What JArchitect Does
JArchitect is designed to analyze and improve the quality of Java code. It integrates seamlessly into the development lifecycle, allowing architects and developers to analyze code structure, specify design rules, conduct effective code reviews, and monitor the evolution of the code base. This tool is particularly useful for controlling code quality, exploring existing architecture, and ensuring compliance with predefined rules and metrics.
Key Features and Functionality
Code Metrics and Quality Analysis
- JArchitect supports a wide array of code metrics, including Lines of Code, Cyclomatic Complexity, Coupling, Nesting Depth, and more. It currently supports 82 different code metrics, providing a detailed view of the code’s health and complexity.
CQLinq and Custom Rules
- The tool features CQLinq (Code Query over LINQ), which allows users to write custom rules and queries using LINQ syntax. This enables the creation of user-defined rules to enforce specific coding standards and best practices.
Dependency Visualization
- JArchitect visualizes dependencies using directed graphs and dependency matrices, helping to identify and resolve dependency cycles and other architectural flaws. This feature is crucial for maintaining high code maintainability.
Code Visualization and Diagrams
- The tool offers interactive diagrams and treemaps to visualize code metrics, making it easy to spot complex code areas at a glance. Users can drill down into these diagrams to analyze specific aspects of the code, such as cohesion, coupling, and cyclomatic complexity.
Test Coverage and Build Comparison
- JArchitect allows the import of test coverage data and compares different versions of the code base, highlighting changes such as added or removed methods, packages, and third-party libraries. This feature is essential for code reviews and impact analysis for refactoring.
Integration with Development Tools
- The tool integrates with popular development tools like Maven, Gradle, and Jenkins, enabling the setup of JArchitect analysis as part of the build and Continuous Integration (CI) process. It also supports plugins like PMD, FindBugs, CheckStyle, and CPD.
Trend Monitoring and Reporting
- JArchitect provides trend charts for various code metrics, helping users master the evolution of their application. It also generates custom reports to alert users about potential build process problems and maintain clean, side-effects-free code for concurrent programming.
Additional Capabilities
- The tool includes features such as duplicate code detection, dead code detection, and breaking changes detection, which are accessible through powerful command-line tools.
- It supports full compatibility with Java 9 and later versions, ensuring it remains relevant with the latest Java ecosystem developments.
In summary, JArchitect is a powerful and versatile tool that enhances the quality and maintainability of Java code by providing extensive analysis, visualization, and reporting capabilities, making it an indispensable asset for Java developers and architects.