Metric Results

[ summary ] [ packages ] [ cycles ] [ explanations ]

The following document contains the results of a JDepend metric analysis. The various metrics are defined at the bottom of this document.

Summary

[ summary ] [ packages ] [ cycles ] [ explanations ]

Package Total

Classes
Abstract

Classes
Concrete

Classes
Afferent

Couplings
Efferent

Couplings
Abstractness Instability Distance
com.octagroup.foregej 2 0 2 6 1 0 14% 86%
com.octagroup.foregej.ant 7 0 7 0 18 0 100% 0%
com.octagroup.foregej.antlr 11 1 10 12 8 0,09 40% 51%
com.octagroup.foregej.html 2 0 2 5 6 0 55% 45%
com.octagroup.foregej.html.ast 35 0 35 2 7 0 78% 22%
com.octagroup.foregej.java.doc 8 3 5 1 7 0,38 88% 25%
com.octagroup.foregej.java.doc.ast 7 0 7 6 8 0 57% 43%
com.octagroup.foregej.java.doc.ast.lit 4 0 4 0 1 0 100% 0%
com.octagroup.foregej.java.lang 10 2 8 8 11 0,2 58% 22%
com.octagroup.foregej.java.lang.ast 61 2 59 10 11 0,03 52% 44%
com.octagroup.foregej.java.lang.ast.lit 57 0 57 3 6 0 67% 33%
com.octagroup.foregej.java.lang.ast.ops 34 0 34 2 6 0 75% 25%
com.octagroup.foregej.java.lang.tok 5 0 5 3 8 0 73% 27%
com.octagroup.foregej.java.tools 6 1 5 5 7 0,17 58% 25%
com.octagroup.foregej.java.tools.attr 1 0 1 0 9 0 100% 0%
com.octagroup.foregej.java.tools.copyright 2 0 2 1 10 0 91% 9%
com.octagroup.foregej.java.tools.importcleaner 1 0 1 1 6 0 86% 14%
com.octagroup.foregej.java.tools.jdoccleaner 1 0 1 0 8 0 100% 0%
com.octagroup.foregej.java.util 2 0 2 2 7 0 78% 22%
com.octagroup.foregej.test 1 0 1 0 1 0 100% 0%
examples 4 1 3 0 2 0,25 100% 25%

Packages

[ summary ] [ packages ] [ cycles ] [ explanations ]

com.octagroup.foregej.java.doc.ast.lit

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 1 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
AST_LITERAL_author

AST_LITERAL_param

AST_LITERAL_return

Literal

com.octagroup.foregej.html

com.octagroup.foregej.java.lang.ast

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 11 3% 52% 44%
Abstract Classes Concrete Classes Used by Packages Uses Packages
ClassOrInterface

Type

AST_ARRAY_DECLARATOR

AST_ARRAY_INIT

AST_BREAK

AST_CASE

AST_CASE_GROUP

AST_CHAR_LITERAL

AST_CLASS_DEF

AST_CONTINUE

AST_CTOR_CALL

AST_CTOR_DEF

AST_DO

AST_DOT

AST_ELIST

AST_EMPTY_STAT

AST_EXPR

AST_EXTENDS_CLAUSE

AST_FINALLY_CLAUSE

AST_FOR

AST_FOR_CONDITION

AST_FOR_INIT

AST_FOR_ITERATOR

AST_HANDLER

AST_IDENT

AST_IF

AST_IMPLEMENTS_CLAUSE

AST_IMPORT

AST_INDEX_OP

AST_INTERFACE_DEF

AST_LABELED_STAT

AST_METHOD_CALL

AST_METHOD_DEF

AST_MODIFIERS

AST_NEW_EXPRESSION

AST_NUM_LONG

AST_OBJBLOCK

AST_PACKAGE_DEF

AST_PARAMETERS

AST_PARAMETER_DEF

AST_POST_DEC

AST_POST_INC

AST_QUESTION

AST_RETURN

AST_SLIST

AST_STATIC_INIT

AST_STRICTFP

AST_SUPER_CTOR_CALL

AST_SWITCH

AST_SYNCHRONIZED

AST_THROW

AST_THROWS_CLAUSE

AST_TRY_BLOCK

AST_TYPE

AST_TYPECAST

AST_UNARY_MINUS

AST_UNARY_PLUS

AST_VARIABLE_DEF

AST_WHILE

CompilationUnit

Identifier

com.octagroup.foregej.ant

com.octagroup.foregej.antlr

com.octagroup.foregej.java.lang.ast.lit

com.octagroup.foregej.java.lang.ast.ops

com.octagroup.foregej.java.tools

com.octagroup.foregej.java.tools.attr

com.octagroup.foregej.java.tools.copyright

com.octagroup.foregej.java.tools.importcleaner

com.octagroup.foregej.java.tools.jdoccleaner

com.octagroup.foregej.java.util

antlr

antlr.collections

com.octagroup.foregej

com.octagroup.foregej.antlr

com.octagroup.foregej.java.doc.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.ast.lit

com.octagroup.foregej.java.lang.ast.ops

java.io

java.lang

java.util

com.octagroup.foregej.java.tools.importcleaner

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 0% 86% 14%
Abstract Classes Concrete Classes Used by Packages Uses Packages
ImportCleanerTool

com.octagroup.foregej.ant

antlr

antlr.collections

com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.tools

java.lang

java.util

com.octagroup.foregej.test

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 1 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
JavaDocTest

java.lang

examples

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 25% 100% 25%
Abstract Classes Concrete Classes Used by Packages Uses Packages
IAttrTest

IAttrTestImpl

Test

TestImpl

java.io

java.lang

Cycles

[ summary ] [ packages ] [ cycles ] [ explanations ]

Package Cyclic Dependencies
com.octagroup.foregej.ant com.octagroup.foregej.java.tools.copyright

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.antlr com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.html com.octagroup.foregej.antlr

com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.html.ast com.octagroup.foregej.antlr

com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.doc com.octagroup.foregej.antlr

com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.doc.ast com.octagroup.foregej.antlr

com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.doc.ast.lit com.octagroup.foregej.html

com.octagroup.foregej.antlr

com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.ast com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.ast.lit com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.ast.ops com.octagroup.foregej.antlr

com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.tools com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.tools.attr com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.tools.copyright com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.tools.importcleaner com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.tools.jdoccleaner com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.util com.octagroup.foregej.java.lang.ast

com.octagroup.foregej.java.lang

com.octagroup.foregej.java.lang.tok

com.octagroup.foregej.java.lang

Explanations

[ summary ] [ packages ] [ cycles ] [ explanations ]

The following explanations are for quick reference and are lifted directly from the original JDepend documentation .

Term Description
Number of Classes The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent Couplings The number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent Couplings The number of other packages that the classes in the package depend upon is an indicator of the package's independence.
Abstractness The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package.
Instability The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package.
Distance The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible.
Cycles Packages participating in a package dependency cycle are in a deadly embrace with respect to reusability and their release cycle. Package dependency cycles can be easily identified by reviewing the textual reports of dependency cycles. Once these dependency cycles have been identified with JDepend, they can be broken by employing various object-oriented techniques.