JArchitect
Page Module:Message box/ambox.css has no content.Page Template:Multiple issues/styles.css has no content.
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
Page Module:Message box/ambox.css has no content.
|
Page Module:Infobox/styles.css has no content.
| JArchitect | |
|---|---|
| [[Programmer|DeveloperTemplate:Pluralize from text]] | JArchitect |
| Operating system | Multiplatform |
| Type | Software quality |
| License | Proprietary |
| Website | jarchitect |
Script error: No such module "Check for conflicting parameters".
JArchitect is a static analysis tool for Java code. This tool supports a large number of code metrics, allows for visualization of dependencies using directed graphs and dependency matrix. The tools also performs code base snapshots comparison, and validation of architectural and quality rules. User-defined rules can be written using LINQ queries. This possibility is named CQLinq. The tool also comes with a large number of predefined CQLinq code rules.
Features
Page Module:Message box/ambox.css has no content.
The main features of JArchitect are:
- Dependency visualization (using dependency graphs, and dependency matrix)
- Software metrics (JArchitect currently[as of?] supports 82 code metrics: cyclomatic complexity; afferent and efferent coupling; relational cohesion; percentage of code covered by tests, etc.[<span title="Script error: No such module "decodeEncode".">vague])
- Declarative code rule over LINQ query (CQLinq)
- JArchitect can tell you what has been changed between 2 builds
Code rule through LINQ Query (CQLinq)

The tool proposes live code query and code rule through LINQ query. This is one of the innovations of JArchitect. For example:
- Classes inherit from a particular class:
// <Name>classes inherit from a particular class</Name>
from t in Types
where t.IsClass && t.DeriveFrom ("CBase")
select t
- The 10 most complex methods (Source Code Cyclomatic complexity)
// <Name>The 10 most complex methods</Name>
(from m in Methods
orderby m.CyclomaticComplexity
select new { m, m.CyclomaticComplexity }).Take(10)
In addition, the tool proposes a live CQLinq query editor with code completion and embedded documentation.