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.ws.axis.security 2 2 0 0 15 0.0% 100.0% 0.0% 1
org.apache.ws.axis.security.handler 1 0 1 1 9 100.0% 90.0% 90.0% 1
org.apache.ws.security 17 16 1 10 19 6.0% 66.0% 29.0% 1
org.apache.ws.security.action 9 8 1 2 10 11.0% 83.0% 6.0% 1
org.apache.ws.security.components.crypto 8 4 4 6 14 50.0% 70.0% 20.0% 1
org.apache.ws.security.conversation 3 2 1 3 3 33.0% 50.0% 17.0% 1
org.apache.ws.security.conversation.dkalgo 3 2 1 2 4 33.0% 67.0% 0.0% 1
org.apache.ws.security.handler 5 4 1 4 23 20.0% 85.0% 5.0% 1
org.apache.ws.security.message 21 20 1 4 29 5.0% 88.0% 7.0% 1
org.apache.ws.security.message.token 10 10 0 6 19 0.0% 76.0% 24.0% 1
org.apache.ws.security.processor 14 12 2 2 23 14.0% 92.0% 6.0% 1
org.apache.ws.security.saml 7 5 2 3 26 29.0% 90.0% 18.0% 1
org.apache.ws.security.transform 1 1 0 0 12 0.0% 100.0% 0.0% 1
org.apache.ws.security.util 10 10 0 10 21 0.0% 68.0% 32.0% 1

Packages

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

org.apache.ws.axis.security

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 15 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.ws.axis.security.WSDoAllReceiver
org.apache.ws.axis.security.WSDoAllSender
None java.io
java.lang
java.util
javax.xml.namespace
javax.xml.soap
org.apache.axis
org.apache.axis.message
org.apache.axis.utils
org.apache.commons.logging
org.apache.ws.axis.security.handler
org.apache.ws.security
org.apache.ws.security.handler
org.apache.ws.security.util
org.apache.xml.security.utils
org.w3c.dom

org.apache.ws.axis.security.handler

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 9 100.0% 90.0% 90.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.axis.security.handler.WSDoAllHandler
None org.apache.ws.axis.security
java.lang
java.util
javax.xml.namespace
org.apache.axis
org.apache.axis.components.logger
org.apache.axis.utils
org.apache.commons.logging
org.apache.ws.security.handler
org.w3c.dom

org.apache.ws.security

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 19 6.0% 66.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.security.SOAPConstants
org.apache.ws.security.CustomTokenPrincipal
org.apache.ws.security.SOAP11Constants
org.apache.ws.security.SOAP12Constants
org.apache.ws.security.Todolist
org.apache.ws.security.WSConstants
org.apache.ws.security.WSDataRef
org.apache.ws.security.WSDerivedKeyTokenPrincipal
org.apache.ws.security.WSDocInfo
org.apache.ws.security.WSDocInfoStore
org.apache.ws.security.WSEncryptionPart
org.apache.ws.security.WSPasswordCallback
org.apache.ws.security.WSSConfig
org.apache.ws.security.WSSecurityEngine
org.apache.ws.security.WSSecurityEngineResult
org.apache.ws.security.WSSecurityException
org.apache.ws.security.WSUsernameTokenPrincipal
org.apache.ws.axis.security
org.apache.ws.security.action
org.apache.ws.security.components.crypto
org.apache.ws.security.handler
org.apache.ws.security.message
org.apache.ws.security.message.token
org.apache.ws.security.processor
org.apache.ws.security.saml
org.apache.ws.security.transform
org.apache.ws.security.util
java.io
java.lang
java.rmi
java.security
java.security.cert
java.text
java.util
javax.security.auth.callback
javax.xml.namespace
org.apache.commons.logging
org.apache.ws.security.action
org.apache.ws.security.components.crypto
org.apache.ws.security.message.token
org.apache.ws.security.processor
org.apache.ws.security.util
org.apache.xml.security
org.apache.xml.security.transforms
org.opensaml
org.w3c.dom

org.apache.ws.security.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 10 11.0% 83.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.security.action.Action
org.apache.ws.security.action.EncryptionAction
org.apache.ws.security.action.SAMLTokenSignedAction
org.apache.ws.security.action.SAMLTokenUnsignedAction
org.apache.ws.security.action.SignatureAction
org.apache.ws.security.action.SignatureConfirmationAction
org.apache.ws.security.action.TimestampAction
org.apache.ws.security.action.UsernameTokenAction
org.apache.ws.security.action.UsernameTokenSignedAction
org.apache.ws.security
org.apache.ws.security.handler
java.lang
java.util
javax.xml.namespace
org.apache.commons.logging
org.apache.ws.security
org.apache.ws.security.handler
org.apache.ws.security.message
org.apache.ws.security.saml
org.apache.ws.security.util
org.w3c.dom

org.apache.ws.security.components.crypto

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 14 50.0% 70.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.security.components.crypto.AbstractCrypto
org.apache.ws.security.components.crypto.Crypto
org.apache.ws.security.components.crypto.CryptoBase
org.apache.ws.security.components.crypto.CryptoFactory
org.apache.ws.security.components.crypto.BouncyCastle
org.apache.ws.security.components.crypto.CredentialException
org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.components.crypto.X509NameTokenizer
org.apache.ws.security
org.apache.ws.security.handler
org.apache.ws.security.message
org.apache.ws.security.message.token
org.apache.ws.security.processor
org.apache.ws.security.saml
java.io
java.lang
java.lang.reflect
java.math
java.net
java.security
java.security.cert
java.security.interfaces
java.text
java.util
org.apache.commons.logging
org.apache.ws.security
org.apache.ws.security.util
org.apache.xml.security.utils

org.apache.ws.security.conversation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 3 33.0% 50.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.security.conversation.ConversationConstants$DerivationAlgorithm
org.apache.ws.security.conversation.ConversationConstants
org.apache.ws.security.conversation.ConversationException
org.apache.ws.security.conversation.dkalgo
org.apache.ws.security.message
org.apache.ws.security.message.token
java.lang
java.text
java.util

org.apache.ws.security.conversation.dkalgo

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 4 33.0% 67.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.security.conversation.dkalgo.DerivationAlgorithm
org.apache.ws.security.conversation.dkalgo.AlgoFactory
org.apache.ws.security.conversation.dkalgo.P_SHA1
org.apache.ws.security.message
org.apache.ws.security.processor
java.lang
javax.crypto
javax.crypto.spec
org.apache.ws.security.conversation

org.apache.ws.security.handler

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 23 20.0% 85.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.security.handler.WSHandler
org.apache.ws.security.handler.RequestData
org.apache.ws.security.handler.WSHandlerConstants
org.apache.ws.security.handler.WSHandlerResult
org.apache.ws.security.handler.WSS4JHandler
org.apache.ws.axis.security
org.apache.ws.axis.security.handler
org.apache.ws.security.action
org.apache.ws.security.util
java.io
java.lang
java.security
java.security.cert
java.text
java.util
javax.security.auth.callback
javax.xml.namespace
javax.xml.parsers
javax.xml.rpc
javax.xml.rpc.handler
javax.xml.rpc.handler.soap
javax.xml.soap
javax.xml.transform.stream
org.apache.commons.logging
org.apache.ws.security
org.apache.ws.security.action
org.apache.ws.security.components.crypto
org.apache.ws.security.message
org.apache.ws.security.message.token
org.apache.ws.security.util
org.apache.xml.security.utils
org.w3c.dom

org.apache.ws.security.message

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 29 5.0% 88.0% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.security.message.WSSecDerivedKeyBase
org.apache.ws.security.message.EnvelopeIdResolver
org.apache.ws.security.message.WSAddSignatureConfirmation
org.apache.ws.security.message.WSAddTimestamp
org.apache.ws.security.message.WSBaseMessage
org.apache.ws.security.message.WSEncryptBody
org.apache.ws.security.message.WSSAddSAMLToken
org.apache.ws.security.message.WSSAddUsernameToken
org.apache.ws.security.message.WSSecBase
org.apache.ws.security.message.WSSecDKEncrypt
org.apache.ws.security.message.WSSecDKSign
org.apache.ws.security.message.WSSecEncrypt
org.apache.ws.security.message.WSSecEncryptedKey
org.apache.ws.security.message.WSSecHeader
org.apache.ws.security.message.WSSecSAMLToken
org.apache.ws.security.message.WSSecSecurityContextToken
org.apache.ws.security.message.WSSecSignature
org.apache.ws.security.message.WSSecSignatureConfirmation
org.apache.ws.security.message.WSSecTimestamp
org.apache.ws.security.message.WSSecUsernameToken
org.apache.ws.security.message.WSSignEnvelope
org.apache.ws.security.action
org.apache.ws.security.handler
org.apache.ws.security.processor
org.apache.ws.security.saml
java.io
java.lang
java.security
java.security.cert
java.util
javax.crypto
javax.xml.namespace
org.apache.commons.logging
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.conversation
org.apache.ws.security.conversation.dkalgo
org.apache.ws.security.message.token
org.apache.ws.security.saml
org.apache.ws.security.util
org.apache.xml.security.algorithms
org.apache.xml.security.encryption
org.apache.xml.security.exceptions
org.apache.xml.security.keys
org.apache.xml.security.keys.content
org.apache.xml.security.keys.content.x509
org.apache.xml.security.signature
org.apache.xml.security.transforms
org.apache.xml.security.transforms.params
org.apache.xml.security.utils
org.apache.xml.security.utils.resolver
org.apache.xml.utils
org.opensaml
org.w3c.dom

org.apache.ws.security.message.token

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 19 0.0% 76.0% 24.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.ws.security.message.token.BinarySecurity
org.apache.ws.security.message.token.DerivedKeyToken
org.apache.ws.security.message.token.PKIPathSecurity
org.apache.ws.security.message.token.Reference
org.apache.ws.security.message.token.SecurityContextToken
org.apache.ws.security.message.token.SecurityTokenReference
org.apache.ws.security.message.token.SignatureConfirmation
org.apache.ws.security.message.token.Timestamp
org.apache.ws.security.message.token.UsernameToken
org.apache.ws.security.message.token.X509Security
org.apache.ws.security
org.apache.ws.security.handler
org.apache.ws.security.message
org.apache.ws.security.processor
org.apache.ws.security.saml
org.apache.ws.security.transform
java.io
java.lang
java.security
java.security.cert
java.text
java.util
javax.crypto
javax.crypto.spec
javax.security.auth.callback
javax.xml.namespace
org.apache.commons.logging
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.conversation
org.apache.ws.security.util
org.apache.xml.security.exceptions
org.apache.xml.security.keys.content
org.apache.xml.security.keys.content.x509
org.w3c.dom

org.apache.ws.security.processor

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 23 14.0% 92.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.security.processor.Processor
org.apache.ws.security.processor.ProcessorBase
org.apache.ws.security.processor.BinarySecurityTokenProcessor
org.apache.ws.security.processor.DerivedKeyTokenProcessor
org.apache.ws.security.processor.EncryptedDataProcessor
org.apache.ws.security.processor.EncryptedKeyProcessor
org.apache.ws.security.processor.ReferenceListProcessor
org.apache.ws.security.processor.SAMLTokenProcessor
org.apache.ws.security.processor.SecurityContextTokenProcessor
org.apache.ws.security.processor.SignatureConfirmationProcessor
org.apache.ws.security.processor.SignatureProcessor
org.apache.ws.security.processor.TimestampProcessor
org.apache.ws.security.processor.UsernameTokenProcessor
org.apache.ws.security.processor.X509Util
org.apache.ws.security
org.apache.ws.security.saml
java.io
java.lang
java.security
java.security.cert
java.text
java.util
javax.crypto
javax.security.auth.callback
javax.xml.namespace
org.apache.commons.logging
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.conversation.dkalgo
org.apache.ws.security.message
org.apache.ws.security.message.token
org.apache.ws.security.saml
org.apache.ws.security.util
org.apache.xml.security.encryption
org.apache.xml.security.exceptions
org.apache.xml.security.keys
org.apache.xml.security.signature
org.opensaml
org.w3c.dom

org.apache.ws.security.saml

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 26 29.0% 90.0% 18.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.ws.security.saml.SAMLIssuer
org.apache.ws.security.saml.SAMLIssuerFactory
org.apache.ws.security.saml.SAMLIssuerImpl
org.apache.ws.security.saml.SAMLKeyInfo
org.apache.ws.security.saml.SAMLUtil
org.apache.ws.security.saml.WSSecSignatureSAML
org.apache.ws.security.saml.WSSignSAMLEnvelope
org.apache.ws.security.action
org.apache.ws.security.message
org.apache.ws.security.processor
java.lang
java.lang.reflect
java.net
java.security
java.security.cert
java.util
javax.security.auth.callback
javax.xml.namespace
org.apache.commons.logging
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.message
org.apache.ws.security.message.token
org.apache.ws.security.processor
org.apache.ws.security.util
org.apache.xml.security.algorithms
org.apache.xml.security.exceptions
org.apache.xml.security.keys
org.apache.xml.security.keys.content
org.apache.xml.security.keys.content.x509
org.apache.xml.security.signature
org.apache.xml.security.transforms
org.apache.xml.security.transforms.params
org.apache.xml.security.utils
org.opensaml
org.w3c.dom

org.apache.ws.security.transform

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 12 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.ws.security.transform.STRTransform
None java.io
java.lang
java.security.cert
org.apache.commons.logging
org.apache.ws.security
org.apache.ws.security.message.token
org.apache.ws.security.util
org.apache.xml.security.c14n
org.apache.xml.security.signature
org.apache.xml.security.transforms
org.apache.xml.security.utils
org.w3c.dom

org.apache.ws.security.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 21 0.0% 68.0% 32.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.ws.security.util.Base64
org.apache.ws.security.util.DOM2Writer
org.apache.ws.security.util.Loader
org.apache.ws.security.util.Mapping
org.apache.ws.security.util.NSStack
org.apache.ws.security.util.StringUtil
org.apache.ws.security.util.UUIDGenerator
org.apache.ws.security.util.WSSecurityUtil
org.apache.ws.security.util.XMLUtils
org.apache.ws.security.util.XmlSchemaDateFormat
org.apache.ws.axis.security
org.apache.ws.security
org.apache.ws.security.action
org.apache.ws.security.components.crypto
org.apache.ws.security.handler
org.apache.ws.security.message
org.apache.ws.security.message.token
org.apache.ws.security.processor
org.apache.ws.security.saml
org.apache.ws.security.transform
java.io
java.lang
java.lang.reflect
java.net
java.security
java.security.cert
java.text
java.util
javax.crypto
javax.crypto.spec
javax.xml.namespace
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stream
org.apache.commons.logging
org.apache.ws.security
org.apache.ws.security.handler
org.apache.xml.security.algorithms
org.w3c.dom
org.xml.sax

Cycles

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

Package Package Dependencies
org.apache.ws.axis.security org.apache.ws.axis.security.handler
org.apache.ws.security.handler
org.apache.ws.security.message
org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.util
org.apache.ws.axis.security.handler org.apache.ws.security.handler
org.apache.ws.security.message
org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.util
org.apache.ws.security org.apache.ws.security.components.crypto
org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.action org.apache.ws.security.handler
org.apache.ws.security.message
org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.util
org.apache.ws.security.components.crypto org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.handler org.apache.ws.security.message
org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.util
org.apache.ws.security.message org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.util
org.apache.ws.security.message.token org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.util
org.apache.ws.security.processor org.apache.ws.security.message.token
org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.util
org.apache.ws.security.saml org.apache.ws.security.components.crypto
org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.transform org.apache.ws.security.message.token
org.apache.ws.security.util
org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.util
org.apache.ws.security.util org.apache.ws.security
org.apache.ws.security.components.crypto
org.apache.ws.security.util

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.