Metric Results

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

The following document contains the results of a JDependmetric 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
org.ocltf 20217088%12%
org.ocltf.common 151145120.0771%23%
org.ocltf.concretesyntax 22011150%50%
org.ocltf.concretesyntax.impl 30319090%10%
org.ocltf.logging 10127078%22%
org.ocltf.mapping 202080100%0%
org.ocltf.model 12111220.9250%42%
org.ocltf.model.repository 211140.580%30%
org.ocltf.model.uml.profile 101010100%0%
org.ocltf.parser 60616086%14%
org.ocltf.parser.analysis 413430.2543%32%
org.ocltf.parser.lexer 30333050%50%
org.ocltf.parser.node 33081249630.2533%42%
org.ocltf.parser.parser 40426075%25%
org.ocltf.templateengine 211130.575%25%
org.ocltf.templateobject 20229082%18%
org.ocltf.test 6060150100%0%
org.ocltf.translation 9274190.2283%5%
org.ocltf.translation.library 606314082%18%
org.ocltf.utils 707912057%43%

Packages

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

org.ocltf

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
170%88%12%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
ExpressionKinds

ExpressionTranslator

org.ocltf.test

java.lang

org.apache.commons.logging

org.ocltf.common

org.ocltf.logging

org.ocltf.translation

org.ocltf.translation.library

org.ocltf.utils

org.ocltf.concretesyntax

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
11100%50%50%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
OperationCS

VariableDeclarationCS

org.ocltf.concretesyntax.impl

java.lang

org.ocltf.logging

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
270%78%22%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Logger

org.ocltf

org.ocltf.translation

java.io

java.lang

java.net

org.apache.commons.lang

org.apache.log4j

org.apache.log4j.xml

org.ocltf.utils

org.ocltf.mapping

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
080%100%0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Mapping

Mappings

java.lang

java.net

java.util

org.apache.commons.lang

org.apache.commons.lang.builder

org.ocltf.common

org.ocltf.templateobject

org.ocltf.utils

org.ocltf.model.repository

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1450%80%30%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Repository

RepositoryException

org.ocltf.test

java.io

java.lang

java.lang.reflect

java.net

org.ocltf.model.uml.profile

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
010%100%0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
ObjectRelationalProfile

java.lang

org.ocltf.parser.analysis

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
4325%43%32%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Analysis

AnalysisAdapter

DepthFirstAdapter

ReversedDepthFirstAdapter

org.ocltf.parser

org.ocltf.parser.node

org.ocltf.parser.parser

org.ocltf.translation

java.lang

java.util

org.ocltf.parser.node

org.ocltf.parser.lexer

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
330%50%50%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Lexer

Lexer$State

LexerException

org.ocltf.parser

org.ocltf.parser.parser

org.ocltf.translation

java.io

java.lang

org.ocltf.parser.node

org.ocltf.parser.node

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
6325%33%42%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Cast

Node

PActualParameterList

PAddOperator

PAdditiveExpression

PAdditiveExpressionTail

PAttributeOrAssociationExpressionBody

PClassifierExpressionBody

PCollectionKind

PCollectionLit

PCollectionType

PCommaExpression

PContextDeclaration

PDeclaration

PDeclarator

PDeclaratorTail

PDefinitionExpression

PEqualExpression

PExpression

PExpressionListOrRange

PExpressionListOrRangeTail

PFeatureCall

PFeatureCallParameterOption

PFeatureCallParameters

PIfExpression

PInitialOrDerivedValue

PIsMarkedPre

PLetExp

PLetExpSub

PLetVariableDelaration

PLiteral

PLogicalExp

PLogicalExpressionTail

PLogicalOperator

PMessageArgument

PMessageArguments

PMessageArgumentsTail

PMessageExp

PMultiplicativeExpression

PMultiplicativeExpressionTail

PMultiplyOperator

POperation

POperationExpressionBody

POperationStereotype

PPathName

PPathNameTail

PPrimaryExpression

PPrimitiveLit

PPropertyCallExpression

PPropertyCallExpressionTail

PQualifiers

PRelationalExpression

PRelationalExpressionTail

PRelationalOperator

PScopeOperatorName

PTupleLit

PTupleType

PType

PTypeDeclaration

PUnaryExpression

PUnaryOperator

PVariableDeclaration

PVariableDeclarationList

PVariableDeclarationListTail

Switch

Switchable

Token

XPAdditiveExpressionTail

XPAttributeOrAssociationExpressionBody

XPClassifierExpressionBody

XPCommaExpression

XPContextDeclaration

XPFeatureCallParameterOption

XPLetExp

XPLogicalExpressionTail

XPMessageArgumentsTail

XPMultiplicativeExpressionTail

XPOperationExpressionBody

XPPathNameTail

XPPropertyCallExpressionTail

XPVariableDeclarationListTail

AActualParameterList

AActualParameterList$1

AActualParameterList$CommaExpression_Cast

AAdditiveExpression

AAdditiveExpression$1

AAdditiveExpression$AdditiveExpressionTail_Cast

AAdditiveExpressionTail

AAndLogicalOperator

AArrowPropertyCallExpressionTail

AAttributeOrAssociationContextDeclaration

AAttributeOrAssociationContextDeclaration$1

AAttributeOrAssociationContextDeclaration$AttributeOrAssociationExpressionBody_Cast

AAttributeOrAssociationContextDeclaration$PathNameTail_Cast

AAttributeOrAssociationExpressionBody

ABagCollectionKind

ABagCollectionType

ABarFeatureCallParameterOption

ABodyOperationStereotype

ABooleanPrimitiveLit

AClassifierContextDeclaration

AClassifierContextDeclaration$1

AClassifierContextDeclaration$ClassifierExpressionBody_Cast

AClassifierContextDeclaration$PathNameTail_Cast

ACollectionCollectionKind

ACollectionCollectionType

ACollectionLit

ACollectionLiteral

ACollectionType

AColonFeatureCallParameterOption

ACommaExpression

ACommaFeatureCallParameterOption

AConcreteFeatureCallParameters

AConcreteFeatureCallParameters$1

AConcreteFeatureCallParameters$FeatureCallParameterOption_Cast

AContextDeclaration

AContextDeclaration$1

AContextDeclaration$ContextDeclaration_Cast

ADeclaratorTail

ADefClassifierExpressionBody

ADeriveInitialOrDerivedValue

ADivMultiplyOperator

ADotPropertyCallExpressionTail

AEqualExpression

AEqualRelationalOperator

AExpMessageArgument

AExpressionListOrRange

AFeatureCall

AFeatureCallParameters

AFeaturePrimaryExpression

AGtRelationalOperator

AGteqRelationalOperator

AIfExpression

AIfPrimaryExpression

AImpliesLogicalOperator

AInLetExpSub

AInitInitialOrDerivedValue

AIntegerPrimitiveLit

AInvClassifierExpressionBody

AIsMarkedPre

AIsSentMessageExp

AIterateDeclarator

AIterateFeatureCallParameterOption

ALetExp

ALetExpression

ALetExpression$1

ALetExpression$LetExp_Cast

ALetVariableDelaration

AListExpressionListOrRangeTail

AListExpressionListOrRangeTail$1

AListExpressionListOrRangeTail$CommaExpression_Cast

ALiteralPrimaryExpression

ALogicalExp

ALogicalExp$1

ALogicalExp$LogicalExpressionTail_Cast

ALogicalExpression

ALogicalExpressionTail

ALtRelationalOperator

ALteqRelationalOperator

AMessageArguments

AMessageArguments$1

AMessageArguments$MessageArgumentsTail_Cast

AMessageArgumentsTail

AMessageExpression

AMessageMessageExp

AMinusAddOperator

AMinusUnaryOperator

AMultMultiplyOperator

AMultiplicativeExpression

AMultiplicativeExpression$1

AMultiplicativeExpression$MultiplicativeExpressionTail_Cast

AMultiplicativeExpressionTail

ANotEqualRelationalOperator

ANotUnaryOperator

AOperation

AOperationContextDeclaration

AOperationContextDeclaration$1

AOperationContextDeclaration$OperationExpressionBody_Cast

AOperationContextDeclaration$PathNameTail_Cast

AOperationDefinitionExpression

AOperationExpressionBody

AOrLogicalOperator

AOrderedsetCollectionType

APackageDeclaration

APackageDeclaration$1

APackageDeclaration$ContextDeclaration_Cast

APackageDeclaration$PathNameTail_Cast

AParenthesesPrimaryExpression

APathName

APathName$1

APathName$PathNameTail_Cast

APathNameTail

APlusAddOperator

APostOperationStereotype

APreOperationStereotype

APrimitiveLiteral

APropertyCallExpression

APropertyCallExpression$1

APropertyCallExpression$PropertyCallExpressionTail_Cast

AQualifiers

ARangeExpressionListOrRangeTail

ARealPrimitiveLit

ARelationalExpression

ARelationalExpressionTail

AScopeOperatorName

ASequenceCollectionKind

ASequenceCollectionType

ASetCollectionKind

ASetCollectionType

ASimpleType

AStandardDeclarator

AStringPrimitiveLit

ATupleLit

ATupleLiteral

ATupleType

ATupletypeType

ATypeDeclaration

ATypeMessageArgument

AUnaryExpression

AVariableDeclaration

AVariableDeclarationLetExpSub

AVariableDeclarationList

AVariableDeclarationList$1

AVariableDeclarationList$VariableDeclarationListTail_Cast

AVariableDeclarationListTail

AVariableDefinitionExpression

AXorLogicalOperator

EOF

NoCast

NodeCast

Start

TAnd

TApostrophe

TArrow

TAt

TAttr

TBag

TBar

TBlank

TBody

TBoolean

TCollection

TColon

TComma

TComment

TContext

TDef

TDerive

TDiv

TDot

TElse

TEndif

TEndpackage

TEnum

TEqual

TGt

TGteq

TIf

TImplies

TIn

TInit

TInt

TInv

TIsSentOperator

TLBrace

TLBracket

TLParen

TLet

TLt

TLteq

TMessageOperator

TMinus

TMult

TName

TNewLine

TNot

TNotEqual

TOper

TOr

TOrderedset

TPackage

TPlus

TPost

TPre

TRBrace

TRBracket

TRParen

TRange

TReal

TScopeOperator

TSemicolon

TSequence

TSet

TStringLit

TTab

TThen

TTuple

TTupletype

TUnknown

TXor

TypedLinkedList

TypedLinkedList$TypedLinkedListIterator

X1PAdditiveExpressionTail

X1PAttributeOrAssociationExpressionBody

X1PClassifierExpressionBody

X1PCommaExpression

X1PContextDeclaration

X1PFeatureCallParameterOption

X1PLetExp

X1PLogicalExpressionTail

X1PMessageArgumentsTail

X1PMultiplicativeExpressionTail

X1POperationExpressionBody

X1PPathNameTail

X1PPropertyCallExpressionTail

X1PVariableDeclarationListTail

X2PAdditiveExpressionTail

X2PAttributeOrAssociationExpressionBody

X2PClassifierExpressionBody

X2PCommaExpression

X2PContextDeclaration

X2PFeatureCallParameterOption

X2PLetExp

X2PLogicalExpressionTail

X2PMessageArgumentsTail

X2PMultiplicativeExpressionTail

X2POperationExpressionBody

X2PPathNameTail

X2PPropertyCallExpressionTail

X2PVariableDeclarationListTail

org.ocltf.concretesyntax.impl

org.ocltf.parser

org.ocltf.parser.analysis

org.ocltf.parser.lexer

org.ocltf.parser.parser

org.ocltf.translation

java.lang

java.util

org.ocltf.parser.analysis

org.ocltf.parser.parser

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
260%75%25%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Parser

ParserException

State

TokenIndex

org.ocltf.parser

org.ocltf.translation

java.io

java.lang

java.util

org.ocltf.parser.analysis

org.ocltf.parser.lexer

org.ocltf.parser.node

org.ocltf.templateengine

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1350%75%25%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
TemplateEngine

TemplateEngineException

org.ocltf.translation.library

java.io

java.lang

java.util

Cycles

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

PackageCyclic Dependencies
org.ocltforg.ocltf.translation.library

org.ocltf.translation

org.ocltf.translation.library

org.ocltf.concretesyntax.implorg.ocltf.translation

org.ocltf.translation.library

org.ocltf.translation

org.ocltf.parserorg.ocltf.parser.analysis

org.ocltf.parser.node

org.ocltf.parser.analysis

org.ocltf.parser.analysisorg.ocltf.parser.node

org.ocltf.parser.analysis

org.ocltf.parser.lexerorg.ocltf.parser.node

org.ocltf.parser.analysis

org.ocltf.parser.node

org.ocltf.parser.nodeorg.ocltf.parser.analysis

org.ocltf.parser.node

org.ocltf.parser.parserorg.ocltf.parser.analysis

org.ocltf.parser.node

org.ocltf.parser.analysis

org.ocltf.testorg.ocltf.translation.library

org.ocltf.translation

org.ocltf.translation.library

org.ocltf.translationorg.ocltf.translation.library

org.ocltf.translation

org.ocltf.translation.libraryorg.ocltf.translation

org.ocltf.translation.library

Explanations

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

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

TermDescription
Number of ClassesThe number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent CouplingsThe number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent CouplingsThe number of other packages that the classes in the package depend upon is an indicator of the package's independence.
AbstractnessThe 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.
InstabilityThe 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.
DistanceThe 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.
CyclesPackages 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.