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 TC CC AC Ca Ce A I D V
org.opendaylight.protocol.bgp.parser.spi 38 8 30 1 25 79.0% 96.0% 75.0% 1
org.opendaylight.protocol.bgp.parser.spi.extended.community 9 2 7 2 8 78.0% 80.0% 58.0% 1
org.opendaylight.protocol.bgp.parser.spi.pojo 22 21 1 0 26 5.0% 100.0% 5.0% 1

Packages

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

org.opendaylight.protocol.bgp.parser.spi

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 25 79.0% 96.0% 75.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator
org.opendaylight.protocol.bgp.parser.spi.AbstractMessageRegistry
org.opendaylight.protocol.bgp.parser.spi.AddressFamilyRegistry
org.opendaylight.protocol.bgp.parser.spi.AttributeParser
org.opendaylight.protocol.bgp.parser.spi.AttributeRegistry
org.opendaylight.protocol.bgp.parser.spi.AttributeSerializer
org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext
org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator
org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext
org.opendaylight.protocol.bgp.parser.spi.BgpPrefixSidTlvParser
org.opendaylight.protocol.bgp.parser.spi.BgpPrefixSidTlvRegistry
org.opendaylight.protocol.bgp.parser.spi.BgpPrefixSidTlvSerializer
org.opendaylight.protocol.bgp.parser.spi.CapabilityParser
org.opendaylight.protocol.bgp.parser.spi.CapabilityRegistry
org.opendaylight.protocol.bgp.parser.spi.CapabilitySerializer
org.opendaylight.protocol.bgp.parser.spi.MessageParser
org.opendaylight.protocol.bgp.parser.spi.MessageRegistry
org.opendaylight.protocol.bgp.parser.spi.MessageSerializer
org.opendaylight.protocol.bgp.parser.spi.MultiPathSupport
org.opendaylight.protocol.bgp.parser.spi.NextHopParserSerializer
org.opendaylight.protocol.bgp.parser.spi.NlriParser
org.opendaylight.protocol.bgp.parser.spi.NlriRegistry
org.opendaylight.protocol.bgp.parser.spi.NlriSerializer
org.opendaylight.protocol.bgp.parser.spi.ParameterParser
org.opendaylight.protocol.bgp.parser.spi.ParameterRegistry
org.opendaylight.protocol.bgp.parser.spi.ParameterSerializer
org.opendaylight.protocol.bgp.parser.spi.PeerConstraint
org.opendaylight.protocol.bgp.parser.spi.PeerSpecificParserConstraint
org.opendaylight.protocol.bgp.parser.spi.PeerSpecificParserConstraintProvider
org.opendaylight.protocol.bgp.parser.spi.SubsequentAddressFamilyRegistry
org.opendaylight.protocol.bgp.parser.spi.AttributeUtil
org.opendaylight.protocol.bgp.parser.spi.BgpPrefixSidTlvUtil
org.opendaylight.protocol.bgp.parser.spi.CapabilityUtil
org.opendaylight.protocol.bgp.parser.spi.MessageUtil
org.opendaylight.protocol.bgp.parser.spi.MultiPathSupportUtil
org.opendaylight.protocol.bgp.parser.spi.MultiprotocolCapabilitiesUtil
org.opendaylight.protocol.bgp.parser.spi.ParameterUtil
org.opendaylight.protocol.bgp.parser.spi.PathIdUtil
org.opendaylight.protocol.bgp.parser.spi.pojo
com.google.common.base
com.google.common.collect
com.google.common.primitives
io.netty.buffer
java.lang
java.util
org.opendaylight.bgp.concepts
org.opendaylight.protocol.bgp.parser
org.opendaylight.protocol.bgp.parser.spi.extended.community
org.opendaylight.protocol.util
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.attributes.bgp.prefix.sid.bgp.prefix.sid.tlvs
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.update.message
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.mp.capabilities
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.update.attributes
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.next.hop
org.opendaylight.yangtools.yang.binding
org.opendaylight.yangtools.yang.common
org.opendaylight.yangtools.yang.data.api
org.opendaylight.yangtools.yang.data.api.schema
org.slf4j

org.opendaylight.protocol.bgp.parser.spi.extended.community

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 8 78.0% 80.0% 58.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opendaylight.protocol.bgp.parser.spi.extended.community.Abstract4OctetAsExtendedCommunity
org.opendaylight.protocol.bgp.parser.spi.extended.community.AbstractIpv4ExtendedCommunity
org.opendaylight.protocol.bgp.parser.spi.extended.community.AbstractOpaqueExtendedCommunity
org.opendaylight.protocol.bgp.parser.spi.extended.community.AbstractTwoOctetAsExtendedCommunity
org.opendaylight.protocol.bgp.parser.spi.extended.community.ExtendedCommunityParser
org.opendaylight.protocol.bgp.parser.spi.extended.community.ExtendedCommunityRegistry
org.opendaylight.protocol.bgp.parser.spi.extended.community.ExtendedCommunitySerializer
org.opendaylight.protocol.bgp.parser.spi.extended.community.ExtendedCommunityUtil
org.opendaylight.protocol.bgp.parser.spi.extended.community.FourOctAsCommonECUtil
org.opendaylight.protocol.bgp.parser.spi
org.opendaylight.protocol.bgp.parser.spi.pojo
io.netty.buffer
java.lang
org.opendaylight.protocol.bgp.parser
org.opendaylight.protocol.util
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.attributes
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.as._4.spec.common
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.extended.community

org.opendaylight.protocol.bgp.parser.spi.pojo

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 26 5.0% 100.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opendaylight.protocol.bgp.parser.spi.pojo.AbstractFamilyRegistry
org.opendaylight.protocol.bgp.parser.spi.pojo.AbstractFamilyRegistry$1
org.opendaylight.protocol.bgp.parser.spi.pojo.PeerSpecificParserConstraintImpl
org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionProviderContext
org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionProviderContext$Holder
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleAddressFamilyRegistry
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleAttributeRegistry
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleAttributeRegistry$1
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleAttributeRegistry$RawAttribute
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleBGPExtensionConsumerContext
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleBGPExtensionProviderContext
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleBGPExtensionProviderContext$1
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleBGPExtensionProviderContextActivator
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleBgpPrefixSidTlvRegistry
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleCapabilityRegistry
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleExtendedCommunityRegistry
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleMessageRegistry
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleNlriRegistry
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleNlriRegistry$1
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleNlriRegistry$2
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleParameterRegistry
org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleSubsequentAddressFamilyRegistry
None com.google.common.base
com.google.common.cache
com.google.common.collect
com.google.common.primitives
io.netty.buffer
java.lang
java.util
java.util.concurrent
java.util.concurrent.atomic
org.opendaylight.bgp.concepts
org.opendaylight.protocol.bgp.parser
org.opendaylight.protocol.bgp.parser.spi
org.opendaylight.protocol.bgp.parser.spi.extended.community
org.opendaylight.protocol.concepts
org.opendaylight.protocol.util
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.attributes
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.attributes.bgp.prefix.sid.bgp.prefix.sid.tlvs
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.update.attributes
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.extended.community
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.next.hop
org.opendaylight.yangtools.yang.binding
org.slf4j

Cycles

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

There are no cyclic dependencies.

Explanation

[ 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.