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
org.melati4408110.0%58.0%42.0%1
org.melati.admin151410127.0%100.0%7.0%1
org.melati.app117401036.0%100.0%36.0%1
org.melati.login111014109.0%71.0%19.0%1
org.melati.servlet2417771229.0%63.0%8.0%1
org.melati.template37251281032.0%56.0%12.0%1
org.melati.template.velocity141400220.0%100.0%0.0%1
org.melati.template.webmacro1210221217.0%86.0%2.0%1
org.melati.test202000180.0%100.0%0.0%1
org.melati.util7063791810.0%67.0%23.0%1

Packages

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

org.melati

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
8110.0%58.0%42.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.melati.LogicalDatabase
org.melati.Melati
org.melati.MelatiConfig
org.melati.PoemContext
org.melati.admin
org.melati.app
org.melati.login
org.melati.servlet
org.melati.template
org.melati.template.velocity
org.melati.template.webmacro
org.melati.test
java.io
java.lang
java.lang.reflect
java.util
javax.servlet.http
org.melati.login
org.melati.poem
org.melati.poem.util
org.melati.servlet
org.melati.template
org.melati.util

org.melati.admin

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0127.0%100.0%7.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.melati.admin.AdminSpecialised
org.melati.admin.Admin
org.melati.admin.Admin$1
org.melati.admin.Admin$2
org.melati.admin.Admin$3
org.melati.admin.Admin$3$1
org.melati.admin.Admin$NullUrlDataAdaptorException
org.melati.admin.AdminUtils
org.melati.admin.AnticipatedException
org.melati.admin.Copy
org.melati.admin.Copy$1
org.melati.admin.Copy$2
org.melati.admin.Display
org.melati.admin.NonUniqueKeyValueAnticipatedException
org.melati.admin.Status
Nonejava.io
java.lang
java.util
javax.servlet.http
org.apache.commons.httpclient
org.apache.commons.httpclient.methods
org.melati
org.melati.poem
org.melati.poem.util
org.melati.servlet
org.melati.template
org.melati.util

org.melati.app

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01036.0%100.0%36.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.melati.app.AbstractConfigApp
org.melati.app.AbstractPoemApp
org.melati.app.AbstractTemplateApp
org.melati.app.App
org.melati.app.AbstractPoemApp$1
org.melati.app.ConfigApp
org.melati.app.DSDApp
org.melati.app.InvalidArgumentsException
org.melati.app.PoemApp
org.melati.app.TemplateApp
org.melati.app.UnhandledExceptionException
Nonejava.io
java.lang
java.util
org.melati
org.melati.login
org.melati.poem
org.melati.poem.util
org.melati.template
org.melati.template.webmacro
org.melati.util

org.melati.login

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
4109.0%71.0%19.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.melati.login.AccessHandler
org.melati.login.Authorization
org.melati.login.CommandLineAccessHandler
org.melati.login.HttpAuthorization
org.melati.login.HttpAuthorizationMelatiException
org.melati.login.HttpBasicAuthenticationAccessHandler
org.melati.login.HttpSessionAccessHandler
org.melati.login.Login
org.melati.login.LoginHandler
org.melati.login.Logout
org.melati.login.OpenAccessHandler
org.melati
org.melati.app
org.melati.servlet
org.melati.test
java.io
java.lang
javax.servlet.http
org.apache.commons.codec.binary
org.melati
org.melati.poem
org.melati.poem.util
org.melati.servlet
org.melati.template
org.melati.util

org.melati.servlet

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
71229.0%63.0%8.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.melati.servlet.BaseFileFormDataAdaptor
org.melati.servlet.ConfigServlet
org.melati.servlet.FormDataAdaptor
org.melati.servlet.FormDataAdaptorFactory
org.melati.servlet.JspServlet
org.melati.servlet.PoemServlet
org.melati.servlet.TemplateServlet
org.melati.servlet.DefaultFileFormDataAdaptor
org.melati.servlet.DefaultFileFormDataAdaptorFactory
org.melati.servlet.Form
org.melati.servlet.FormDataAdaptorException
org.melati.servlet.InvalidUsageException
org.melati.servlet.JspServlet$1
org.melati.servlet.MemoryFormDataAdaptor
org.melati.servlet.MemoryFormDataAdaptorFactory
org.melati.servlet.MultipartFormDataDecoder
org.melati.servlet.MultipartFormField
org.melati.servlet.PathInfoException
org.melati.servlet.PoemFileFormDataAdaptorFactory
org.melati.servlet.PoemServlet$1
org.melati.servlet.PoemServletContextListener
org.melati.servlet.TemporaryFileFormDataAdaptor
org.melati.servlet.TemporaryFileFormDataAdaptorFactory
org.melati.servlet.TrappedException
org.melati
org.melati.admin
org.melati.login
org.melati.template
org.melati.template.velocity
org.melati.template.webmacro
org.melati.test
java.io
java.lang
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
org.melati
org.melati.login
org.melati.poem
org.melati.poem.util
org.melati.template
org.melati.util

org.melati.template

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
81032.0%56.0%12.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.melati.template.AbstractMarkupLanguage
org.melati.template.AbstractTemplateEngine
org.melati.template.AttributeMarkupLanguage
org.melati.template.HTMLLikeMarkupLanguage
org.melati.template.MarkupLanguage
org.melati.template.ServletTemplateContext
org.melati.template.ServletTemplateEngine
org.melati.template.Template
org.melati.template.TemplateContext
org.melati.template.TemplateEngine
org.melati.template.TempletAdaptor
org.melati.template.TempletLoader
org.melati.template.ClassNameTempletLoader
org.melati.template.DayPoemType
org.melati.template.FormParameterException
org.melati.template.HTMLAttributeMarkupLanguage
org.melati.template.HTMLMarkupLanguage
org.melati.template.HourPoemType
org.melati.template.MinutePoemType
org.melati.template.MissingFieldException
org.melati.template.MonthPoemType
org.melati.template.MultipartTemplateContext
org.melati.template.NoTemplateEngine
org.melati.template.NotFoundException
org.melati.template.PartlyNullException
org.melati.template.SecondPoemType
org.melati.template.SimpleDateAdaptor
org.melati.template.TemplateEngineException
org.melati.template.TemplateIOException
org.melati.template.TempletAdaptorConstructionMelatiException
org.melati.template.WMLAttributeMarkupLanguage
org.melati.template.WMLMarkupLanguage
org.melati.template.XMLAttributeMarkupLanguage
org.melati.template.XMLMarkupLanguage
org.melati.template.YMDDateAdaptor
org.melati.template.YMDHMSTimestampAdaptor
org.melati.template.YearPoemType
org.melati
org.melati.admin
org.melati.app
org.melati.login
org.melati.servlet
org.melati.template.velocity
org.melati.template.webmacro
org.melati.test
java.io
java.lang
java.sql
java.text
java.util
javax.servlet.http
org.melati
org.melati.poem
org.melati.servlet
org.melati.util

org.melati.template.velocity

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0220.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.melati.template.velocity.Form
org.melati.template.velocity.HttpServletRequestWrap
org.melati.template.velocity.MelatiBufferedVelocityWriter
org.melati.template.velocity.MelatiVelocityWriter
org.melati.template.velocity.PassbackEvaluationExceptionHandler
org.melati.template.velocity.PassbackMethodExceptionEventHandler
org.melati.template.velocity.PropagateEvaluationExceptionHandler
org.melati.template.velocity.VelocityServletTemplateContext
org.melati.template.velocity.VelocityServletTemplateEngine
org.melati.template.velocity.VelocityTemplate
org.melati.template.velocity.VelocityTemplateContext
org.melati.template.velocity.VelocityTemplateEngine
org.melati.template.velocity.WebMacroClasspathResourceLoader
org.melati.template.velocity.WebMacroConverter
Nonejava.io
java.lang
java.lang.reflect
java.util
javax.servlet.http
org.apache.oro.text.perl
org.apache.velocity
org.apache.velocity.app
org.apache.velocity.app.event
org.apache.velocity.context
org.apache.velocity.exception
org.apache.velocity.io
org.apache.velocity.runtime
org.apache.velocity.runtime.resource.loader
org.apache.velocity.util
org.apache.velocity.util.introspection
org.melati
org.melati.poem
org.melati.servlet
org.melati.template
org.melati.util
org.webmacro

org.melati.template.webmacro

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
21217.0%86.0%2.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.melati.template.webmacro.MelatiWebmacroWriter
org.melati.template.webmacro.WebmacroMelatiServlet
org.melati.template.webmacro.MelatiBufferedFastWriter
org.melati.template.webmacro.MelatiFastWriter
org.melati.template.webmacro.MelatiWebmacroStringWriter
org.melati.template.webmacro.PassbackEvaluationExceptionHandler
org.melati.template.webmacro.PropagateEvaluationExceptionHandler
org.melati.template.webmacro.WebmacroServletTemplateContext
org.melati.template.webmacro.WebmacroServletTemplateEngine
org.melati.template.webmacro.WebmacroTemplate
org.melati.template.webmacro.WebmacroTemplateContext
org.melati.template.webmacro.WebmacroTemplateEngine
org.melati.app
org.melati.test
java.io
java.lang
javax.servlet.http
org.melati
org.melati.poem
org.melati.servlet
org.melati.template
org.melati.util
org.webmacro
org.webmacro.engine
org.webmacro.servlet
org.webmacro.util

org.melati.test

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0180.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.melati.test.CharData
org.melati.test.CharData$1
org.melati.test.CharData$Item
org.melati.test.CharsetServletTest
org.melati.test.CharsetTemplateServletTest
org.melati.test.ConfigServletTest
org.melati.test.ConfigServletTestOverride
org.melati.test.EmailTemplateServletTest
org.melati.test.ExitServlet
org.melati.test.FlushingServletTest
org.melati.test.HttpAuthenticationPoemServletTest
org.melati.test.PoemServletTest
org.melati.test.PoemServletTest$1
org.melati.test.RestrictedAccessObject
org.melati.test.ServletTest
org.melati.test.SessionAnalysisServlet
org.melati.test.TemplateServletTest
org.melati.test.TemplateServletTestOverride
org.melati.test.WebmacroMelatiServletTest
org.melati.test.WebmacroStandalone
Nonejava.io
java.lang
java.nio
java.nio.charset
java.text
java.util
javax.servlet
javax.servlet.http
org.melati
org.melati.login
org.melati.poem
org.melati.poem.transaction
org.melati.servlet
org.melati.template
org.melati.template.webmacro
org.melati.util
org.webmacro
org.webmacro.servlet

org.melati.util

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
91810.0%67.0%23.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.melati.util.Function
org.melati.util.HttpHeader$FieldIterator
org.melati.util.MelatiException
org.melati.util.MelatiRuntimeException
org.melati.util.MelatiWriter
org.melati.util.PagedEnumeration
org.melati.util.PagedEnumerationBase
org.melati.util.AcceptCharset
org.melati.util.AcceptCharset$1
org.melati.util.AcceptCharset$CharsetAndQValue
org.melati.util.AcceptCharset$CharsetAndQValueIterator
org.melati.util.AcceptCharset$Comparator
org.melati.util.BugException
org.melati.util.CSVStringEnumeration
org.melati.util.CharsetException
org.melati.util.ChildrenDrivenMutableTree
org.melati.util.ConfigException
org.melati.util.ConnectionPendingException
org.melati.util.ContextUtil
org.melati.util.CountedDumbPagedEnumeration
org.melati.util.DatabaseInitException
org.melati.util.DelegatedHttpServletRequest
org.melati.util.DelimitedBufferedInputStream
org.melati.util.DumbPagedEnumeration
org.melati.util.Email
org.melati.util.EmailException
org.melati.util.ExceptionUtils
org.melati.util.FileUtils
org.melati.util.Flusher
org.melati.util.FormatPropertyException
org.melati.util.FtellPrintWriter
org.melati.util.FtellWriter
org.melati.util.HTMLUtils
org.melati.util.HTMLUtils$TagInstance
org.melati.util.HttpHeader
org.melati.util.HttpHeader$HttpHeaderException
org.melati.util.HttpHeader$TokenAndQValue
org.melati.util.HttpHeader$TokenAndQValueIterator
org.melati.util.HttpHeader$Tokenizer
org.melati.util.HttpHeader$WordIterator
org.melati.util.HttpServletRequestCompat
org.melati.util.HttpServletRequestCompat$MissingMethodError
org.melati.util.HttpServletRequestParameters
org.melati.util.HttpUtil
org.melati.util.InstantiationPropertyException
org.melati.util.IoUtils
org.melati.util.JSDynamicTree
org.melati.util.JSStaticTree
org.melati.util.MD5Util
org.melati.util.MelatiBufferedWriter
org.melati.util.MelatiBugMelatiException
org.melati.util.MelatiConfigurationException
org.melati.util.MelatiIOException
org.melati.util.MelatiSimpleWriter
org.melati.util.MelatiStringWriter
org.melati.util.NoSuchPropertyException
org.melati.util.Page
org.melati.util.ProcessFailedException
org.melati.util.PropertiesUtils
org.melati.util.PropertyException
org.melati.util.ReconstructedHttpServletRequest
org.melati.util.ReconstructedHttpServletRequestMismatchException
org.melati.util.ThrowingPrintWriter
org.melati.util.ThrowingPrintWriter$SuperUseException
org.melati.util.ThrowingPrintWriter$TroubleException
org.melati.util.Tree
org.melati.util.TreeNode
org.melati.util.UTF8URLEncoder
org.melati.util.UnexpectedExceptionException
org.melati.util.Waiter
org.melati
org.melati.admin
org.melati.app
org.melati.login
org.melati.servlet
org.melati.template
org.melati.template.velocity
org.melati.template.webmacro
org.melati.test
java.io
java.lang
java.lang.reflect
java.net
java.nio.charset
java.security
java.util
javax.activation
javax.mail
javax.mail.internet
javax.servlet
javax.servlet.http
javax.swing.text
javax.swing.text.html
javax.swing.text.html.parser
javax.swing.tree
org.melati.poem
org.melati.poem.util

Cycles

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

PackagePackage Dependencies
org.melatiorg.melati.login
org.melati.servlet
org.melati
org.melati.adminorg.melati.servlet
org.melati
org.melati.login
org.melati.servlet
org.melati.apporg.melati
org.melati.login
org.melati.servlet
org.melati
org.melati.loginorg.melati.servlet
org.melati
org.melati.login
org.melati.servletorg.melati
org.melati.login
org.melati.servlet
org.melati.templateorg.melati
org.melati.login
org.melati.servlet
org.melati
org.melati.template.velocityorg.melati.servlet
org.melati
org.melati.login
org.melati.servlet
org.melati.template.webmacroorg.melati.template
org.melati
org.melati.login
org.melati.servlet
org.melati
org.melati.testorg.melati.servlet
org.melati
org.melati.login
org.melati.servlet

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.