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
examples 20 20 0 1 12 0.0% 92.0% 8.0% 1
examples.nntp 5 5 0 0 7 0.0% 100.0% 0.0% 1
examples.ntp 2 2 0 0 6 0.0% 100.0% 0.0% 1
org.apache.commons.net 22 17 5 10 5 23.0% 33.0% 44.0% 1
org.apache.commons.net.bsd 3 3 0 1 5 0.0% 83.0% 17.0% 1
org.apache.commons.net.ftp 16 11 5 2 10 31.0% 83.0% 15.000001% 1
org.apache.commons.net.ftp.parser 18 14 4 1 6 22.0% 86.0% 8.0% 1
org.apache.commons.net.io 13 12 1 9 5 8.0% 36.0% 57.0% 1
org.apache.commons.net.nntp 13 12 1 1 5 8.0% 83.0% 9.0% 1
org.apache.commons.net.ntp 6 5 1 1 7 17.0% 88.0% 4.0% 1
org.apache.commons.net.pop3 5 5 0 1 6 0.0% 86.0% 14.0% 1
org.apache.commons.net.smtp 7 7 0 1 6 0.0% 86.0% 14.0% 1
org.apache.commons.net.telnet 13 11 2 2 4 15.000001% 67.0% 18.0% 1
org.apache.commons.net.tftp 10 8 2 1 5 20.0% 83.0% 3.0% 1
org.apache.commons.net.util 1 1 0 2 3 0.0% 60.000004% 40.0% 1

Packages

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

examples

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 12 0.0% 92.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None examples.IOUtil
examples.IOUtil$1
examples.IOUtil$2
examples.PrintCommandListener
examples.TelnetClientExample
examples.chargen
examples.daytime
examples.echo
examples.finger
examples.ftp
examples.fwhois
examples.mail
examples.messages
examples.rdate
examples.rexec
examples.rlogin
examples.rshell
examples.server2serverFTP
examples.tftp
examples.weatherTelnet
examples.nntp
java.io
java.lang
java.net
java.util
org.apache.commons.net
org.apache.commons.net.bsd
org.apache.commons.net.ftp
org.apache.commons.net.io
org.apache.commons.net.pop3
org.apache.commons.net.smtp
org.apache.commons.net.telnet
org.apache.commons.net.tftp

examples.nntp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None examples.nntp.ExtendedNNTPOps
examples.nntp.MessageThreading
examples.nntp.NNTPUtils
examples.nntp.newsgroups
examples.nntp.post
None examples
java.io
java.lang
java.net
java.util
org.apache.commons.net.io
org.apache.commons.net.nntp

examples.ntp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None examples.ntp.NTPClient
examples.ntp.TimeClient
None java.io
java.lang
java.net
java.text
org.apache.commons.net
org.apache.commons.net.ntp

org.apache.commons.net

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 5 23.0% 33.0% 44.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.net.DatagramSocketClient
org.apache.commons.net.DatagramSocketFactory
org.apache.commons.net.ProtocolCommandListener
org.apache.commons.net.SocketClient
org.apache.commons.net.SocketFactory
org.apache.commons.net.CharGenTCPClient
org.apache.commons.net.CharGenUDPClient
org.apache.commons.net.DaytimeTCPClient
org.apache.commons.net.DaytimeUDPClient
org.apache.commons.net.DefaultDatagramSocketFactory
org.apache.commons.net.DefaultSocketFactory
org.apache.commons.net.DiscardTCPClient
org.apache.commons.net.DiscardUDPClient
org.apache.commons.net.EchoTCPClient
org.apache.commons.net.EchoUDPClient
org.apache.commons.net.FingerClient
org.apache.commons.net.MalformedServerReplyException
org.apache.commons.net.ProtocolCommandEvent
org.apache.commons.net.ProtocolCommandSupport
org.apache.commons.net.TimeTCPClient
org.apache.commons.net.TimeUDPClient
org.apache.commons.net.WhoisClient
examples
examples.ntp
org.apache.commons.net.bsd
org.apache.commons.net.ftp
org.apache.commons.net.nntp
org.apache.commons.net.ntp
org.apache.commons.net.pop3
org.apache.commons.net.smtp
org.apache.commons.net.telnet
org.apache.commons.net.tftp
java.io
java.lang
java.net
java.util
org.apache.commons.net.util

org.apache.commons.net.bsd

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 0.0% 83.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.net.bsd.RCommandClient
org.apache.commons.net.bsd.RExecClient
org.apache.commons.net.bsd.RLoginClient
examples
java.io
java.lang
java.net
org.apache.commons.net
org.apache.commons.net.io

org.apache.commons.net.ftp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 10 31.0% 83.0% 15.000001%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.net.ftp.Configurable
org.apache.commons.net.ftp.FTPFileEntryParser
org.apache.commons.net.ftp.FTPFileEntryParserImpl
org.apache.commons.net.ftp.FTPFileListParser
org.apache.commons.net.ftp.FTPFileListParserImpl
org.apache.commons.net.ftp.DefaultFTPFileListParser
org.apache.commons.net.ftp.FTP
org.apache.commons.net.ftp.FTPClient
org.apache.commons.net.ftp.FTPClientConfig
org.apache.commons.net.ftp.FTPCommand
org.apache.commons.net.ftp.FTPConnectionClosedException
org.apache.commons.net.ftp.FTPFile
org.apache.commons.net.ftp.FTPFileIterator
org.apache.commons.net.ftp.FTPFileList
org.apache.commons.net.ftp.FTPListParseEngine
org.apache.commons.net.ftp.FTPReply
examples
org.apache.commons.net.ftp.parser
java.io
java.lang
java.lang.reflect
java.net
java.text
java.util
org.apache.commons.net
org.apache.commons.net.ftp.parser
org.apache.commons.net.io
org.apache.commons.net.telnet

org.apache.commons.net.ftp.parser

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 22.0% 86.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.net.ftp.parser.ConfigurableFTPFileEntryParserImpl
org.apache.commons.net.ftp.parser.FTPFileEntryParserFactory
org.apache.commons.net.ftp.parser.FTPTimestampParser
org.apache.commons.net.ftp.parser.RegexFTPFileEntryParserImpl
org.apache.commons.net.ftp.parser.CompositeFileEntryParser
org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory
org.apache.commons.net.ftp.parser.EnterpriseUnixFTPEntryParser
org.apache.commons.net.ftp.parser.FTPTimestampParserImpl
org.apache.commons.net.ftp.parser.MVSFTPEntryParser
org.apache.commons.net.ftp.parser.NTFTPEntryParser
org.apache.commons.net.ftp.parser.NetwareFTPEntryParser
org.apache.commons.net.ftp.parser.OS2FTPEntryParser
org.apache.commons.net.ftp.parser.OS400FTPEntryParser
org.apache.commons.net.ftp.parser.ParserInitializationException
org.apache.commons.net.ftp.parser.UnixFTPEntryParser
org.apache.commons.net.ftp.parser.VMSFTPEntryParser
org.apache.commons.net.ftp.parser.VMSVersioningFTPEntryParser
org.apache.commons.net.ftp.parser.VMSVersioningFTPEntryParser$NameVersion
org.apache.commons.net.ftp
java.io
java.lang
java.text
java.util
org.apache.commons.net.ftp
org.apache.oro.text.regex

org.apache.commons.net.io

Afferent Couplings Efferent Couplings Abstractness Instability Distance
9 5 8.0% 36.0% 57.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.net.io.CopyStreamListener
org.apache.commons.net.io.CopyStreamAdapter
org.apache.commons.net.io.CopyStreamEvent
org.apache.commons.net.io.CopyStreamException
org.apache.commons.net.io.DotTerminatedMessageReader
org.apache.commons.net.io.DotTerminatedMessageWriter
org.apache.commons.net.io.FromNetASCIIInputStream
org.apache.commons.net.io.FromNetASCIIOutputStream
org.apache.commons.net.io.SocketInputStream
org.apache.commons.net.io.SocketOutputStream
org.apache.commons.net.io.ToNetASCIIInputStream
org.apache.commons.net.io.ToNetASCIIOutputStream
org.apache.commons.net.io.Util
examples
examples.nntp
org.apache.commons.net.bsd
org.apache.commons.net.ftp
org.apache.commons.net.nntp
org.apache.commons.net.pop3
org.apache.commons.net.smtp
org.apache.commons.net.telnet
org.apache.commons.net.tftp
java.io
java.lang
java.net
java.util
org.apache.commons.net.util

org.apache.commons.net.nntp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 8.0% 83.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.net.nntp.Threadable
org.apache.commons.net.nntp.Article
org.apache.commons.net.nntp.ArticlePointer
org.apache.commons.net.nntp.NNTP
org.apache.commons.net.nntp.NNTPClient
org.apache.commons.net.nntp.NNTPCommand
org.apache.commons.net.nntp.NNTPConnectionClosedException
org.apache.commons.net.nntp.NNTPReply
org.apache.commons.net.nntp.NewGroupsOrNewsQuery
org.apache.commons.net.nntp.NewsgroupInfo
org.apache.commons.net.nntp.SimpleNNTPHeader
org.apache.commons.net.nntp.ThreadContainer
org.apache.commons.net.nntp.Threader
examples.nntp
java.io
java.lang
java.util
org.apache.commons.net
org.apache.commons.net.io

org.apache.commons.net.ntp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 17.0% 88.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.net.ntp.NtpV3Packet
org.apache.commons.net.ntp.NTPUDPClient
org.apache.commons.net.ntp.NtpUtils
org.apache.commons.net.ntp.NtpV3Impl
org.apache.commons.net.ntp.TimeInfo
org.apache.commons.net.ntp.TimeStamp
examples.ntp
java.io
java.lang
java.lang.ref
java.net
java.text
java.util
org.apache.commons.net

org.apache.commons.net.pop3

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 0.0% 86.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.net.pop3.POP3
org.apache.commons.net.pop3.POP3Client
org.apache.commons.net.pop3.POP3Command
org.apache.commons.net.pop3.POP3MessageInfo
org.apache.commons.net.pop3.POP3Reply
examples
java.io
java.lang
java.security
java.util
org.apache.commons.net
org.apache.commons.net.io

org.apache.commons.net.smtp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 0.0% 86.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.net.smtp.RelayPath
org.apache.commons.net.smtp.SMTP
org.apache.commons.net.smtp.SMTPClient
org.apache.commons.net.smtp.SMTPCommand
org.apache.commons.net.smtp.SMTPConnectionClosedException
org.apache.commons.net.smtp.SMTPReply
org.apache.commons.net.smtp.SimpleSMTPHeader
examples
java.io
java.lang
java.net
java.util
org.apache.commons.net
org.apache.commons.net.io

org.apache.commons.net.telnet

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 4 15.000001% 67.0% 18.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.net.telnet.TelnetNotificationHandler
org.apache.commons.net.telnet.TelnetOptionHandler
org.apache.commons.net.telnet.EchoOptionHandler
org.apache.commons.net.telnet.InvalidTelnetOptionException
org.apache.commons.net.telnet.SimpleOptionHandler
org.apache.commons.net.telnet.SuppressGAOptionHandler
org.apache.commons.net.telnet.Telnet
org.apache.commons.net.telnet.TelnetClient
org.apache.commons.net.telnet.TelnetCommand
org.apache.commons.net.telnet.TelnetInputStream
org.apache.commons.net.telnet.TelnetOption
org.apache.commons.net.telnet.TelnetOutputStream
org.apache.commons.net.telnet.TerminalTypeOptionHandler
examples
org.apache.commons.net.ftp
java.io
java.lang
org.apache.commons.net
org.apache.commons.net.io

org.apache.commons.net.tftp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 20.0% 83.0% 3.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.net.tftp.TFTPPacket
org.apache.commons.net.tftp.TFTPRequestPacket
org.apache.commons.net.tftp.TFTP
org.apache.commons.net.tftp.TFTPAckPacket
org.apache.commons.net.tftp.TFTPClient
org.apache.commons.net.tftp.TFTPDataPacket
org.apache.commons.net.tftp.TFTPErrorPacket
org.apache.commons.net.tftp.TFTPPacketException
org.apache.commons.net.tftp.TFTPReadRequestPacket
org.apache.commons.net.tftp.TFTPWriteRequestPacket
examples
java.io
java.lang
java.net
org.apache.commons.net
org.apache.commons.net.io

org.apache.commons.net.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 3 0.0% 60.000004% 40.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.net.util.ListenerList
org.apache.commons.net
org.apache.commons.net.io
java.io
java.lang
java.util

Cycles

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

Package Package Dependencies
examples org.apache.commons.net.ftp
org.apache.commons.net.ftp.parser
org.apache.commons.net.ftp
examples.nntp examples
org.apache.commons.net.ftp
org.apache.commons.net.ftp.parser
org.apache.commons.net.ftp
org.apache.commons.net.ftp org.apache.commons.net.ftp.parser
org.apache.commons.net.ftp
org.apache.commons.net.ftp.parser org.apache.commons.net.ftp
org.apache.commons.net.ftp.parser

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.