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
de.schlichtherle.truezip.crypto 7 4 3 2 7 43.0% 78.0% 21.0% 1
de.schlichtherle.truezip.crypto.param 3 1 2 5 2 67.0% 29.0% 5.0% 1
de.schlichtherle.truezip.fs.archive.zip 32 29 3 0 26 9.0% 100.0% 9.0% 1
de.schlichtherle.truezip.key 26 14 12 6 6 46.0% 50.0% 4.0% 1
de.schlichtherle.truezip.key.pbe 4 1 3 3 4 75.0% 57.0% 32.0% 1
de.schlichtherle.truezip.key.pbe.console 5 3 2 1 7 40.0% 88.0% 27.000002% 1
de.schlichtherle.truezip.key.pbe.swing 34 28 6 1 21 18.0% 95.0% 13.0% 1
de.schlichtherle.truezip.key.sl 4 3 1 1 7 25.0% 88.0% 12.0% 1
de.schlichtherle.truezip.key.spi 2 0 2 2 4 100.0% 67.0% 67.0% 1
de.schlichtherle.truezip.nio.charset 6 4 2 0 6 33.0% 100.0% 33.0% 1
de.schlichtherle.truezip.zip 76 59 17 1 20 22.0% 95.0% 18.0% 1

Packages

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

de.schlichtherle.truezip.crypto

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 7 43.0% 78.0% 21.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.crypto.CipherReadOnlyFile
de.schlichtherle.truezip.crypto.SeekableBlockCipher
de.schlichtherle.truezip.crypto.package-info
de.schlichtherle.truezip.crypto.BufferedPartialBlockCipher
de.schlichtherle.truezip.crypto.CipherOutputStream
de.schlichtherle.truezip.crypto.SICSeekableBlockCipher
de.schlichtherle.truezip.crypto.SuspensionPenalty
de.schlichtherle.truezip.key
de.schlichtherle.truezip.zip
de.schlichtherle.truezip.io
de.schlichtherle.truezip.rof
de.schlichtherle.truezip.util
java.io
java.lang
org.bouncycastle.crypto
org.bouncycastle.crypto.params

de.schlichtherle.truezip.crypto.param

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 2 67.0% 29.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.crypto.param.KeyStrength
de.schlichtherle.truezip.crypto.param.package-info
de.schlichtherle.truezip.crypto.param.AesKeyStrength
de.schlichtherle.truezip.fs.archive.zip
de.schlichtherle.truezip.key.pbe
de.schlichtherle.truezip.key.pbe.console
de.schlichtherle.truezip.key.pbe.swing
de.schlichtherle.truezip.zip
java.lang
java.util

de.schlichtherle.truezip.fs.archive.zip

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 26 9.0% 100.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.fs.archive.zip.KeyController
de.schlichtherle.truezip.fs.archive.zip.KeyProviderSyncStrategy
de.schlichtherle.truezip.fs.archive.zip.package-info
de.schlichtherle.truezip.fs.archive.zip.CheckedJarDriver
de.schlichtherle.truezip.fs.archive.zip.CheckedOdfDriver
de.schlichtherle.truezip.fs.archive.zip.CheckedReadOnlySfxDriver
de.schlichtherle.truezip.fs.archive.zip.CheckedZipDriver
de.schlichtherle.truezip.fs.archive.zip.JarDriver
de.schlichtherle.truezip.fs.archive.zip.JarDriverEntry
de.schlichtherle.truezip.fs.archive.zip.KeyManagerZipCryptoParameters
de.schlichtherle.truezip.fs.archive.zip.KeyManagerZipCryptoParameters$1
de.schlichtherle.truezip.fs.archive.zip.KeyManagerZipCryptoParameters$WinZipAes
de.schlichtherle.truezip.fs.archive.zip.KeyProviderSyncStrategy$1
de.schlichtherle.truezip.fs.archive.zip.KeyProviderSyncStrategy$2
de.schlichtherle.truezip.fs.archive.zip.OdfDriver
de.schlichtherle.truezip.fs.archive.zip.OdfOutputShop
de.schlichtherle.truezip.fs.archive.zip.OdfOutputShop$1Output
de.schlichtherle.truezip.fs.archive.zip.OptionOutputSocket
de.schlichtherle.truezip.fs.archive.zip.PromptingKeyManagerService
de.schlichtherle.truezip.fs.archive.zip.ReadOnlySfxDriver
de.schlichtherle.truezip.fs.archive.zip.ZipDriver
de.schlichtherle.truezip.fs.archive.zip.ZipDriverEntry
de.schlichtherle.truezip.fs.archive.zip.ZipDriverEntry$1
de.schlichtherle.truezip.fs.archive.zip.ZipDriverService
de.schlichtherle.truezip.fs.archive.zip.ZipInputShop
de.schlichtherle.truezip.fs.archive.zip.ZipInputShop$1Input
de.schlichtherle.truezip.fs.archive.zip.ZipKeyController
de.schlichtherle.truezip.fs.archive.zip.ZipOutputShop
de.schlichtherle.truezip.fs.archive.zip.ZipOutputShop$1Output
de.schlichtherle.truezip.fs.archive.zip.ZipOutputShop$BufferedEntryOutputStream
de.schlichtherle.truezip.fs.archive.zip.ZipOutputShop$DirectoryTemplate
de.schlichtherle.truezip.fs.archive.zip.ZipOutputShop$EntryOutputStream
None de.schlichtherle.truezip.crypto.param
de.schlichtherle.truezip.entry
de.schlichtherle.truezip.fs
de.schlichtherle.truezip.fs.spi
de.schlichtherle.truezip.io
de.schlichtherle.truezip.key
de.schlichtherle.truezip.key.pbe
de.schlichtherle.truezip.key.pbe.console
de.schlichtherle.truezip.key.pbe.swing
de.schlichtherle.truezip.key.sl
de.schlichtherle.truezip.key.spi
de.schlichtherle.truezip.rof
de.schlichtherle.truezip.socket
de.schlichtherle.truezip.socket.sl
de.schlichtherle.truezip.util
de.schlichtherle.truezip.zip
java.awt
java.io
java.lang
java.net
java.nio.channels
java.nio.charset
java.util
java.util.logging
java.util.zip
org.bouncycastle.crypto

de.schlichtherle.truezip.key

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 6 46.0% 50.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.key.AbstractKeyManagerProvider
de.schlichtherle.truezip.key.KeyManager
de.schlichtherle.truezip.key.KeyManagerProvider
de.schlichtherle.truezip.key.KeyProvider
de.schlichtherle.truezip.key.PromptingKeyProvider$BaseController
de.schlichtherle.truezip.key.PromptingKeyProvider$Controller
de.schlichtherle.truezip.key.PromptingKeyProvider$State
de.schlichtherle.truezip.key.PromptingKeyProvider$View
de.schlichtherle.truezip.key.SafeKey
de.schlichtherle.truezip.key.SafeKeyManager
de.schlichtherle.truezip.key.SafeKeyProvider
de.schlichtherle.truezip.key.package-info
de.schlichtherle.truezip.key.CacheableUnknownKeyException
de.schlichtherle.truezip.key.KeyPromptingCancelledException
de.schlichtherle.truezip.key.KeyPromptingDisabledException
de.schlichtherle.truezip.key.KeyPromptingInterruptedException
de.schlichtherle.truezip.key.KeyPromptingTimeoutException
de.schlichtherle.truezip.key.PromptingKeyManager
de.schlichtherle.truezip.key.PromptingKeyProvider
de.schlichtherle.truezip.key.PromptingKeyProvider$1
de.schlichtherle.truezip.key.PromptingKeyProvider$ReadController
de.schlichtherle.truezip.key.PromptingKeyProvider$State$1
de.schlichtherle.truezip.key.PromptingKeyProvider$State$2
de.schlichtherle.truezip.key.PromptingKeyProvider$State$3
de.schlichtherle.truezip.key.PromptingKeyProvider$WriteController
de.schlichtherle.truezip.key.UnknownKeyException
de.schlichtherle.truezip.fs.archive.zip
de.schlichtherle.truezip.key.pbe
de.schlichtherle.truezip.key.pbe.console
de.schlichtherle.truezip.key.pbe.swing
de.schlichtherle.truezip.key.sl
de.schlichtherle.truezip.key.spi
de.schlichtherle.truezip.crypto
java.io
java.lang
java.net
java.security
java.util

de.schlichtherle.truezip.key.pbe

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 4 75.0% 57.0% 32.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.key.pbe.SafePbeParameters
de.schlichtherle.truezip.key.pbe.SafePbeParametersView
de.schlichtherle.truezip.key.pbe.package-info
de.schlichtherle.truezip.key.pbe.AesPbeParameters
de.schlichtherle.truezip.fs.archive.zip
de.schlichtherle.truezip.key.pbe.console
de.schlichtherle.truezip.key.pbe.swing
de.schlichtherle.truezip.crypto.param
de.schlichtherle.truezip.key
java.lang
java.util

de.schlichtherle.truezip.key.pbe.console

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 40.0% 88.0% 27.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.key.pbe.console.ConsoleSafePbeParametersView
de.schlichtherle.truezip.key.pbe.console.package-info
de.schlichtherle.truezip.key.pbe.console.ConsoleAesPbeParametersView
de.schlichtherle.truezip.key.pbe.console.ConsoleSafePbeParametersView$1
de.schlichtherle.truezip.key.pbe.console.ConsoleSafePbeParametersView$PromptingLock
de.schlichtherle.truezip.fs.archive.zip
de.schlichtherle.truezip.crypto.param
de.schlichtherle.truezip.key
de.schlichtherle.truezip.key.pbe
java.io
java.lang
java.net
java.util

de.schlichtherle.truezip.key.pbe.swing

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 21 18.0% 95.0% 13.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.key.pbe.swing.Feedback
de.schlichtherle.truezip.key.pbe.swing.InvalidKeyFeedback
de.schlichtherle.truezip.key.pbe.swing.KeyPanel
de.schlichtherle.truezip.key.pbe.swing.SwingSafePbeParametersView
de.schlichtherle.truezip.key.pbe.swing.UnknownKeyFeedback
de.schlichtherle.truezip.key.pbe.swing.package-info
de.schlichtherle.truezip.key.pbe.swing.AuthenticationPanel
de.schlichtherle.truezip.key.pbe.swing.AuthenticationPanel$1
de.schlichtherle.truezip.key.pbe.swing.AuthenticationPanel$2
de.schlichtherle.truezip.key.pbe.swing.AuthenticationPanel$3
de.schlichtherle.truezip.key.pbe.swing.AuthenticationPanel$3$1
de.schlichtherle.truezip.key.pbe.swing.BasicFeedback
de.schlichtherle.truezip.key.pbe.swing.BasicInvalidKeyFeedback
de.schlichtherle.truezip.key.pbe.swing.BasicInvalidKeyFeedback$1
de.schlichtherle.truezip.key.pbe.swing.BasicUnknownKeyFeedback
de.schlichtherle.truezip.key.pbe.swing.HurlingWindowFeedback
de.schlichtherle.truezip.key.pbe.swing.HurlingWindowFeedback$1
de.schlichtherle.truezip.key.pbe.swing.KeyPanel$1
de.schlichtherle.truezip.key.pbe.swing.KeyPanel$KeyPanelListener
de.schlichtherle.truezip.key.pbe.swing.KeyStrengthPanel
de.schlichtherle.truezip.key.pbe.swing.ReadKeyPanel
de.schlichtherle.truezip.key.pbe.swing.ReadKeyPanel$1
de.schlichtherle.truezip.key.pbe.swing.ReadKeyPanel$2
de.schlichtherle.truezip.key.pbe.swing.ReadKeyPanel$3
de.schlichtherle.truezip.key.pbe.swing.ReadKeyPanel$3$1
de.schlichtherle.truezip.key.pbe.swing.SwingAesPbeParametersView
de.schlichtherle.truezip.key.pbe.swing.SwingSafePbeParametersView$1PromptReadKey
de.schlichtherle.truezip.key.pbe.swing.SwingSafePbeParametersView$1PromptWriteKey
de.schlichtherle.truezip.key.pbe.swing.WeakKeyException
de.schlichtherle.truezip.key.pbe.swing.WriteKeyPanel
de.schlichtherle.truezip.key.pbe.swing.WriteKeyPanel$1
de.schlichtherle.truezip.key.pbe.swing.WriteKeyPanel$2
de.schlichtherle.truezip.key.pbe.swing.WriteKeyPanel$3
de.schlichtherle.truezip.key.pbe.swing.WriteKeyPanel$3$1
de.schlichtherle.truezip.fs.archive.zip
de.schlichtherle.truezip.awt
de.schlichtherle.truezip.crypto.param
de.schlichtherle.truezip.io.swing
de.schlichtherle.truezip.key
de.schlichtherle.truezip.key.pbe
de.schlichtherle.truezip.swing
de.schlichtherle.truezip.util
java.awt
java.awt.event
java.io
java.lang
java.lang.reflect
java.net
java.security
java.text
java.util
java.util.zip
javax.swing
javax.swing.event
javax.swing.filechooser
javax.swing.text

de.schlichtherle.truezip.key.sl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 25.0% 88.0% 12.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.key.sl.package-info
de.schlichtherle.truezip.key.sl.KeyManagerLocator
de.schlichtherle.truezip.key.sl.KeyManagerLocator$Boot
de.schlichtherle.truezip.key.sl.KeyManagerLocator$ClassComparator
de.schlichtherle.truezip.fs.archive.zip
de.schlichtherle.truezip.fs.spi
de.schlichtherle.truezip.key
de.schlichtherle.truezip.key.spi
de.schlichtherle.truezip.util
java.lang
java.util
java.util.logging

de.schlichtherle.truezip.key.spi

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 4 100.0% 67.0% 67.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.key.spi.KeyManagerService
de.schlichtherle.truezip.key.spi.package-info
None de.schlichtherle.truezip.fs.archive.zip
de.schlichtherle.truezip.key.sl
de.schlichtherle.truezip.key
de.schlichtherle.truezip.util
java.lang
java.util

de.schlichtherle.truezip.nio.charset

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 33.0% 100.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.nio.charset.OctetCharset
de.schlichtherle.truezip.nio.charset.package-info
de.schlichtherle.truezip.nio.charset.Ibm437Charset
de.schlichtherle.truezip.nio.charset.OctetCharset$Decoder
de.schlichtherle.truezip.nio.charset.OctetCharset$Encoder
de.schlichtherle.truezip.nio.charset.ZipCharsetProvider
None java.lang
java.nio
java.nio.charset
java.nio.charset.spi
java.util
java.util.logging

de.schlichtherle.truezip.zip

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 20 22.0% 95.0% 18.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.schlichtherle.truezip.zip.DateTimeConverter
de.schlichtherle.truezip.zip.DecoratingOutputMethod
de.schlichtherle.truezip.zip.ExtraField
de.schlichtherle.truezip.zip.OutputMethod
de.schlichtherle.truezip.zip.RawZipFile
de.schlichtherle.truezip.zip.RawZipOutputStream
de.schlichtherle.truezip.zip.RawZipOutputStream$Crc32OutputMethod
de.schlichtherle.truezip.zip.RawZipOutputStream$EncryptedOutputMethod
de.schlichtherle.truezip.zip.WinZipAesParameters
de.schlichtherle.truezip.zip.ZipCharsetParameters
de.schlichtherle.truezip.zip.ZipCryptoParameters
de.schlichtherle.truezip.zip.ZipEntryFactory
de.schlichtherle.truezip.zip.ZipFileParameters
de.schlichtherle.truezip.zip.ZipOutputStreamParameters
de.schlichtherle.truezip.zip.ZipParameters
de.schlichtherle.truezip.zip.ZipParametersProvider
de.schlichtherle.truezip.zip.package-info
de.schlichtherle.truezip.zip.CRC32Exception
de.schlichtherle.truezip.zip.Constants
de.schlichtherle.truezip.zip.CountingInputStream
de.schlichtherle.truezip.zip.Crc32InputStream
de.schlichtherle.truezip.zip.Crc32OutputStream
de.schlichtherle.truezip.zip.DateTimeConverter$1
de.schlichtherle.truezip.zip.DateTimeConverter$2
de.schlichtherle.truezip.zip.DefaultExtraField
de.schlichtherle.truezip.zip.DefaultZipCharsetParameters
de.schlichtherle.truezip.zip.DefaultZipFileParameters
de.schlichtherle.truezip.zip.DefaultZipOutputStreamParameters
de.schlichtherle.truezip.zip.DummyByteInputStream
de.schlichtherle.truezip.zip.ExtraFields
de.schlichtherle.truezip.zip.Jdk6Deflater
de.schlichtherle.truezip.zip.Jdk6Inflater
de.schlichtherle.truezip.zip.LittleEndian
de.schlichtherle.truezip.zip.OffsetPositionMapper
de.schlichtherle.truezip.zip.PositionMapper
de.schlichtherle.truezip.zip.RawZipFile$EntryReadOnlyFile
de.schlichtherle.truezip.zip.RawZipFile$SafeBufferedReadOnlyFile
de.schlichtherle.truezip.zip.RawZipOutputStream$AppendingLEDataOutputStream
de.schlichtherle.truezip.zip.RawZipOutputStream$BZip2OutputMethod
de.schlichtherle.truezip.zip.RawZipOutputStream$Crc32CheckingOutputMethod
de.schlichtherle.truezip.zip.RawZipOutputStream$Crc32UpdatingOutputMethod
de.schlichtherle.truezip.zip.RawZipOutputStream$DeflaterOutputMethod
de.schlichtherle.truezip.zip.RawZipOutputStream$RawOutputMethod
de.schlichtherle.truezip.zip.RawZipOutputStream$WinZipAesOutputMethod
de.schlichtherle.truezip.zip.SingleReadOnlyFilePool
de.schlichtherle.truezip.zip.UByte
de.schlichtherle.truezip.zip.UInt
de.schlichtherle.truezip.zip.ULong
de.schlichtherle.truezip.zip.UShort
de.schlichtherle.truezip.zip.WinZipAesCipher
de.schlichtherle.truezip.zip.WinZipAesEntryExtraField
de.schlichtherle.truezip.zip.WinZipAesEntryOutputStream
de.schlichtherle.truezip.zip.WinZipAesEntryParameters
de.schlichtherle.truezip.zip.WinZipAesEntryReadOnlyFile
de.schlichtherle.truezip.zip.WinZipAesUtils
de.schlichtherle.truezip.zip.ZipAuthenticationException
de.schlichtherle.truezip.zip.ZipCryptoException
de.schlichtherle.truezip.zip.ZipDeflaterOutputStream
de.schlichtherle.truezip.zip.ZipDeflaterOutputStream$1
de.schlichtherle.truezip.zip.ZipDeflaterOutputStream$DeflaterFactory
de.schlichtherle.truezip.zip.ZipDeflaterOutputStream$Jdk6DeflaterFactory
de.schlichtherle.truezip.zip.ZipEntry
de.schlichtherle.truezip.zip.ZipFile
de.schlichtherle.truezip.zip.ZipFile$1CloneEnumeration
de.schlichtherle.truezip.zip.ZipFile$1EntryIterator
de.schlichtherle.truezip.zip.ZipFile$DefaultReadOnlyFilePool
de.schlichtherle.truezip.zip.ZipInflaterInputStream
de.schlichtherle.truezip.zip.ZipInflaterInputStream$1
de.schlichtherle.truezip.zip.ZipInflaterInputStream$InflaterFactory
de.schlichtherle.truezip.zip.ZipInflaterInputStream$Jdk6InflaterFactory
de.schlichtherle.truezip.zip.ZipKeyException
de.schlichtherle.truezip.zip.ZipOutputStream
de.schlichtherle.truezip.zip.ZipOutputStream$1CloneEnumeration
de.schlichtherle.truezip.zip.ZipOutputStream$1EntryIterator
de.schlichtherle.truezip.zip.ZipParametersException
de.schlichtherle.truezip.zip.ZipParametersUtils
de.schlichtherle.truezip.fs.archive.zip
de.schlichtherle.truezip.crypto
de.schlichtherle.truezip.crypto.param
de.schlichtherle.truezip.io
de.schlichtherle.truezip.rof
de.schlichtherle.truezip.util
java.io
java.lang
java.nio.charset
java.security
java.util
java.util.zip
org.apache.commons.compress.compressors.bzip2
org.bouncycastle.crypto
org.bouncycastle.crypto.digests
org.bouncycastle.crypto.engines
org.bouncycastle.crypto.generators
org.bouncycastle.crypto.io
org.bouncycastle.crypto.macs
org.bouncycastle.crypto.params
org.bouncycastle.util.io

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.