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.apache.axis.message.addressing 30 25 5 3 17 17.0% 85.0% 2.0% 1
org.apache.axis.message.addressing.handler 4 4 0 0 21 0.0% 100.0% 0.0% 1
org.apache.axis.message.addressing.tools.wsdl 6 5 1 0 10 17.0% 100.0% 17.0% 1
org.apache.axis.message.addressing.util 3 1 2 3 13 67.0% 81.0% 48.0% 1
org.apache.ws.addressing.handler 5 4 1 1 15 20.0% 94.0% 14.0% 1
org.apache.ws.addressing.uuid 4 3 1 2 6 25.0% 75.0% 0.0% 1

Packages

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

org.apache.axis.message.addressing

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 17 17.0% 85.0% 2.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.axis.message.addressing.AddressingHeaderItem
org.apache.axis.message.addressing.AddressingVersion
org.apache.axis.message.addressing.AnyContentTypeList
org.apache.axis.message.addressing.Constants
org.apache.axis.message.addressing.DOMAppendable
org.apache.axis.message.addressing.Action
org.apache.axis.message.addressing.Address
org.apache.axis.message.addressing.AddressingFormatException
org.apache.axis.message.addressing.AddressingHeaderFault
org.apache.axis.message.addressing.AddressingHeaders
org.apache.axis.message.addressing.AttributedQName
org.apache.axis.message.addressing.AttributedURI
org.apache.axis.message.addressing.EndpointReference
org.apache.axis.message.addressing.EndpointReferenceType
org.apache.axis.message.addressing.FaultSubcodeValues
org.apache.axis.message.addressing.FaultTo
org.apache.axis.message.addressing.From
org.apache.axis.message.addressing.MessageID
org.apache.axis.message.addressing.MetaDataType
org.apache.axis.message.addressing.PortType
org.apache.axis.message.addressing.Recipient
org.apache.axis.message.addressing.ReferenceParametersType
org.apache.axis.message.addressing.ReferencePropertiesType
org.apache.axis.message.addressing.RelatesTo
org.apache.axis.message.addressing.Relationship
org.apache.axis.message.addressing.RelationshipTypeValues
org.apache.axis.message.addressing.ReplyAfterType
org.apache.axis.message.addressing.ReplyTo
org.apache.axis.message.addressing.ServiceNameType
org.apache.axis.message.addressing.To
org.apache.axis.message.addressing.handler
org.apache.axis.message.addressing.util
org.apache.ws.addressing.handler
java.io
java.lang
java.util
javax.xml.namespace
javax.xml.parsers
javax.xml.soap
org.apache.axis
org.apache.axis.description
org.apache.axis.encoding
org.apache.axis.encoding.ser
org.apache.axis.message
org.apache.axis.message.addressing.util
org.apache.axis.soap
org.apache.axis.types
org.apache.axis.utils
org.apache.commons.logging
org.w3c.dom

org.apache.axis.message.addressing.handler

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 21 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.axis.message.addressing.handler.AddressingHandler
org.apache.axis.message.addressing.handler.AxisClientSideAddressingHandler
org.apache.axis.message.addressing.handler.AxisServerSideAddressingHandler
org.apache.axis.message.addressing.handler.GenericAxisHandler
None java.io
java.lang
java.util
javax.xml.namespace
javax.xml.rpc
javax.xml.rpc.handler
javax.xml.rpc.handler.soap
javax.xml.soap
org.apache.axis
org.apache.axis.client
org.apache.axis.components.uuid
org.apache.axis.handlers
org.apache.axis.message
org.apache.axis.message.addressing
org.apache.axis.message.addressing.util
org.apache.axis.soap
org.apache.axis.types
org.apache.commons.logging
org.apache.ws.addressing.handler
org.apache.ws.addressing.uuid
org.w3c.dom

org.apache.axis.message.addressing.tools.wsdl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 10 17.0% 100.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.axis.message.addressing.tools.wsdl.JavaClassWithImportsWriter
org.apache.axis.message.addressing.tools.wsdl.JavaAddressingGeneratorFactory
org.apache.axis.message.addressing.tools.wsdl.JavaAddressingServiceIfaceImplWriter
org.apache.axis.message.addressing.tools.wsdl.JavaAddressingServiceImplWriter
org.apache.axis.message.addressing.tools.wsdl.JavaAddressingServiceWriter
org.apache.axis.message.addressing.tools.wsdl.WSDL2Java
None java.io
java.lang
java.util
javax.wsdl
javax.xml.namespace
org.apache.axis.utils
org.apache.axis.wsdl
org.apache.axis.wsdl.gen
org.apache.axis.wsdl.symbolTable
org.apache.axis.wsdl.toJava

org.apache.axis.message.addressing.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 13 67.0% 81.0% 48.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.axis.message.addressing.util.AddressingUtils
org.apache.axis.message.addressing.util.TextExtractor
org.apache.axis.message.addressing.util.WsaVersion
org.apache.axis.message.addressing
org.apache.axis.message.addressing.handler
org.apache.ws.addressing.handler
java.io
java.lang
java.util
javax.wsdl
javax.wsdl.extensions
javax.xml.namespace
javax.xml.rpc.handler
javax.xml.soap
org.apache.axis
org.apache.axis.message.addressing
org.apache.axis.utils
org.w3c.dom
org.xml.sax

org.apache.ws.addressing.handler

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 15 20.0% 94.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.addressing.handler.AbstractAddressingHandler
org.apache.ws.addressing.handler.ClientSideAddressingHandler
org.apache.ws.addressing.handler.ServerSideAddressingHandler
org.apache.ws.addressing.handler.ServerSideAddressingHandler$1
org.apache.ws.addressing.handler.ServerSideAddressingHandler$FactoryThreadLocal
org.apache.axis.message.addressing.handler
java.io
java.lang
java.net
java.util
javax.xml.namespace
javax.xml.rpc
javax.xml.rpc.handler
javax.xml.rpc.handler.soap
javax.xml.soap
javax.xml.transform
org.apache.axis.message.addressing
org.apache.axis.message.addressing.util
org.apache.axis.types
org.apache.commons.logging
org.apache.ws.addressing.uuid

org.apache.ws.addressing.uuid

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 6 25.0% 75.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.addressing.uuid.UUIdGenerator
org.apache.ws.addressing.uuid.AxisUUIdGenerator
org.apache.ws.addressing.uuid.JugUUIdGenerator
org.apache.ws.addressing.uuid.UUIdGeneratorFactory
org.apache.axis.message.addressing.handler
org.apache.ws.addressing.handler
java.lang
java.lang.reflect
javax.xml.rpc
org.apache.axis.components.uuid
org.apache.commons.discovery
org.apache.commons.discovery.tools

Cycles

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

Package Package Dependencies
org.apache.axis.message.addressing org.apache.axis.message.addressing.util
org.apache.axis.message.addressing
org.apache.axis.message.addressing.handler org.apache.axis.message.addressing
org.apache.axis.message.addressing.util
org.apache.axis.message.addressing
org.apache.axis.message.addressing.util org.apache.axis.message.addressing
org.apache.axis.message.addressing.util
org.apache.ws.addressing.handler org.apache.axis.message.addressing
org.apache.axis.message.addressing.util
org.apache.axis.message.addressing

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.