| Description: | Extract:
XDepend analyses your java byte code, your test reports and your source files to extract structural information and 82 base metrics via static analysis.
Visualize:
XDepend provides complementary and interactive views on the same information. A Tree-Map view helps you easily identify the big one from the small one. The dependency matrix, the graph view and the detailed view help you gain insight in your code base.
Seek:
Code Query Language (CQL) is a specific XDepend language, very similar to SQL, that helps you dynamically find what you are looking for.
Control:
CQL rules are added to your project, or may be directly defined in your source code using specific annotations, and checked at every analysis. XDepend analysis can also be integrated with your favorite continuous integration tool.
Its features are:
Code Query Language (CQL): XDepend supports the Code Query Language (CQL) (specification available here) for maximum flexibility. Basically, XDepend considers your code as a database and you can write some CQL statements to query and check some assertions on this database. As a consequence, CQL is similar to SQL and supports the SELECT TOP FROM WHERE ORDER BY pattern.
Compare Builds: In software development, products are constantly evolving. Hence, developers and architects must pay attention to modifications in code bases. Modern source code repositories handle incremental development. They can enumerate differences between 2 versions of source code files.
82 code metrics: There are many ways to measure a code base. The most common way is to count the number of lines of code. This metric gives a rough estimation of the effort that had been put in to develop the code base. It also allows you to obtain a quality level agreement by pinpointing fat methods and classes
Manage Complexity and Dependencies: It is vital information to know how the elements of a code base depend on each other. As a developer you spend time thinking about how your layers should interact, creating interfaces and events to avoid dependencies between concrete classes.
Detect Dependency Cycles: The easiest way to keep a code base clean is to avoid dependency cycles between its components. Components are useful to partition a huge amount of code into smaller and understandable pieces.
Harness Test Coverage Data: Writing automatic tests is a central practice to increase code correctness. Automatic tests helps improving tests cover knowing which part of the code and consequently, it helps increasing code correctness.
Enforce Immutability and Purity: At runtime, program’s states are instance and static fields’ values. Controlling how/when/why states are changing is one of the most challenging programming tasks.
Warnings about the health of your Build Process: XDepend is able to provide useful information about the health of your build process.
Generate custom report from your Build Process: XDepend can analyze source code (soon) and jars through XDepend.Console.exe. Each time it analyzes a code base, XDepend yields a report that can inform you about the status of your development.
Diagrams: XDepend outputs several kind of diagrams like Treemap metric, Abstracness vs. Instability, Dependencies matrix, Dependencies boxes and arrows
Facilities to cope with real-world environment: XDepend is non-intrusive. You don’t have to modify or to recompile your code to use it. |