JDepend is a tool that traverses Java class file directories and generates software package metrics (most importantly dependency cycle detection and distance from the Main Sequence) to measure the design quality for Java packages. It also allows you to automatically measure the quality of a design effectively.