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
org.apache.commons.feedparser 36 23 13 7 14 36.0% 67.0% 3.0% 1
org.apache.commons.feedparser.example 2 2 0 0 5 0.0% 100.0% 0.0% 1
org.apache.commons.feedparser.impl 3 3 0 2 5 0.0% 71.0% 29.0% 1
org.apache.commons.feedparser.locate 13 12 1 3 9 8.0% 75.0% 17.0% 1
org.apache.commons.feedparser.locate.blogservice 21 20 1 2 6 5.0% 75.0% 20.0% 1
org.apache.commons.feedparser.network 14 11 3 3 10 21.0% 77.0% 2.0% 1
org.apache.commons.feedparser.output 1 1 0 0 3 0.0% 100.0% 0.0% 1
org.apache.commons.feedparser.post 3 2 1 0 3 33.0% 100.0% 33.0% 1
org.apache.commons.feedparser.sax 12 12 0 1 5 0.0% 83.0% 17.0% 1
org.apache.commons.feedparser.test 18 18 0 0 15 0.0% 100.0% 0.0% 1
org.apache.commons.feedparser.tools 5 5 0 1 4 0.0% 80.0% 20.0% 1

Packages

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

org.apache.commons.feedparser

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 14 36.0% 67.0% 3.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.feedparser.ContentFeedParserListener
org.apache.commons.feedparser.DefaultFeedDirectoryParserListener
org.apache.commons.feedparser.DefaultFeedParserListener
org.apache.commons.feedparser.FOAFFeedParserListener
org.apache.commons.feedparser.FeedDirectoryParserListener
org.apache.commons.feedparser.FeedLifecycleListener
org.apache.commons.feedparser.FeedParser
org.apache.commons.feedparser.FeedParserListener
org.apache.commons.feedparser.LinkFeedParserListener
org.apache.commons.feedparser.MetaFeedParserListener
org.apache.commons.feedparser.ModContentFeedParserListener
org.apache.commons.feedparser.TagFeedParserListener
org.apache.commons.feedparser.XHTMLFeedParserListener
org.apache.commons.feedparser.AtomFeedParser
org.apache.commons.feedparser.BaseParser
org.apache.commons.feedparser.ChangesFeedParser
org.apache.commons.feedparser.ContentDetector
org.apache.commons.feedparser.ContentDetectorResult
org.apache.commons.feedparser.FOAFFeedParser
org.apache.commons.feedparser.FeedFilter
org.apache.commons.feedparser.FeedList
org.apache.commons.feedparser.FeedParserException
org.apache.commons.feedparser.FeedParserFactory
org.apache.commons.feedparser.FeedParserImpl
org.apache.commons.feedparser.FeedParserState
org.apache.commons.feedparser.FeedVersion
org.apache.commons.feedparser.HTMLFeedParser
org.apache.commons.feedparser.HTMLFeedParser$1
org.apache.commons.feedparser.Main
org.apache.commons.feedparser.MetaFeedParser
org.apache.commons.feedparser.NS
org.apache.commons.feedparser.OPMLFeedParser
org.apache.commons.feedparser.RSSFeedParser
org.apache.commons.feedparser.TagFeedParser
org.apache.commons.feedparser.TerminateParserException
org.apache.commons.feedparser.Test
org.apache.commons.feedparser.example
org.apache.commons.feedparser.impl
org.apache.commons.feedparser.locate
org.apache.commons.feedparser.locate.blogservice
org.apache.commons.feedparser.output
org.apache.commons.feedparser.sax
org.apache.commons.feedparser.test
java.io
java.lang
java.net
java.util
java.util.regex
org.apache.commons.feedparser.impl
org.apache.commons.feedparser.locate
org.apache.commons.feedparser.tools
org.apache.log4j
org.jaxen
org.jaxen.jdom
org.jdom
org.jdom.input
org.jdom.output

org.apache.commons.feedparser.example

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 org.apache.commons.feedparser.example.HelloFeedParser
org.apache.commons.feedparser.example.HelloFeedParser$1
None java.io
java.lang
java.util
org.apache.commons.feedparser
org.apache.commons.feedparser.network

org.apache.commons.feedparser.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 0.0% 71.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.feedparser.impl.CaptureOutputFeedParserListener
org.apache.commons.feedparser.impl.CapturePrintStream
org.apache.commons.feedparser.impl.DebugFeedParserListener
org.apache.commons.feedparser
org.apache.commons.feedparser.test
java.io
java.lang
java.util
org.apache.commons.feedparser
org.jdom

org.apache.commons.feedparser.locate

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 9 8.0% 75.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.feedparser.locate.AnchorParserListener
org.apache.commons.feedparser.locate.AnchorParser
org.apache.commons.feedparser.locate.AnchorParser$1
org.apache.commons.feedparser.locate.AnchorParserException
org.apache.commons.feedparser.locate.BlogServiceDiscovery
org.apache.commons.feedparser.locate.DiscoveryLocator
org.apache.commons.feedparser.locate.EntityDecoder
org.apache.commons.feedparser.locate.FeedLocator
org.apache.commons.feedparser.locate.FeedReference
org.apache.commons.feedparser.locate.LinkLocator
org.apache.commons.feedparser.locate.LinkLocator$1
org.apache.commons.feedparser.locate.ProbeLocator
org.apache.commons.feedparser.locate.ResourceExpander
org.apache.commons.feedparser
org.apache.commons.feedparser.locate.blogservice
org.apache.commons.feedparser.test
java.io
java.lang
java.net
java.util
java.util.regex
org.apache.commons.feedparser
org.apache.commons.feedparser.locate.blogservice
org.apache.commons.feedparser.network
org.apache.log4j

org.apache.commons.feedparser.locate.blogservice

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 6 5.0% 75.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.feedparser.locate.blogservice.BlogService
org.apache.commons.feedparser.locate.blogservice.AOLJournal
org.apache.commons.feedparser.locate.blogservice.Blogger
org.apache.commons.feedparser.locate.blogservice.Blosxom
org.apache.commons.feedparser.locate.blogservice.DiaryLand
org.apache.commons.feedparser.locate.blogservice.ExpressionEngine
org.apache.commons.feedparser.locate.blogservice.Flickr
org.apache.commons.feedparser.locate.blogservice.GreyMatter
org.apache.commons.feedparser.locate.blogservice.LiveJournal
org.apache.commons.feedparser.locate.blogservice.Manila
org.apache.commons.feedparser.locate.blogservice.MovableType
org.apache.commons.feedparser.locate.blogservice.PMachine
org.apache.commons.feedparser.locate.blogservice.RadioUserland
org.apache.commons.feedparser.locate.blogservice.TextAmerica
org.apache.commons.feedparser.locate.blogservice.TextPattern
org.apache.commons.feedparser.locate.blogservice.Typepad
org.apache.commons.feedparser.locate.blogservice.Unknown
org.apache.commons.feedparser.locate.blogservice.WordPress
org.apache.commons.feedparser.locate.blogservice.Xanga
org.apache.commons.feedparser.locate.blogservice.YahooGroups
org.apache.commons.feedparser.locate.blogservice.iBlog
org.apache.commons.feedparser.locate
org.apache.commons.feedparser.test
java.io
java.lang
java.util
java.util.regex
org.apache.commons.feedparser
org.apache.commons.feedparser.locate

org.apache.commons.feedparser.network

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 10 21.0% 77.0% 2.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.feedparser.network.BaseResourceRequest
org.apache.commons.feedparser.network.NetworkEventListener
org.apache.commons.feedparser.network.ResourceRequest
org.apache.commons.feedparser.network.AdvancedInputStream
org.apache.commons.feedparser.network.Authenticator
org.apache.commons.feedparser.network.BlockingResourceRequest
org.apache.commons.feedparser.network.DataEvent
org.apache.commons.feedparser.network.HTTPClientNetworkResource
org.apache.commons.feedparser.network.MalformedResourceException
org.apache.commons.feedparser.network.NetworkException
org.apache.commons.feedparser.network.ResourceRequestFactory
org.apache.commons.feedparser.network.URLCookieManager
org.apache.commons.feedparser.network.URLResolver
org.apache.commons.feedparser.network.URLResourceRequest
org.apache.commons.feedparser.example
org.apache.commons.feedparser.locate
org.apache.commons.feedparser.test
java.io
java.lang
java.lang.reflect
java.net
java.util
java.util.zip
org.apache.commons.httpclient
org.apache.commons.httpclient.methods
org.apache.log4j
sun.net.www.protocol.http

org.apache.commons.feedparser.output

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.feedparser.output.RSS10_OutputFeedParserListener
None java.io
java.lang
org.apache.commons.feedparser

org.apache.commons.feedparser.post

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 33.0% 100.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.feedparser.post.PostAgent
org.apache.commons.feedparser.post.MetaWeblogPostAgent
org.apache.commons.feedparser.post.PostEntry
None java.lang
java.util
org.apache.xmlrpc

org.apache.commons.feedparser.sax

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.feedparser.sax.BaseDefaultHandler
org.apache.commons.feedparser.sax.RSSDcSubjectFeedParser
org.apache.commons.feedparser.sax.RSSDescriptionFeedParser
org.apache.commons.feedparser.sax.RSSFeedParser
org.apache.commons.feedparser.sax.RSSFeedParser$ChannelTemplate
org.apache.commons.feedparser.sax.RSSFeedParser$ModContentTemplate
org.apache.commons.feedparser.sax.RSSFeedParser$RDFValueTemplate
org.apache.commons.feedparser.sax.RSSFeedParser$URLTemplate
org.apache.commons.feedparser.sax.RSSImageFeedParser
org.apache.commons.feedparser.sax.RSSItemFeedParser
org.apache.commons.feedparser.sax.RSSLinkFeedParser
org.apache.commons.feedparser.sax.RSSTitleFeedParser
org.apache.commons.feedparser.test
java.lang
java.util
org.apache.commons.feedparser
org.xml.sax
org.xml.sax.helpers

org.apache.commons.feedparser.test

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 15 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.feedparser.test.BaseTestCase
org.apache.commons.feedparser.test.DebugPerformance
org.apache.commons.feedparser.test.DebugPerformance$1
org.apache.commons.feedparser.test.DebugPerformance$2
org.apache.commons.feedparser.test.TestAtom
org.apache.commons.feedparser.test.TestAtom$1
org.apache.commons.feedparser.test.TestBrokenFeeds
org.apache.commons.feedparser.test.TestComments
org.apache.commons.feedparser.test.TestFeedFilter
org.apache.commons.feedparser.test.TestFeedLocator
org.apache.commons.feedparser.test.TestFeedParser
org.apache.commons.feedparser.test.TestFeedParser$1
org.apache.commons.feedparser.test.TestFeedParserUTF8
org.apache.commons.feedparser.test.TestGuid
org.apache.commons.feedparser.test.TestPerformance
org.apache.commons.feedparser.test.TestPerformance$1
org.apache.commons.feedparser.test.TestPerformance$2
org.apache.commons.feedparser.test.TestProbeLocator
None java.io
java.lang
java.lang.reflect
java.net
java.util
javax.xml.parsers
junit.framework
org.apache.commons.feedparser
org.apache.commons.feedparser.impl
org.apache.commons.feedparser.locate
org.apache.commons.feedparser.locate.blogservice
org.apache.commons.feedparser.network
org.apache.commons.feedparser.sax
org.apache.xerces.impl
org.xml.sax

org.apache.commons.feedparser.tools

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 0.0% 80.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.feedparser.tools.ISO8601DateParser
org.apache.commons.feedparser.tools.RFC3066LocaleParser
org.apache.commons.feedparser.tools.RFC822DateParser
org.apache.commons.feedparser.tools.XMLCleanser
org.apache.commons.feedparser.tools.XMLEncodingParser
org.apache.commons.feedparser
java.io
java.lang
java.text
java.util

Cycles

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

Package Package Dependencies
org.apache.commons.feedparser org.apache.commons.feedparser.locate
org.apache.commons.feedparser
org.apache.commons.feedparser.example org.apache.commons.feedparser
org.apache.commons.feedparser.locate
org.apache.commons.feedparser
org.apache.commons.feedparser.impl org.apache.commons.feedparser
org.apache.commons.feedparser.locate
org.apache.commons.feedparser
org.apache.commons.feedparser.locate org.apache.commons.feedparser
org.apache.commons.feedparser.locate
org.apache.commons.feedparser.locate.blogservice org.apache.commons.feedparser
org.apache.commons.feedparser.locate
org.apache.commons.feedparser
org.apache.commons.feedparser.output org.apache.commons.feedparser
org.apache.commons.feedparser.locate
org.apache.commons.feedparser
org.apache.commons.feedparser.sax org.apache.commons.feedparser
org.apache.commons.feedparser.locate
org.apache.commons.feedparser
org.apache.commons.feedparser.test org.apache.commons.feedparser
org.apache.commons.feedparser.locate
org.apache.commons.feedparser

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.