Dependency Finder is a suite of tools for analyzing compiled Java code. At the core is a powerful dependency analysis application that extracts dependency graphs and mines them for useful information. This application comes in many forms for your ease of
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.
SONAR is a code quality management platform, dedicated to continuously analyze and measure technical quality, from the projects portfolio to the class method.
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.
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.
ztest
ztest is a small classlibrary based on java 1.5 intended to be used in junit tests.
The main purpose of ztest is to put constraints on the code structure of java programs.
It can and should be used to specify an architecure by putting constraints on class dependencies. The architecture can be reused by reusing the test.
ztest scans the bytecode of class files in directories, jars, wars, ears and computes a dependency graph. You can query this dependency graph and define the architecure by specifying valid dependencies and rejecting invalid ones.
ztest comes with a dependency-test (ZDependencyTest) with which you can define sets of classes and the allowed dependencies between them.
The class sets are defined by filtering the nodes of the dependeny graph.
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 :)"
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,
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.
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.
Lattix has pioneered an award-winning approach using system interdependencies to create an accurate blueprint of software applications, databases and systems. Architects and developers can analyze their systems in detail, edit the structure to create what-if scenarios, and specify design rules, allowing them to formalize and communicate the architecture to the entire organization. The result is higher quality, improved reliability, and much easier maintenance.
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?
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.
FacesTrace is an open-source library aiming to enhance the traceability of applications based on JavaServer Faces. Several trace information and performance metrics of a JSF application is collected and presented on the page being traced.
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.
Lack of Progress Bar (Lopb) is an Eclipse plugin that tracks how long developers wait for background jobs to complete. By benchmarking the performance of background jobs, Lopb provides developers with metrics on how much of their day was wasted due to overhead introduced by the development tools and infrastructure that they depend on or access through their IDE.
The Hackystat Project, initiated in 2001, is an open source community of researchers and practitioners who are developing and evaluating new techniques for automated collection and analysis of software engineering process and product data. Sponsoring O