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
javax.faces2201030.0%23.0%77.0%1
javax.faces.application94561056.0%62.0%18.0%1
javax.faces.component4133881820.0%69.0%11.0%1
javax.faces.component.html25250050.0%100.0%0.0%1
javax.faces.context615101083.0%50.0%33.0%1
javax.faces.convert211924810.0%67.0%24.0%1
javax.faces.el8444350.0%43.0%7.0%1
javax.faces.event10553750.0%70.0%20.0%1
javax.faces.lifecycle20235100.0%62.0%62.0%1
javax.faces.model181621611.0%86.0%3.0%1
javax.faces.render40437100.0%70.0%70.0%1
javax.faces.validator6513717.0%70.0%13.0%1
javax.faces.webapp97201722.0%100.0%22.0%1

Packages

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

javax.faces

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1030.0%23.0%77.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonejavax.faces.FacesException
javax.faces.FactoryFinder
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.convert
javax.faces.el
javax.faces.event
javax.faces.lifecycle
javax.faces.model
javax.faces.validator
javax.faces.webapp
java.lang
java.lang.reflect
java.util

javax.faces.application

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
61056.0%62.0%18.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.application.Application
javax.faces.application.ApplicationFactory
javax.faces.application.NavigationHandler
javax.faces.application.StateManager
javax.faces.application.ViewHandler
javax.faces.application.FacesMessage
javax.faces.application.FacesMessage$1
javax.faces.application.FacesMessage$Severity
javax.faces.application.StateManager$SerializedView
javax.faces.component
javax.faces.context
javax.faces.convert
javax.faces.render
javax.faces.validator
javax.faces.webapp
java.io
java.lang
java.util
javax.faces
javax.faces.component
javax.faces.context
javax.faces.convert
javax.faces.el
javax.faces.event
javax.faces.validator

javax.faces.component

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
81820.0%69.0%11.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.component.ActionSource
javax.faces.component.EditableValueHolder
javax.faces.component.NamingContainer
javax.faces.component.StateHolder
javax.faces.component.UIComponent
javax.faces.component.UIComponentBase
javax.faces.component.ValueHolder
javax.faces.component._SelectItemsUtil$_ValueConverter
javax.faces.component.UIColumn
javax.faces.component.UICommand
javax.faces.component.UIData
javax.faces.component.UIData$1
javax.faces.component.UIData$EditableValueHolderState
javax.faces.component.UIData$FacesEventWrapper
javax.faces.component.UIForm
javax.faces.component.UIGraphic
javax.faces.component.UIInput
javax.faces.component.UIMessage
javax.faces.component.UIMessages
javax.faces.component.UINamingContainer
javax.faces.component.UIOutput
javax.faces.component.UIPanel
javax.faces.component.UIParameter
javax.faces.component.UISelectBoolean
javax.faces.component.UISelectItem
javax.faces.component.UISelectItems
javax.faces.component.UISelectMany
javax.faces.component.UISelectOne
javax.faces.component.UIViewRoot
javax.faces.component._AttachedListStateWrapper
javax.faces.component._AttachedStateWrapper
javax.faces.component._ComponentAttributesMap
javax.faces.component._ComponentChildrenList
javax.faces.component._ComponentFacetMap
javax.faces.component._ComponentUtils
javax.faces.component._FacetsAndChildrenIterator
javax.faces.component._MessageUtils
javax.faces.component._PrimitiveArrayIterator
javax.faces.component._SelectItemsIterator
javax.faces.component._SelectItemsUtil
javax.faces.component._SharedRendererUtils
javax.faces.application
javax.faces.component.html
javax.faces.context
javax.faces.convert
javax.faces.event
javax.faces.render
javax.faces.validator
javax.faces.webapp
java.beans
java.io
java.lang
java.lang.reflect
java.sql
java.text
java.util
javax.faces
javax.faces.application
javax.faces.context
javax.faces.convert
javax.faces.el
javax.faces.event
javax.faces.model
javax.faces.render
javax.faces.validator
javax.servlet.jsp.jstl.sql
org.apache.commons.logging

javax.faces.component.html

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
050.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonejavax.faces.component.html.HtmlCommandButton
javax.faces.component.html.HtmlCommandLink
javax.faces.component.html.HtmlDataTable
javax.faces.component.html.HtmlForm
javax.faces.component.html.HtmlGraphicImage
javax.faces.component.html.HtmlInputHidden
javax.faces.component.html.HtmlInputSecret
javax.faces.component.html.HtmlInputText
javax.faces.component.html.HtmlInputTextarea
javax.faces.component.html.HtmlMessage
javax.faces.component.html.HtmlMessages
javax.faces.component.html.HtmlOutputFormat
javax.faces.component.html.HtmlOutputLabel
javax.faces.component.html.HtmlOutputLink
javax.faces.component.html.HtmlOutputText
javax.faces.component.html.HtmlPanelGrid
javax.faces.component.html.HtmlPanelGroup
javax.faces.component.html.HtmlSelectBooleanCheckbox
javax.faces.component.html.HtmlSelectManyCheckbox
javax.faces.component.html.HtmlSelectManyListbox
javax.faces.component.html.HtmlSelectManyMenu
javax.faces.component.html.HtmlSelectOneListbox
javax.faces.component.html.HtmlSelectOneMenu
javax.faces.component.html.HtmlSelectOneRadio
javax.faces.component.html._ComponentUtils
Nonejava.io
java.lang
javax.faces.component
javax.faces.context
javax.faces.el

javax.faces.context

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
101083.0%50.0%33.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.context.ExternalContext
javax.faces.context.FacesContext
javax.faces.context.FacesContextFactory
javax.faces.context.ResponseStream
javax.faces.context.ResponseWriter
javax.faces.context.FacesContext$1
javax.faces.application
javax.faces.component
javax.faces.component.html
javax.faces.convert
javax.faces.el
javax.faces.event
javax.faces.lifecycle
javax.faces.render
javax.faces.validator
javax.faces.webapp
java.io
java.lang
java.net
java.security
java.util
javax.faces
javax.faces.application
javax.faces.component
javax.faces.lifecycle
javax.faces.render

javax.faces.convert

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
4810.0%67.0%24.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.convert.Converter
javax.faces.convert.DateTimeConverter$Type
javax.faces.convert.BigDecimalConverter
javax.faces.convert.BigIntegerConverter
javax.faces.convert.BooleanConverter
javax.faces.convert.ByteConverter
javax.faces.convert.CharacterConverter
javax.faces.convert.ConverterException
javax.faces.convert.DateTimeConverter
javax.faces.convert.DateTimeConverter$1
javax.faces.convert.DateTimeConverter$Style
javax.faces.convert.DateTimeConverter$Type$1
javax.faces.convert.DateTimeConverter$Type$2
javax.faces.convert.DateTimeConverter$Type$3
javax.faces.convert.DoubleConverter
javax.faces.convert.FloatConverter
javax.faces.convert.IntegerConverter
javax.faces.convert.LongConverter
javax.faces.convert.NumberConverter
javax.faces.convert.ShortConverter
javax.faces.convert._MessageUtils
javax.faces.application
javax.faces.component
javax.faces.render
javax.faces.webapp
java.lang
java.math
java.text
java.util
javax.faces
javax.faces.application
javax.faces.component
javax.faces.context

javax.faces.el

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
4350.0%43.0%7.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.el.MethodBinding
javax.faces.el.PropertyResolver
javax.faces.el.ValueBinding
javax.faces.el.VariableResolver
javax.faces.el.EvaluationException
javax.faces.el.MethodNotFoundException
javax.faces.el.PropertyNotFoundException
javax.faces.el.ReferenceSyntaxException
javax.faces.application
javax.faces.component
javax.faces.component.html
javax.faces.webapp
java.lang
javax.faces
javax.faces.context

javax.faces.event

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3750.0%70.0%20.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.event.ActionListener
javax.faces.event.FacesEvent
javax.faces.event.FacesListener
javax.faces.event.PhaseListener
javax.faces.event.ValueChangeListener
javax.faces.event.AbortProcessingException
javax.faces.event.ActionEvent
javax.faces.event.PhaseEvent
javax.faces.event.PhaseId
javax.faces.event.ValueChangeEvent
javax.faces.application
javax.faces.component
javax.faces.lifecycle
java.io
java.lang
java.util
javax.faces
javax.faces.component
javax.faces.context
javax.faces.lifecycle

javax.faces.lifecycle

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
35100.0%62.0%62.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.lifecycle.Lifecycle
javax.faces.lifecycle.LifecycleFactory
Nonejavax.faces.context
javax.faces.event
javax.faces.webapp
java.lang
java.util
javax.faces
javax.faces.context
javax.faces.event

javax.faces.model

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1611.0%86.0%3.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.model.DataModel
javax.faces.model.DataModelListener
javax.faces.model.ArrayDataModel
javax.faces.model.DataModelEvent
javax.faces.model.ListDataModel
javax.faces.model.ResultDataModel
javax.faces.model.ResultSetDataModel
javax.faces.model.ResultSetDataModel$WrapResultSetEntries
javax.faces.model.ResultSetDataModel$WrapResultSetEntriesIterator
javax.faces.model.ResultSetDataModel$WrapResultSetEntry
javax.faces.model.ResultSetDataModel$WrapResultSetKeys
javax.faces.model.ResultSetDataModel$WrapResultSetKeysIterator
javax.faces.model.ResultSetDataModel$WrapResultSetMap
javax.faces.model.ResultSetDataModel$WrapResultSetValues
javax.faces.model.ResultSetDataModel$WrapResultSetValuesIterator
javax.faces.model.ScalarDataModel
javax.faces.model.SelectItem
javax.faces.model.SelectItemGroup
javax.faces.component
java.io
java.lang
java.sql
java.util
javax.faces
javax.servlet.jsp.jstl.sql

javax.faces.render

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
37100.0%70.0%70.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.render.RenderKit
javax.faces.render.RenderKitFactory
javax.faces.render.Renderer
javax.faces.render.ResponseStateManager
Nonejavax.faces.component
javax.faces.context
javax.faces.webapp
java.io
java.lang
java.util
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.convert

javax.faces.validator

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3717.0%70.0%13.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.validator.Validator
javax.faces.validator.DoubleRangeValidator
javax.faces.validator.LengthValidator
javax.faces.validator.LongRangeValidator
javax.faces.validator.ValidatorException
javax.faces.validator._MessageUtils
javax.faces.application
javax.faces.component
javax.faces.webapp
java.lang
java.text
java.util
javax.faces
javax.faces.application
javax.faces.component
javax.faces.context

javax.faces.webapp

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01722.0%100.0%22.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.webapp.UIComponentBodyTag
javax.faces.webapp.UIComponentTag
javax.faces.webapp.AttributeTag
javax.faces.webapp.ConverterTag
javax.faces.webapp.FacesServlet
javax.faces.webapp.FacetTag
javax.faces.webapp.ValidatorTag
javax.faces.webapp._DummyPageContextOutWriter
javax.faces.webapp._PageContextOutWriter
Nonejava.io
java.lang
java.util
javax.faces
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.convert
javax.faces.el
javax.faces.lifecycle
javax.faces.render
javax.faces.validator
javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.commons.logging

Cycles

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

PackagePackage Dependencies
javax.faces.applicationjavax.faces.el
javax.faces.context
javax.faces.render
javax.faces.component
javax.faces.el
javax.faces.componentjavax.faces.el
javax.faces.context
javax.faces.render
javax.faces.component
javax.faces.component.htmljavax.faces.el
javax.faces.context
javax.faces.render
javax.faces.component
javax.faces.el
javax.faces.contextjavax.faces.render
javax.faces.component
javax.faces.el
javax.faces.context
javax.faces.convertjavax.faces.application
javax.faces.el
javax.faces.context
javax.faces.render
javax.faces.component
javax.faces.el
javax.faces.eljavax.faces.context
javax.faces.render
javax.faces.component
javax.faces.el
javax.faces.eventjavax.faces.component
javax.faces.el
javax.faces.context
javax.faces.render
javax.faces.component
javax.faces.lifecyclejavax.faces.event
javax.faces.component
javax.faces.el
javax.faces.context
javax.faces.render
javax.faces.component
javax.faces.renderjavax.faces.component
javax.faces.el
javax.faces.context
javax.faces.render
javax.faces.validatorjavax.faces.component
javax.faces.el
javax.faces.context
javax.faces.render
javax.faces.component
javax.faces.webappjavax.faces.lifecycle
javax.faces.event
javax.faces.component
javax.faces.el
javax.faces.context
javax.faces.render
javax.faces.component

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.