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.barteo.emulator110240.0%67.0%33.0%1
com.barteo.emulator.device110140.0%80.0%20.0%1
nanoxml220340.0%57.0%43.0%1
org.microemu110540.0%44.0%56.0%1
org.microemu.app5502200.0%91.0%9.0%1
org.microemu.app.classloader13130290.0%82.0%18.0%1
org.microemu.app.ui4131375.0%75.0%50.0%1
org.microemu.app.util272524187.0%82.0%11.0%1
org.microemu.cldc220480.0%67.0%33.0%1
org.microemu.cldc.datagram330070.0%100.0%0.0%1
org.microemu.cldc.http110450.0%56.0%44.0%1
org.microemu.cldc.https1100100.0%100.0%0.0%1
org.microemu.cldc.socket330160.0%86.0%14.0%1
org.microemu.cldc.ssl2200100.0%100.0%0.0%1
org.microemu.device.impl114721064.0%83.0%47.0%1
org.microemu.device.impl.ui110030.0%100.0%0.0%1
org.microemu.log6518317.0%27.000002%56.0%1
org.microemu.microedition.io550390.0%75.0%25.0%1
org.microemu.util550250.0%71.0%29.0%1

Packages

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

com.barteo.emulator

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
240.0%67.0%33.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.barteo.emulator.EmulatorContext
com.barteo.emulator.device
org.microemu.app.util
java.io
java.lang
org.microemu
org.microemu.device

com.barteo.emulator.device

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
140.0%80.0%20.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonecom.barteo.emulator.device.Device
org.microemu.app.util
com.barteo.emulator
java.lang
org.microemu.device.impl
org.microemu.device.ui

nanoxml

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
340.0%57.0%43.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonenanoxml.XMLElement
nanoxml.XMLParseException
org.microemu.app
org.microemu.app.util
org.microemu.device.impl
java.io
java.lang
java.util
java.util.regex

org.microemu

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
540.0%44.0%56.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.Injected
com.barteo.emulator
org.microemu.app
org.microemu.app.util
org.microemu.device.impl
org.microemu.util
java.io
java.lang
org.microemu.app.util
org.microemu.log

org.microemu.app

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2200.0%91.0%9.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.app.Common
org.microemu.app.Common$1
org.microemu.app.Common$2
org.microemu.app.Config
org.microemu.app.ConfigurationException
org.microemu.app.classloader
org.microemu.app.util
java.io
java.lang
java.lang.reflect
java.net
java.util
java.util.jar
java.util.zip
javax.microedition.midlet
nanoxml
org.microemu
org.microemu.app.classloader
org.microemu.app.launcher
org.microemu.app.ui
org.microemu.app.util
org.microemu.device
org.microemu.device.impl
org.microemu.log
org.microemu.microedition
org.microemu.microedition.io
org.microemu.util

org.microemu.app.classloader

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
290.0%82.0%18.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.app.classloader.ChangeCallsClassVisitor
org.microemu.app.classloader.ChangeCallsMethodVisitor
org.microemu.app.classloader.ChangeCallsMethodVisitor$CatchInformation
org.microemu.app.classloader.ClassPreprocessor
org.microemu.app.classloader.ExtensionsClassLoader
org.microemu.app.classloader.ExtensionsClassLoader$1
org.microemu.app.classloader.InstrumentationConfig
org.microemu.app.classloader.MIDletClassLoader
org.microemu.app.classloader.MIDletClassLoader$1
org.microemu.app.classloader.MIDletClassLoader$2
org.microemu.app.classloader.MIDletClassLoader$3
org.microemu.app.classloader.MIDletClassLoader$LoadClassByParentException
org.microemu.app.classloader.MIDletClassLoaderConfig
org.microemu.app
org.microemu.app.util
java.io
java.lang
java.net
java.security
java.util
org.microemu.app
org.microemu.app.util
org.microemu.log
org.objectweb.asm

org.microemu.app.ui

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1375.0%75.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.microemu.app.ui.MessageListener
org.microemu.app.ui.ResponseInterfaceListener
org.microemu.app.ui.StatusBarListener
org.microemu.app.ui.Message
org.microemu.app
java.lang
java.util
org.microemu.log

org.microemu.app.util

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
4187.0%82.0%11.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.microemu.app.util.MRUListListener
org.microemu.app.util.XMLItem
org.microemu.app.util.AppletProducer
org.microemu.app.util.BuildVersion
org.microemu.app.util.DeviceEntry
org.microemu.app.util.FileRecordStoreManager
org.microemu.app.util.FileRecordStoreManager$1
org.microemu.app.util.FileRecordStoreManager$2
org.microemu.app.util.FileRecordStoreManager$3
org.microemu.app.util.FileRecordStoreManager$4
org.microemu.app.util.FileRecordStoreManager$5
org.microemu.app.util.IOUtils
org.microemu.app.util.MIDletClassLoader
org.microemu.app.util.MIDletOutputStreamRedirector
org.microemu.app.util.MIDletOutputStreamRedirector$OutputStream2Log
org.microemu.app.util.MIDletResourceInputStream
org.microemu.app.util.MIDletResourceLoader
org.microemu.app.util.MIDletSystemProperties
org.microemu.app.util.MIDletSystemProperties$1
org.microemu.app.util.MIDletThread
org.microemu.app.util.MIDletThread$1
org.microemu.app.util.MIDletTimer
org.microemu.app.util.MRUList
org.microemu.app.util.MidletURLReference
org.microemu.app.util.ResURLConnection
org.microemu.app.util.ResURLStreamHandler
org.microemu.app.util.SystemClassLoader
org.microemu
org.microemu.app
org.microemu.app.classloader
org.microemu.device.impl
com.barteo.emulator
com.barteo.emulator.device
java.io
java.lang
java.net
java.security
java.util
java.util.jar
javax.microedition.lcdui
javax.microedition.rms
nanoxml
org.microemu
org.microemu.app
org.microemu.app.classloader
org.microemu.app.launcher
org.microemu.device
org.microemu.log
org.microemu.util

org.microemu.cldc

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
480.0%67.0%33.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.cldc.CertificateImpl
org.microemu.cldc.SecurityInfoImpl
org.microemu.cldc.https
org.microemu.cldc.socket
org.microemu.cldc.ssl
org.microemu.microedition.io
java.lang
java.math
java.security
java.security.cert
java.util
javax.microedition.io
javax.microedition.pki
org.microemu.log

org.microemu.cldc.datagram

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
070.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.cldc.datagram.Connection
org.microemu.cldc.datagram.DatagramImpl
org.microemu.cldc.datagram.DatagramImpl$BufferOutputStream
Nonejava.io
java.lang
java.net
java.nio
javax.microedition.io
org.microemu.cldc.http
org.microemu.microedition.io

org.microemu.cldc.http

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
450.0%56.0%44.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.cldc.http.Connection
org.microemu.cldc.datagram
org.microemu.cldc.https
org.microemu.cldc.socket
org.microemu.cldc.ssl
java.io
java.lang
java.net
javax.microedition.io
org.microemu.microedition.io

org.microemu.cldc.https

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0100.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.cldc.https.Connection
Nonejava.io
java.lang
java.net
java.security
java.security.cert
javax.microedition.io
javax.net.ssl
org.microemu.cldc
org.microemu.cldc.http
org.microemu.log

org.microemu.cldc.socket

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
160.0%86.0%14.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.cldc.socket.Connection
org.microemu.cldc.socket.ServerSocketConnection
org.microemu.cldc.socket.SocketConnection
org.microemu.cldc.ssl
java.io
java.lang
java.net
javax.microedition.io
org.microemu.cldc
org.microemu.cldc.http

org.microemu.cldc.ssl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0100.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.cldc.ssl.Connection
org.microemu.cldc.ssl.Connection$1
Nonejava.io
java.lang
java.net
java.security
java.security.cert
javax.microedition.io
javax.net.ssl
org.microemu.cldc
org.microemu.cldc.http
org.microemu.cldc.socket

org.microemu.device.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
21064.0%83.0%47.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.microemu.device.impl.Button
org.microemu.device.impl.ButtonDetaultDeviceKeyCodes
org.microemu.device.impl.DeviceDisplayImpl
org.microemu.device.impl.DeviceImpl
org.microemu.device.impl.Font
org.microemu.device.impl.FontManagerImpl
org.microemu.device.impl.InputMethodImpl
org.microemu.device.impl.ButtonName
org.microemu.device.impl.Color
org.microemu.device.impl.Polygon
org.microemu.device.impl.PositionedImage
com.barteo.emulator.device
org.microemu.app
java.io
java.lang
java.lang.reflect
java.net
java.util
javax.microedition.lcdui
nanoxml
org.microemu
org.microemu.app.util
org.microemu.device

org.microemu.device.impl.ui

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
030.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.device.impl.ui.DisplayableImplUI
Nonejava.lang
javax.microedition.lcdui
org.microemu.device.ui

org.microemu.log

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
8317.0%27.000002%56.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.microemu.log.LoggerAppender
org.microemu.log.Logger
org.microemu.log.LoggerDataWrapper
org.microemu.log.LoggingEvent
org.microemu.log.QueueAppender
org.microemu.log.StdOutAppender
org.microemu
org.microemu.app
org.microemu.app.classloader
org.microemu.app.ui
org.microemu.app.util
org.microemu.cldc
org.microemu.cldc.https
org.microemu.microedition.io
java.io
java.lang
java.util

org.microemu.microedition.io

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
390.0%75.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.microedition.io.ConnectionInvocationHandler
org.microemu.microedition.io.ConnectionInvocationHandler$1
org.microemu.microedition.io.ConnectorImpl
org.microemu.microedition.io.ConnectorImpl$1
org.microemu.microedition.io.PushRegistryImpl
org.microemu.app
org.microemu.cldc.datagram
org.microemu.cldc.http
com.sun.cdc.io
java.io
java.lang
java.lang.reflect
java.security
java.util
javax.microedition.io
org.microemu.cldc
org.microemu.log

org.microemu.util

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
250.0%71.0%29.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.microemu.util.Base64Coder
org.microemu.util.JadMidletEntry
org.microemu.util.JadProperties
org.microemu.util.MemoryRecordStoreManager
org.microemu.util.ThreadUtils
org.microemu.app
org.microemu.app.util
java.lang
java.lang.reflect
java.util
javax.microedition.rms
org.microemu

Cycles

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

PackagePackage Dependencies
com.barteo.emulatororg.microemu
org.microemu.app.util
org.microemu
com.barteo.emulator.devicecom.barteo.emulator
org.microemu
org.microemu.app.util
org.microemu
org.microemuorg.microemu.app.util
org.microemu
org.microemu.apporg.microemu
org.microemu.app.util
org.microemu
org.microemu.app.classloaderorg.microemu.app
org.microemu
org.microemu.app.util
org.microemu
org.microemu.app.utilorg.microemu
org.microemu.app.util
org.microemu.device.implorg.microemu
org.microemu.app.util
org.microemu
org.microemu.utilorg.microemu
org.microemu.app.util
org.microemu

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.