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.codestreet.messageforge 104 32 72 0 13 0.31 100% 31%

Packages

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

com.codestreet.messageforge

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 13 31% 100% 31%
Abstract Classes Concrete Classes Used by Packages Uses Packages
BeanFactory

Converter

ConverterBeanAndJMS

ConverterBeanAndTibrv

ConverterJMS

ConverterSerialization

ConverterTibrv

ConverterXML

RArrayCompare

RBase64

RBeanValidator

RFld

RFldArray

RFldConstraint

RFldConstraintDatetime

RFldConstraintF32

RFldConstraintF64

RFldConstraintI16

RFldConstraintI32

RFldConstraintI64

RFldConstraintI8

RFldConstraintNumeric

RFldConstraintString

RFldHashtable

RFldInterface

RFldList

RFldMapInterface

RFldNumeric

RFunctor

RMapMessage

RMsgFactory

RValidatableBean

BeanValidationException

CMailType

ConverterException

FactoryException

FieldValidationException

MappingException

MsgValidationException

ProtocolException

RBaseException

RBaseRuntimeException

RBeanInfo

RBusinessException

RDateFormat

RFldBean

RFldBeanList

RFldBool

RFldConstraintDatetimeEnum

RFldConstraintDatetimeMinMax

RFldConstraintF32Enum

RFldConstraintF32MinMax

RFldConstraintF64Enum

RFldConstraintF64MinMax

RFldConstraintI16Enum

RFldConstraintI16MinMax

RFldConstraintI32Enum

RFldConstraintI32MinMax

RFldConstraintI64Enum

RFldConstraintI64MinMax

RFldConstraintI8Enum

RFldConstraintI8MinMax

RFldConstraintStringEnum

RFldConstraintStringLength

RFldDatetime

RFldDatetimeArray

RFldDecimal

RFldF32

RFldF32Array

RFldF64

RFldF64Array

RFldFactory

RFldI16

RFldI16Array

RFldI32

RFldI32Array

RFldI64

RFldI64Array

RFldI8

RFldI8Array

RFldMap

RFldMemo

RFldMoney

RFldMsgObj

RFldMsgObjArray

RFldMsgObjHashtable

RFldOpaque

RFldString

RFldStringArray

RFldStringHashtable

RFldStringList

RFldTibrvIPAddr

RFldTibrvIPPort

RFldTibrvMsg

RFldTibrvMsgArray

RFldType

RFldXml

RMapping

RMoney

RMsg

RMsgFactoryImpl

RRequiredGrp

RSystemException

RURLDecoder

com.tibco.tibrv

java.io

java.lang

java.lang.reflect

java.math

java.net

java.sql

java.text

java.util

javax.jms

org.exolab.castor.mapping

org.jdom

org.jdom.input

Cycles

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

There are no cyclic dependancies.

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.