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 ]

PackageTCCCACCaCeAIDV
com.jayway.maven.plugins.android2620693323.0%79.0%2.0%1
com.jayway.maven.plugins.android.asm330190.0%90.0%10.0%1
com.jayway.maven.plugins.android.common111016279.0%82.0%9.0%1
com.jayway.maven.plugins.android.config3123467.0%57.0%24.0%1
com.jayway.maven.plugins.android.configuration16160660.0%50.0%50.0%1
com.jayway.maven.plugins.android.manifmerger5411720.0%88.0%8.0%1
com.jayway.maven.plugins.android.phase00clean110050.0%100.0%0.0%1
com.jayway.maven.plugins.android.phase01generatesources5500170.0%100.0%0.0%1
com.jayway.maven.plugins.android.phase04processclasses2200160.0%100.0%0.0%1
com.jayway.maven.plugins.android.phase05compile8800200.0%100.0%0.0%1
com.jayway.maven.plugins.android.phase08preparepackage2200160.0%100.0%0.0%1
com.jayway.maven.plugins.android.phase09package9900240.0%100.0%0.0%1
com.jayway.maven.plugins.android.phase11preintegrationtest110020.0%100.0%0.0%1
com.jayway.maven.plugins.android.phase12integrationtest110020.0%100.0%0.0%1
com.jayway.maven.plugins.android.standalonemojos242401250.0%96.0%4.0%1

Packages

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

com.jayway.maven.plugins.android

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
93323.0%79.0%2.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.jayway.maven.plugins.android.AbstractAndroidMojo
com.jayway.maven.plugins.android.AbstractEmulatorMojo
com.jayway.maven.plugins.android.AbstractInstrumentationMojo
com.jayway.maven.plugins.android.CommandExecutor
com.jayway.maven.plugins.android.CommandExecutor$ErrorListener
com.jayway.maven.plugins.android.DeviceCallback
com.jayway.maven.plugins.android.AbstractAndroidMojo$1
com.jayway.maven.plugins.android.AbstractAndroidMojo$2
com.jayway.maven.plugins.android.AbstractEmulatorMojo$1
com.jayway.maven.plugins.android.AbstractInstrumentationMojo$1
com.jayway.maven.plugins.android.AbstractInstrumentationMojo$AndroidTestRunListener
com.jayway.maven.plugins.android.AndroidNdk
com.jayway.maven.plugins.android.AndroidSdk
com.jayway.maven.plugins.android.AndroidSdk$1
com.jayway.maven.plugins.android.AndroidSdk$Layout
com.jayway.maven.plugins.android.AndroidSdk$Platform
com.jayway.maven.plugins.android.AndroidSigner
com.jayway.maven.plugins.android.AndroidSigner$Debug
com.jayway.maven.plugins.android.CommandExecutor$Factory
com.jayway.maven.plugins.android.CommandExecutor$Factory$1
com.jayway.maven.plugins.android.CommandExecutor$Factory$ErrorStreamConsumer
com.jayway.maven.plugins.android.CommandExecutor$Factory$StreamConsumerImpl
com.jayway.maven.plugins.android.ExecutionException
com.jayway.maven.plugins.android.InvalidNdkException
com.jayway.maven.plugins.android.InvalidSdkException
com.jayway.maven.plugins.android.ScreenshotServiceWrapper
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.phase01generatesources
com.jayway.maven.plugins.android.phase04processclasses
com.jayway.maven.plugins.android.phase05compile
com.jayway.maven.plugins.android.phase08preparepackage
com.jayway.maven.plugins.android.phase09package
com.jayway.maven.plugins.android.phase11preintegrationtest
com.jayway.maven.plugins.android.phase12integrationtest
com.jayway.maven.plugins.android.standalonemojos
com.android.ddmlib
com.android.ddmlib.testrunner
com.github.rtyley.android.screenshot.paparazzo
com.github.rtyley.android.screenshot.paparazzo.processors
com.github.rtyley.android.screenshot.paparazzo.processors.util
com.jayway.maven.plugins.android.asm
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.configuration
java.io
java.lang
java.net
java.text
java.util
java.util.concurrent
java.util.concurrent.atomic
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.stream
org.apache.commons.io
org.apache.commons.jxpath
org.apache.commons.jxpath.xml
org.apache.commons.lang
org.apache.maven.artifact
org.apache.maven.execution
org.apache.maven.model
org.apache.maven.plugin
org.apache.maven.plugin.logging
org.apache.maven.project
org.codehaus.plexus.util
org.codehaus.plexus.util.cli
org.sonatype.aether
org.w3c.dom

com.jayway.maven.plugins.android.asm

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
190.0%90.0%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.asm.AndroidTestFinder
com.jayway.maven.plugins.android.asm.AndroidTestFinder$1
com.jayway.maven.plugins.android.asm.DescendantFinder
com.jayway.maven.plugins.android
java.io
java.lang
java.util
java.util.concurrent.atomic
org.apache.commons.io
org.apache.commons.lang
org.apache.maven.plugin
org.codehaus.plexus.util
org.objectweb.asm

com.jayway.maven.plugins.android.common

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
6279.0%82.0%9.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.jayway.maven.plugins.android.common.JarHelper$UnjarListener
com.jayway.maven.plugins.android.common.AetherHelper
com.jayway.maven.plugins.android.common.AndroidExtension
com.jayway.maven.plugins.android.common.DeviceHelper
com.jayway.maven.plugins.android.common.FileNameHelper
com.jayway.maven.plugins.android.common.JarHelper
com.jayway.maven.plugins.android.common.LogSyncProgressMonitor
com.jayway.maven.plugins.android.common.NativeHelper
com.jayway.maven.plugins.android.common.NativeHelper$1
com.jayway.maven.plugins.android.common.NativeHelper$2
com.jayway.maven.plugins.android.common.XmlHelper
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.phase01generatesources
com.jayway.maven.plugins.android.phase04processclasses
com.jayway.maven.plugins.android.phase05compile
com.jayway.maven.plugins.android.phase09package
com.jayway.maven.plugins.android.standalonemojos
com.android.ddmlib
com.jayway.maven.plugins.android
java.io
java.lang
java.util
java.util.jar
java.util.regex
org.apache.commons.io
org.apache.commons.lang
org.apache.maven
org.apache.maven.artifact
org.apache.maven.artifact.factory
org.apache.maven.artifact.versioning
org.apache.maven.model
org.apache.maven.plugin
org.apache.maven.plugin.logging
org.apache.maven.project
org.codehaus.plexus.util
org.sonatype.aether
org.sonatype.aether.artifact
org.sonatype.aether.collection
org.sonatype.aether.graph
org.sonatype.aether.resolution
org.sonatype.aether.util.artifact
org.sonatype.aether.util.filter
org.sonatype.aether.util.graph
org.w3c.dom

com.jayway.maven.plugins.android.config

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3467.0%57.0%24.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.jayway.maven.plugins.android.config.ConfigPojo
com.jayway.maven.plugins.android.config.PullParameter
com.jayway.maven.plugins.android.config.ConfigHandler
com.jayway.maven.plugins.android.phase04processclasses
com.jayway.maven.plugins.android.phase09package
com.jayway.maven.plugins.android.standalonemojos
java.lang
java.lang.annotation
java.lang.reflect
java.util

com.jayway.maven.plugins.android.configuration

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
660.0%50.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.configuration.Apk
com.jayway.maven.plugins.android.configuration.ConfigHelper
com.jayway.maven.plugins.android.configuration.Dex
com.jayway.maven.plugins.android.configuration.Emma
com.jayway.maven.plugins.android.configuration.Emulator
com.jayway.maven.plugins.android.configuration.HeaderFilesDirective
com.jayway.maven.plugins.android.configuration.Manifest
com.jayway.maven.plugins.android.configuration.Ndk
com.jayway.maven.plugins.android.configuration.Proguard
com.jayway.maven.plugins.android.configuration.Pull
com.jayway.maven.plugins.android.configuration.Push
com.jayway.maven.plugins.android.configuration.Run
com.jayway.maven.plugins.android.configuration.Sdk
com.jayway.maven.plugins.android.configuration.Sign
com.jayway.maven.plugins.android.configuration.Test
com.jayway.maven.plugins.android.configuration.Zipalign
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.phase04processclasses
com.jayway.maven.plugins.android.phase05compile
com.jayway.maven.plugins.android.phase08preparepackage
com.jayway.maven.plugins.android.phase09package
com.jayway.maven.plugins.android.standalonemojos
com.jayway.maven.plugins.android.standalonemojos
java.io
java.lang
java.lang.reflect
java.util
org.apache.maven.plugin

com.jayway.maven.plugins.android.manifmerger

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1720.0%88.0%8.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.jayway.maven.plugins.android.manifmerger.MergeStrategy
com.jayway.maven.plugins.android.manifmerger.ManifestMerger
com.jayway.maven.plugins.android.manifmerger.MergeStrategyR20
com.jayway.maven.plugins.android.manifmerger.MergeStrategyR21
com.jayway.maven.plugins.android.manifmerger.MergerInitializerFactory
com.jayway.maven.plugins.android.phase01generatesources
java.io
java.lang
java.lang.reflect
java.net
java.util
org.apache.maven.plugin
org.apache.maven.plugin.logging

com.jayway.maven.plugins.android.phase00clean

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
050.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.phase00clean.NdkCleanMojo
Nonejava.io
java.lang
org.apache.maven.plugin
org.apache.maven.plugin.logging
org.codehaus.plexus.util

com.jayway.maven.plugins.android.phase01generatesources

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0170.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo
com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo$1
com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo$2
com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo$3
com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo$4
Nonecom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.manifmerger
java.io
java.lang
java.util
org.apache.commons.io
org.apache.commons.lang
org.apache.maven.artifact
org.apache.maven.plugin
org.apache.maven.plugin.logging
org.apache.maven.project
org.codehaus.plexus.archiver
org.codehaus.plexus.archiver.zip
org.codehaus.plexus.logging
org.codehaus.plexus.logging.console
org.codehaus.plexus.util

com.jayway.maven.plugins.android.phase04processclasses

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0160.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.phase04processclasses.ProguardMojo
com.jayway.maven.plugins.android.phase04processclasses.ProguardMojo$ProGuardInput
Nonecom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.config
com.jayway.maven.plugins.android.configuration
java.io
java.lang
java.util
org.apache.commons.lang
org.apache.maven
org.apache.maven.artifact
org.apache.maven.model
org.apache.maven.plugin
org.apache.maven.plugin.logging
org.apache.maven.project
org.codehaus.plexus.util
org.sonatype.aether.util.artifact

com.jayway.maven.plugins.android.phase05compile

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0200.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.phase05compile.MakefileHelper
com.jayway.maven.plugins.android.phase05compile.MakefileHelper$1
com.jayway.maven.plugins.android.phase05compile.MakefileHelper$MakefileHolder
com.jayway.maven.plugins.android.phase05compile.NdkBuildMojo
com.jayway.maven.plugins.android.phase05compile.NdkBuildMojo$1
com.jayway.maven.plugins.android.phase05compile.NdkBuildMojo$2
com.jayway.maven.plugins.android.phase05compile.NdkBuildMojo$3
com.jayway.maven.plugins.android.phase05compile.NdkBuildMojo$Preparation
Nonecom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.configuration
java.io
java.lang
java.util
java.util.jar
java.util.regex
org.apache.commons.io
org.apache.commons.io.filefilter
org.apache.maven.archiver
org.apache.maven.artifact
org.apache.maven.artifact.factory
org.apache.maven.model
org.apache.maven.plugin
org.apache.maven.plugin.logging
org.apache.maven.project
org.codehaus.plexus.archiver.jar
org.codehaus.plexus.util
org.sonatype.aether

com.jayway.maven.plugins.android.phase08preparepackage

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0160.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.phase08preparepackage.DexMojo
com.jayway.maven.plugins.android.phase08preparepackage.EmmaMojo
Nonecom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.configuration
com.vladium.emma.instr
java.io
java.lang
java.util
org.apache.commons.io
org.apache.commons.lang
org.apache.maven.artifact
org.apache.maven.model
org.apache.maven.plugin
org.apache.maven.plugin.logging
org.apache.maven.project
org.codehaus.plexus.archiver
org.codehaus.plexus.archiver.jar
org.codehaus.plexus.archiver.util

com.jayway.maven.plugins.android.phase09package

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0240.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.phase09package.ApkBuilder
com.jayway.maven.plugins.android.phase09package.ApkMojo
com.jayway.maven.plugins.android.phase09package.ApkMojo$1
com.jayway.maven.plugins.android.phase09package.ApkMojo$2
com.jayway.maven.plugins.android.phase09package.ApkMojo$3
com.jayway.maven.plugins.android.phase09package.ApkMojo$4
com.jayway.maven.plugins.android.phase09package.ApkMojo$5
com.jayway.maven.plugins.android.phase09package.ApklibMojo
com.jayway.maven.plugins.android.phase09package.ApklibMojo$1
Nonecom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.config
com.jayway.maven.plugins.android.configuration
java.io
java.lang
java.lang.reflect
java.net
java.util
java.util.regex
java.util.zip
org.apache.commons.io
org.apache.commons.io.filefilter
org.apache.commons.lang
org.apache.maven.artifact
org.apache.maven.artifact.factory
org.apache.maven.model
org.apache.maven.plugin
org.apache.maven.plugin.logging
org.apache.maven.project
org.codehaus.plexus.archiver
org.codehaus.plexus.archiver.jar
org.codehaus.plexus.archiver.util
org.codehaus.plexus.util

com.jayway.maven.plugins.android.phase11preintegrationtest

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
020.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.phase11preintegrationtest.InternalPreIntegrationTestMojo
Nonecom.jayway.maven.plugins.android
org.apache.maven.plugin

com.jayway.maven.plugins.android.phase12integrationtest

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
020.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.phase12integrationtest.InternalIntegrationTestMojo
Nonecom.jayway.maven.plugins.android
org.apache.maven.plugin

com.jayway.maven.plugins.android.standalonemojos

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1250.0%96.0%4.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.jayway.maven.plugins.android.standalonemojos.CompatibleScreen
com.jayway.maven.plugins.android.standalonemojos.DeployDependenciesMojo
com.jayway.maven.plugins.android.standalonemojos.DeployMojo
com.jayway.maven.plugins.android.standalonemojos.DevicesMojo
com.jayway.maven.plugins.android.standalonemojos.DevicesMojo$1
com.jayway.maven.plugins.android.standalonemojos.EmulatorStartMojo
com.jayway.maven.plugins.android.standalonemojos.EmulatorStopAllMojo
com.jayway.maven.plugins.android.standalonemojos.EmulatorStopMojo
com.jayway.maven.plugins.android.standalonemojos.HelpMojo
com.jayway.maven.plugins.android.standalonemojos.InstrumentMojo
com.jayway.maven.plugins.android.standalonemojos.ManifestUpdateMojo
com.jayway.maven.plugins.android.standalonemojos.PullMojo
com.jayway.maven.plugins.android.standalonemojos.PullMojo$1
com.jayway.maven.plugins.android.standalonemojos.PushMojo
com.jayway.maven.plugins.android.standalonemojos.PushMojo$1
com.jayway.maven.plugins.android.standalonemojos.RedeployMojo
com.jayway.maven.plugins.android.standalonemojos.RunMojo
com.jayway.maven.plugins.android.standalonemojos.RunMojo$1
com.jayway.maven.plugins.android.standalonemojos.RunMojo$LauncherInfo
com.jayway.maven.plugins.android.standalonemojos.SupportsScreens
com.jayway.maven.plugins.android.standalonemojos.UndeployMojo
com.jayway.maven.plugins.android.standalonemojos.UnpackMojo
com.jayway.maven.plugins.android.standalonemojos.UnpackMojo$1
com.jayway.maven.plugins.android.standalonemojos.ZipalignMojo
com.jayway.maven.plugins.android.configuration
com.android.ddmlib
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.config
com.jayway.maven.plugins.android.configuration
java.io
java.lang
java.util
java.util.jar
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.stream
javax.xml.xpath
org.apache.commons.io
org.apache.commons.lang
org.apache.commons.lang.math
org.apache.maven.artifact
org.apache.maven.artifact.versioning
org.apache.maven.model
org.apache.maven.plugin
org.apache.maven.plugin.logging
org.apache.maven.project
org.w3c.dom
org.xml.sax

Cycles

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

PackagePackage Dependencies
com.jayway.maven.plugins.androidcom.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.commoncom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.configurationcom.jayway.maven.plugins.android.standalonemojos
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.phase01generatesourcescom.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.phase04processclassescom.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.phase05compilecom.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android.phase08preparepackagecom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.phase09packagecom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.phase11preintegrationtestcom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.phase12integrationtestcom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android
com.jayway.maven.plugins.android.standalonemojoscom.jayway.maven.plugins.android
com.jayway.maven.plugins.android.common
com.jayway.maven.plugins.android

Explanation

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

The following explanations are for quick reference and are lifted directly from the original JDepend documentation.

TermDescription
Number of ClassesThe number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent CouplingsThe number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent CouplingsThe number of other packages that the classes in the package depend upon is an indicator of the package's independence.
AbstractnessThe 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.
InstabilityThe 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.
DistanceThe 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.
CyclesPackages 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.