SONAR is a code quality management platform, dedicated to continuously analyze and measure technical quality, from the projects portfolio to the class method.
JDepend sorgt für gute Beziehungen
Author: dbt23
11 Mai
Irgendwie spuckt jDepend interessante Werte aus, aber was so richtig damit anfangen? Nur eine Zahl um so etwas wie Paket-Instabilität auszudrücken? Wieso soll ich mich überhaupt um zyklische Abhängigkeiten kümmern, wenn mein System doch prima läuft? Und was um alles in der Welt ist ein dot in der Graphenvisualisierung?
Crap4j is a Java implementation of the CRAP (Change Risk Analysis and Predictions) software metric – a mildly offensive metric name to help protect you from truly offensive code.
The CRAP metric combines cyclomatic complexity and code coverage from automated tests (e.g. JUnit tests) to help you identify code that might be particularly difficult to understand, test, or maintain – the kind of code that makes developers say: “This is crap!” or, if they are stuck maintaining it, “Oh, crap!”.
The best way to learn more about CRAP and Crap4j is to check the various articles, newsgroups and blogs about them.
The developer edition provides ALL of the capabilities of the server edition but limits console and terminal connectivity to the first 45 minutes of a managed JVM's processing. Snapshots taken before the expiration time can still be analyzed offline in the console and the console will reconnect to the JVM once it has been stopped and started.
The key to agility is being able to modify code easily and safely. The problem is that many Java applications are too brittle to extend and enhance easily. Attempts to fix or extend - no matter how carefully done - can introduce more bugs and more complexity.
With a full suite of characterization tests generated by JUnit Factory you can bring your legacy code under control. Download our free plug-in for Eclipse to get started.
Jumble is a class level mutation testing tool that works in conjunction with JUnit. The purpose of mutation testing is to provide a measure of the effectiveness of test cases. A single mutation is performed on the code to be tested, the corresponding test cases are then executed. If the modified code fails the tests, then this increases confidence in the tests. Conversely, if the modified code passes the tests this indicates a testing deficiency.
This project collects and consolidates data from several QA tools and keeps track of them overtime. This allows developers, architects and project managers alike to be presented with a trend of the QA statistics of their project.
The following tools are currently supported:
* Checkstyle: code style validation and design checks. QALab keeps track of number of violations per file and overall.
* PMD: Code checks (possible bugs, dead code, sub-optimal code, etc). QALab keeps track of number of violations per file and overall.
* PMD CPD: Duplicate code (always a bad idea) detection. QALab keeps track of number of the overall number of duplicated lines.
* FindBugs: fantastic tool to detect potential bugs (really!). QALab keeps track of number of violations per file and overall.
* Cobertura: Coverage tool. QALab keeps track of percentage of branch and line coverage.
* Simian: excellent duplicate code detection (non-open source). QALab keeps track of number of the overall number of duplicated lines.
a tool for measuring code metrics of Java applications. Contrary to other tools, Meaxure works with Java source files instead of class files and aims to be extendable. Currently Meaxure supports common metrics like lines of code, number of classes, number of methods or cyclomatic complexity. Due to it's reliance on source files it does not support metrics which cannot be calculated from individual source files like depth of inheritance tree or number of children.
Meaxure supports reporting violations to certain metrics. Rules for violations can be specified using XPath expressions,
JayWalker is an open-source build and deployment analysis tool which interrogates a Java application's compiled artifacts and generates static and interactive graphical reports from it. In turn, a software professional can interpret and use these reports to improve software quality and to understand the current state of the software application in question.
Although there are quite a few dependency analysis tools on the market, JayWalker is different because:
* It walks the class files rather than the source files
* It can interrogate nested archives (i.e. a JAR within a WAR within an EAR file)
* It can detect a variety of conflicts that can be identified at build and deployment time in an effort to minimize runtime dependency errors.
* It can be incorporated into a continuous integration solution so conflicts can be identified as they are introduced into source code control rather than addressing errors at runtime.
* It can be run standalone via the commandline on a system which just has a JRE installed
* Other dependency tools are package or class specific. JayWalker has support for archives, packages, and classes.
* Report attributes can be toggled on or off
* Walking across classlist elements can be done in several different ways:
o Deep (default) - recursively follow all paths
o Shallow - recursively follow paths up to and including a boundary element
o System - recursively follow paths up to a boundary element which is not part of the deployment, but is provided by a server or environment.
Dependometer is a java based analysis tool for java projects.
Features are:
Use a logical architecture description in terms of Layers and Subsystems and their physical mapping (n Packages implement a Subsystem) and check logical architecture violations.
* Analyze the dependency architecture between Layers, Subsystems, Packages, Compilation Units (Java files) and Types (Classes and Interfaces)
* Calculate a bunch of metrics for all elements - this includes metrics from John Lakos, Robert C. Martin and Craig Larman
* Analyze cycles between elements
* Define thresholds and receive feedback upon their violation
Simulate via simple refactoring definitions and cutting unwanted dependencies changes to the physical structure possibly enhancing refactoring.
Create a complete HTML presentation via xslt. This provides browsing capabilities from Layer (logical element) to Compilation Unit (physical element) for a discussion which physical elements cause the logical architecture to break.
Another tool from the great Thoughtworks people. It "provides a set of Ant build files to simplify configuring many of the most popular tools. Setting up a project can be as simple as:
1. Download and extract Panopticode in your project's home directory
2. Copy the PROJECT_HOME/panopticode/build-example.xml file to PROJECT_HOME/build.xml
3. edit the PROJECT_HOME/build.xml to specify your classpath and source code directory.
4. (optional) Select your source code management tool in the PROJECT_HOME/panopticode/panopticode-imports.xml
The whole thing can be easily done in 5 minutes. If you have a fast internet connection you could probably pull it off in 2 minutes :)"
This is the homepage of the Code Analysis Plugin (CAP).
CAP is a plugin for the eclipse platform and analysis the dependencies of your Java project. It opens a own perspective and displays the results in an clear way using different diagrams.