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
com.jcraft.jzlib 14 14 0 1 2 0.0% 67.0% 33.0% 1
com.twmacinta.util 2 2 0 1 2 0.0% 67.0% 33.0% 1
net.ayaslive.miniim.common 12 8 4 4 7 33.0% 64.0% 3.0% 1
net.ayaslive.miniim.plugins.facebook 1 1 0 0 5 0.0% 100.0% 0.0% 1
net.ayaslive.miniim.plugins.msn 1 1 0 0 2 0.0% 100.0% 0.0% 1
net.ayaslive.miniim.plugins.xmpp 5 3 2 1 8 40.0% 89.0% 29.0% 1
net.ayaslive.miniim.ui 13 12 1 0 15 8.0% 100.0% 8.0% 1
net.ayaslive.miniim.ui.core 14 7 7 4 5 50.0% 56.0% 6.0% 1
net.ayaslive.miniim.ui.core.list 7 6 1 4 4 14.0% 50.0% 36.0% 1
net.ayaslive.miniim.ui.markup 3 1 2 1 7 67.0% 88.0% 54.000004% 1
net.ayaslive.miniim.ui.markup.extended 2 2 0 1 10 0.0% 91.0% 9.0% 1
net.ayaslive.miniim.utils 3 3 0 5 9 0.0% 64.0% 36.0% 1
net.ayaslive.miniim.utils.io 3 3 0 1 3 0.0% 75.0% 25.0% 1
net.ayaslive.miniim.utils.io.resource 4 2 2 2 9 50.0% 82.0% 32.0% 1
net.ayaslive.miniim.utils.simplelogger 3 2 1 8 4 33.0% 33.0% 33.0% 1
org.kxml2.io 2 2 0 5 5 0.0% 50.0% 50.0% 1
org.kxml2.kdom 3 3 0 4 4 0.0% 50.0% 50.0% 1

Packages

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

com.jcraft.jzlib

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 0.0% 67.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None com.jcraft.jzlib.Adler32
com.jcraft.jzlib.Deflate
com.jcraft.jzlib.Deflate$Config
com.jcraft.jzlib.InfBlocks
com.jcraft.jzlib.InfCodes
com.jcraft.jzlib.InfTree
com.jcraft.jzlib.Inflate
com.jcraft.jzlib.JZlib
com.jcraft.jzlib.StaticTree
com.jcraft.jzlib.Tree
com.jcraft.jzlib.ZInputStream
com.jcraft.jzlib.ZOutputStream
com.jcraft.jzlib.ZStream
com.jcraft.jzlib.ZStreamException
net.ayaslive.miniim.plugins.xmpp
java.io
java.lang

com.twmacinta.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 0.0% 67.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None com.twmacinta.util.MD5
com.twmacinta.util.MD5State
net.ayaslive.miniim.utils
java.io
java.lang

net.ayaslive.miniim.common

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 7 33.0% 64.0% 3.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.ayaslive.miniim.common.BuddyStateListener
net.ayaslive.miniim.common.IMProtocol
net.ayaslive.miniim.common.IMStateChangeListener
net.ayaslive.miniim.common.MessageListener
net.ayaslive.miniim.common.Account
net.ayaslive.miniim.common.Account$1
net.ayaslive.miniim.common.Buddy
net.ayaslive.miniim.common.BuddyStore
net.ayaslive.miniim.common.IMMessage
net.ayaslive.miniim.common.IMMonitor
net.ayaslive.miniim.common.IMMonitor$IMCommand
net.ayaslive.miniim.common.IMProtocol$1
net.ayaslive.miniim.plugins.facebook
net.ayaslive.miniim.plugins.msn
net.ayaslive.miniim.plugins.xmpp
net.ayaslive.miniim.ui
java.io
java.lang
java.util
javax.microedition.rms
net.ayaslive.miniim.plugins.xmpp
net.ayaslive.miniim.utils.simplelogger
org.kxml2.io

net.ayaslive.miniim.plugins.facebook

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 net.ayaslive.miniim.plugins.facebook.FBIMProtocol
None java.io
java.lang
java.util
net.ayaslive.miniim.common
net.ayaslive.miniim.utils

net.ayaslive.miniim.plugins.msn

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 net.ayaslive.miniim.plugins.msn.MSNIMProtocol
None java.io
net.ayaslive.miniim.common

net.ayaslive.miniim.plugins.xmpp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 40.0% 89.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.ayaslive.miniim.plugins.xmpp.XMPPInterface
net.ayaslive.miniim.plugins.xmpp.XMPPListener
net.ayaslive.miniim.plugins.xmpp.XMPPIMProtocol
net.ayaslive.miniim.plugins.xmpp.XMPPInputStream
net.ayaslive.miniim.plugins.xmpp.XMPPOutputStream
net.ayaslive.miniim.common
com.jcraft.jzlib
java.io
java.lang
javax.microedition.io
net.ayaslive.miniim.common
net.ayaslive.miniim.utils
net.ayaslive.miniim.utils.simplelogger
org.kxml2.io

net.ayaslive.miniim.ui

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 15 8.0% 100.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.ayaslive.miniim.ui.Vocabulary
net.ayaslive.miniim.ui.AccountDialog
net.ayaslive.miniim.ui.AccountListDialog
net.ayaslive.miniim.ui.AccountListDialog$1
net.ayaslive.miniim.ui.App
net.ayaslive.miniim.ui.App$1
net.ayaslive.miniim.ui.BuddyDialog
net.ayaslive.miniim.ui.BuddyList
net.ayaslive.miniim.ui.ConversationDialog
net.ayaslive.miniim.ui.MiniWebControler
net.ayaslive.miniim.ui.Settings
net.ayaslive.miniim.ui.Settings$1
net.ayaslive.miniim.ui.Settings$SettingsLazyInit
None java.io
java.lang
java.util
javax.microedition.io
javax.microedition.lcdui
javax.microedition.midlet
javax.microedition.rms
net.ayaslive.miniim.common
net.ayaslive.miniim.ui.core
net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.ui.markup.extended
net.ayaslive.miniim.utils
net.ayaslive.miniim.utils.io.resource
net.ayaslive.miniim.utils.simplelogger
org.kxml2.kdom

net.ayaslive.miniim.ui.core

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 5 50.0% 56.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.ayaslive.miniim.ui.core.ActionListener
net.ayaslive.miniim.ui.core.List
net.ayaslive.miniim.ui.core.ListForm
net.ayaslive.miniim.ui.core.Popup
net.ayaslive.miniim.ui.core.SelectionBox
net.ayaslive.miniim.ui.core.TextEditListener
net.ayaslive.miniim.ui.core.Window
net.ayaslive.miniim.ui.core.DefaultSelectionbox
net.ayaslive.miniim.ui.core.Menu
net.ayaslive.miniim.ui.core.SharedCanvas
net.ayaslive.miniim.ui.core.SharedCanvas$1
net.ayaslive.miniim.ui.core.SharedCanvas$Balloon
net.ayaslive.miniim.ui.core.SplashScreen
net.ayaslive.miniim.ui.core.TextEdit
net.ayaslive.miniim.ui
net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.ui.markup
net.ayaslive.miniim.ui.markup.extended
java.lang
java.util
javax.microedition.lcdui
javax.microedition.lcdui.game
net.ayaslive.miniim.ui.core.list

net.ayaslive.miniim.ui.core.list

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 4 14.0% 50.0% 36.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.ayaslive.miniim.ui.core.list.ListItem
net.ayaslive.miniim.ui.core.list.Label
net.ayaslive.miniim.ui.core.list.ListItemFactory
net.ayaslive.miniim.ui.core.list.Select
net.ayaslive.miniim.ui.core.list.Select$1
net.ayaslive.miniim.ui.core.list.Select$SelectHolder
net.ayaslive.miniim.ui.core.list.TextInput
net.ayaslive.miniim.ui
net.ayaslive.miniim.ui.core
net.ayaslive.miniim.ui.markup
net.ayaslive.miniim.ui.markup.extended
java.io
java.lang
javax.microedition.lcdui
net.ayaslive.miniim.ui.core

net.ayaslive.miniim.ui.markup

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 67.0% 88.0% 54.000004%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.ayaslive.miniim.ui.markup.EventListener
net.ayaslive.miniim.ui.markup.MediaLoader
net.ayaslive.miniim.ui.markup.MarkupItem
net.ayaslive.miniim.ui.markup.extended
java.io
java.lang
java.util
javax.microedition.lcdui
net.ayaslive.miniim.ui.core
net.ayaslive.miniim.ui.core.list
org.kxml2.kdom

net.ayaslive.miniim.ui.markup.extended

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 0.0% 91.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.ayaslive.miniim.ui.markup.extended.DefaultComplexListener
net.ayaslive.miniim.ui.markup.extended.MarkupList
net.ayaslive.miniim.ui
java.io
java.lang
java.util
javax.microedition.lcdui
net.ayaslive.miniim.ui.core
net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.ui.markup
net.ayaslive.miniim.utils.io.resource
net.ayaslive.miniim.utils.simplelogger
org.kxml2.kdom

net.ayaslive.miniim.utils

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 9 0.0% 64.0% 36.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.ayaslive.miniim.utils.Base64
net.ayaslive.miniim.utils.ImageUtils
net.ayaslive.miniim.utils.WebUtils
net.ayaslive.miniim.plugins.facebook
net.ayaslive.miniim.plugins.xmpp
net.ayaslive.miniim.ui
net.ayaslive.miniim.utils.io.resource
net.ayaslive.miniim.utils.simplelogger
com.twmacinta.util
java.io
java.lang
java.util
javax.microedition.io
javax.microedition.lcdui
javax.microedition.midlet
net.ayaslive.miniim.utils.simplelogger
org.kxml2.io

net.ayaslive.miniim.utils.io

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 3 0.0% 75.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.ayaslive.miniim.utils.io.DefaultReader
net.ayaslive.miniim.utils.io.DumperInputStream
net.ayaslive.miniim.utils.io.DumperOutputStream
org.kxml2.io
java.io
java.lang
net.ayaslive.miniim.utils.simplelogger

net.ayaslive.miniim.utils.io.resource

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 9 50.0% 82.0% 32.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.ayaslive.miniim.utils.io.resource.ResourceConnector
net.ayaslive.miniim.utils.io.resource.ResourceListener
net.ayaslive.miniim.utils.io.resource.ResourceFetcher
net.ayaslive.miniim.utils.io.resource.ResourceIdentifier
net.ayaslive.miniim.ui
net.ayaslive.miniim.ui.markup.extended
java.io
java.lang
java.util
javax.microedition.io
javax.microedition.lcdui
net.ayaslive.miniim.utils
net.ayaslive.miniim.utils.simplelogger
org.kxml2.io
org.kxml2.kdom

net.ayaslive.miniim.utils.simplelogger

Afferent Couplings Efferent Couplings Abstractness Instability Distance
8 4 33.0% 33.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.ayaslive.miniim.utils.simplelogger.SimpleLogListener
net.ayaslive.miniim.utils.simplelogger.SimpleLogger
net.ayaslive.miniim.utils.simplelogger.SimpleLogger$1
net.ayaslive.miniim.common
net.ayaslive.miniim.plugins.xmpp
net.ayaslive.miniim.ui
net.ayaslive.miniim.ui.markup.extended
net.ayaslive.miniim.utils
net.ayaslive.miniim.utils.io
net.ayaslive.miniim.utils.io.resource
org.kxml2.io
java.io
java.lang
java.util
net.ayaslive.miniim.utils

org.kxml2.io

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 5 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.kxml2.io.KXmlParser
org.kxml2.io.KXmlSerializer
net.ayaslive.miniim.common
net.ayaslive.miniim.plugins.xmpp
net.ayaslive.miniim.utils
net.ayaslive.miniim.utils.io.resource
org.kxml2.kdom
java.io
java.lang
java.util
net.ayaslive.miniim.utils.io
net.ayaslive.miniim.utils.simplelogger

org.kxml2.kdom

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 4 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.kxml2.kdom.Document
org.kxml2.kdom.Element
org.kxml2.kdom.Node
net.ayaslive.miniim.ui
net.ayaslive.miniim.ui.markup
net.ayaslive.miniim.ui.markup.extended
net.ayaslive.miniim.utils.io.resource
java.io
java.lang
java.util
org.kxml2.io

Cycles

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

Package Package Dependencies
net.ayaslive.miniim.common org.kxml2.io
net.ayaslive.miniim.utils.simplelogger
net.ayaslive.miniim.utils
org.kxml2.io
net.ayaslive.miniim.plugins.facebook net.ayaslive.miniim.common
org.kxml2.io
net.ayaslive.miniim.utils.simplelogger
net.ayaslive.miniim.utils
org.kxml2.io
net.ayaslive.miniim.plugins.msn net.ayaslive.miniim.common
org.kxml2.io
net.ayaslive.miniim.utils.simplelogger
net.ayaslive.miniim.utils
org.kxml2.io
net.ayaslive.miniim.plugins.xmpp net.ayaslive.miniim.common
org.kxml2.io
net.ayaslive.miniim.utils.simplelogger
net.ayaslive.miniim.utils
org.kxml2.io
net.ayaslive.miniim.ui net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.ui.core
net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.ui.core net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.ui.core
net.ayaslive.miniim.ui.core.list net.ayaslive.miniim.ui.core
net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.ui.markup net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.ui.core
net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.ui.markup.extended net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.ui.core
net.ayaslive.miniim.ui.core.list
net.ayaslive.miniim.utils org.kxml2.io
net.ayaslive.miniim.utils.simplelogger
net.ayaslive.miniim.utils
net.ayaslive.miniim.utils.io net.ayaslive.miniim.utils.simplelogger
net.ayaslive.miniim.utils
org.kxml2.io
net.ayaslive.miniim.utils.simplelogger
net.ayaslive.miniim.utils.io.resource net.ayaslive.miniim.utils
org.kxml2.io
net.ayaslive.miniim.utils.simplelogger
net.ayaslive.miniim.utils
net.ayaslive.miniim.utils.simplelogger net.ayaslive.miniim.utils
org.kxml2.io
net.ayaslive.miniim.utils.simplelogger
org.kxml2.io net.ayaslive.miniim.utils.simplelogger
net.ayaslive.miniim.utils
org.kxml2.io
org.kxml2.kdom org.kxml2.io
net.ayaslive.miniim.utils.simplelogger
net.ayaslive.miniim.utils
org.kxml2.io

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.