| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 9 | 33 | 23.0% | 79.0% | 2.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses 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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 9 | 0.0% | 90.0% | 10.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 6 | 27 | 9.0% | 82.0% | 9.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses 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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 4 | 67.0% | 57.0% | 24.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses 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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 6 | 6 | 0.0% | 50.0% | 50.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 7 | 20.0% | 88.0% | 8.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses 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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 5 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.jayway.maven.plugins.android.phase00clean.NdkCleanMojo | None | java.io java.lang org.apache.maven.plugin org.apache.maven.plugin.logging org.codehaus.plexus.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 17 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.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 | None | com.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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 16 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.jayway.maven.plugins.android.phase04processclasses.ProguardMojo com.jayway.maven.plugins.android.phase04processclasses.ProguardMojo$ProGuardInput | None | 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 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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 20 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.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 | None | com.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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 16 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.jayway.maven.plugins.android.phase08preparepackage.DexMojo com.jayway.maven.plugins.android.phase08preparepackage.EmmaMojo | None | com.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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 24 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.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 | None | 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.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 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 2 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.jayway.maven.plugins.android.phase11preintegrationtest.InternalPreIntegrationTestMojo | None | com.jayway.maven.plugins.android org.apache.maven.plugin |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 2 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.jayway.maven.plugins.android.phase12integrationtest.InternalIntegrationTestMojo | None | com.jayway.maven.plugins.android org.apache.maven.plugin |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 25 | 0.0% | 96.0% | 4.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.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 |
| Package | Package Dependencies |
|---|---|
| com.jayway.maven.plugins.android | com.jayway.maven.plugins.android.common com.jayway.maven.plugins.android |
| com.jayway.maven.plugins.android.common | com.jayway.maven.plugins.android com.jayway.maven.plugins.android.common |
| com.jayway.maven.plugins.android.configuration | com.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.phase01generatesources | com.jayway.maven.plugins.android.common com.jayway.maven.plugins.android com.jayway.maven.plugins.android.common |
| com.jayway.maven.plugins.android.phase04processclasses | com.jayway.maven.plugins.android.common com.jayway.maven.plugins.android com.jayway.maven.plugins.android.common |
| com.jayway.maven.plugins.android.phase05compile | com.jayway.maven.plugins.android.common com.jayway.maven.plugins.android com.jayway.maven.plugins.android.common |
| com.jayway.maven.plugins.android.phase08preparepackage | com.jayway.maven.plugins.android com.jayway.maven.plugins.android.common com.jayway.maven.plugins.android |
| com.jayway.maven.plugins.android.phase09package | com.jayway.maven.plugins.android com.jayway.maven.plugins.android.common com.jayway.maven.plugins.android |
| com.jayway.maven.plugins.android.phase11preintegrationtest | com.jayway.maven.plugins.android com.jayway.maven.plugins.android.common com.jayway.maven.plugins.android |
| com.jayway.maven.plugins.android.phase12integrationtest | com.jayway.maven.plugins.android com.jayway.maven.plugins.android.common com.jayway.maven.plugins.android |
| com.jayway.maven.plugins.android.standalonemojos | com.jayway.maven.plugins.android com.jayway.maven.plugins.android.common com.jayway.maven.plugins.android |
| 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. |