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.melati 4 4 0 10 11 0.0% 52.0% 48.0% 1
org.melati.admin 34 32 2 0 12 6.0% 100.0% 6.0% 1
org.melati.app 12 8 4 0 10 33.0% 100.0% 33.0% 1
org.melati.login 11 10 1 4 10 9.0% 71.0% 19.0% 1
org.melati.servlet 24 17 7 8 12 29.0% 60.000004% 11.0% 1
org.melati.template 40 28 12 9 10 30.000002% 52.999996% 17.0% 1
org.melati.template.freemarker 5 5 0 0 13 0.0% 100.0% 0.0% 1
org.melati.template.velocity 12 12 0 1 22 0.0% 96.0% 4.0% 1
org.melati.template.webmacro 12 10 2 2 13 17.0% 87.0% 3.0% 1
org.melati.test 20 20 0 0 18 0.0% 100.0% 0.0% 1
org.melati.util 69 62 7 10 18 10.0% 64.0% 26.0% 1

Packages

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

org.melati

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 11 0.0% 52.0% 48.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.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.freemarker
org.melati.template.velocity
org.melati.template.webmacro
org.melati.test
org.melati.util
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 Couplings Efferent Couplings Abstractness Instability Distance
0 12 6.0% 100.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.melati.admin.AdminSpecialised
org.melati.admin.PoemGvisType
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.PoemGvisType$1
org.melati.admin.PoemGvisType$10
org.melati.admin.PoemGvisType$11
org.melati.admin.PoemGvisType$12
org.melati.admin.PoemGvisType$13
org.melati.admin.PoemGvisType$14
org.melati.admin.PoemGvisType$15
org.melati.admin.PoemGvisType$16
org.melati.admin.PoemGvisType$17
org.melati.admin.PoemGvisType$2
org.melati.admin.PoemGvisType$3
org.melati.admin.PoemGvisType$4
org.melati.admin.PoemGvisType$5
org.melati.admin.PoemGvisType$6
org.melati.admin.PoemGvisType$7
org.melati.admin.PoemGvisType$8
org.melati.admin.PoemGvisType$9
org.melati.admin.PoemGvisTypeConverter
org.melati.admin.Status
None java.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 Couplings Efferent Couplings Abstractness Instability Distance
0 10 33.0% 100.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses 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.JavinatorApp
org.melati.app.PoemApp
org.melati.app.TemplateApp
org.melati.app.UnhandledExceptionException
None java.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 Couplings Efferent Couplings Abstractness Instability Distance
4 10 9.0% 71.0% 19.0%
Abstract Classes Concrete Classes Used by Packages Uses 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 Couplings Efferent Couplings Abstractness Instability Distance
8 12 29.0% 60.000004% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses 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.freemarker
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 Couplings Efferent Couplings Abstractness Instability Distance
9 10 30.000002% 52.999996% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses 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.JSONMarkupLanguage
org.melati.template.JavaMarkupLanguage
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.SimpleForm
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.freemarker
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.freemarker

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 13 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.melati.template.freemarker.FreemarkerServletTemplateContext
org.melati.template.freemarker.FreemarkerServletTemplateEngine
org.melati.template.freemarker.FreemarkerTemplate
org.melati.template.freemarker.FreemarkerTemplateContext
org.melati.template.freemarker.FreemarkerTemplateEngine
None freemarker.ext.beans
freemarker.template
java.io
java.lang
java.util
javax.servlet.http
org.apache.velocity.exception
org.melati
org.melati.poem
org.melati.servlet
org.melati.template
org.melati.template.velocity
org.melati.util

org.melati.template.velocity

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 22 0.0% 96.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None 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
org.melati.template.freemarker
java.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 Couplings Efferent Couplings Abstractness Instability Distance
2 13 17.0% 87.0% 3.0%
Abstract Classes Concrete Classes Used by Packages Uses 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
java.util
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 Couplings Efferent Couplings Abstractness Instability Distance
0 18 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.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
None java.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 Couplings Efferent Couplings Abstractness Instability Distance
10 18 10.0% 64.0% 26.0%
Abstract Classes Concrete Classes Used by Packages Uses 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.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.freemarker
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
org.melati
org.melati.poem
org.melati.poem.util

Cycles

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

Package Package Dependencies
org.melati org.melati.util
org.melati
org.melati.admin org.melati.template
org.melati
org.melati.util
org.melati
org.melati.app org.melati
org.melati.util
org.melati
org.melati.login org.melati
org.melati.util
org.melati
org.melati.servlet org.melati.util
org.melati
org.melati.util
org.melati.template org.melati
org.melati.util
org.melati
org.melati.template.freemarker org.melati.template
org.melati
org.melati.util
org.melati
org.melati.template.velocity org.melati.template
org.melati
org.melati.util
org.melati
org.melati.template.webmacro org.melati.template
org.melati
org.melati.util
org.melati
org.melati.test org.melati
org.melati.util
org.melati
org.melati.util org.melati
org.melati.util

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.