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.csveed.annotations 9 0 9 1 2 100.0% 67.0% 67.0% 1
org.csveed.api 5 1 4 3 7 80.0% 70.0% 50.0% 1
org.csveed.bean 14 9 5 2 14 36.0% 88.0% 23.0% 1
org.csveed.bean.conversion 23 17 6 2 9 26.0% 82.0% 8.0% 1
org.csveed.common 5 4 1 3 3 20.0% 50.0% 30.000002% 1
org.csveed.report 8 5 3 5 3 38.0% 38.0% 25.0% 1
org.csveed.row 12 7 5 2 8 42.0% 80.0% 22.0% 1
org.csveed.token 8 7 1 1 5 12.0% 83.0% 4.0% 1

Packages

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

org.csveed.annotations

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 100.0% 67.0% 67.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.csveed.annotations.CsvCell
org.csveed.annotations.CsvConverter
org.csveed.annotations.CsvDate
org.csveed.annotations.CsvFile
org.csveed.annotations.CsvHeaderName
org.csveed.annotations.CsvHeaderValue
org.csveed.annotations.CsvIgnore
org.csveed.annotations.CsvLocalizedNumber
org.csveed.annotations.package-info
None org.csveed.bean
java.lang
java.lang.annotation

org.csveed.api

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 7 80.0% 70.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.csveed.api.CsvClient
org.csveed.api.Header
org.csveed.api.Row
org.csveed.api.package-info
org.csveed.api.CsvClientImpl
org.csveed.bean
org.csveed.common
org.csveed.row
java.io
java.lang
java.util
org.csveed.bean
org.csveed.bean.conversion
org.csveed.report
org.csveed.row

org.csveed.bean

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 14 36.0% 88.0% 23.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.csveed.bean.AbstractMapper
org.csveed.bean.BeanInstructions
org.csveed.bean.BeanReader
org.csveed.bean.BeanWriter
org.csveed.bean.package-info
org.csveed.bean.BeanInstructionsImpl
org.csveed.bean.BeanParser
org.csveed.bean.BeanProperties
org.csveed.bean.BeanProperty
org.csveed.bean.BeanReaderImpl
org.csveed.bean.BeanWriterImpl
org.csveed.bean.ColumnIndexMapper
org.csveed.bean.ColumnNameMapper
org.csveed.bean.DynamicColumn
org.csveed.api
org.csveed.bean.conversion
java.beans
java.io
java.lang
java.lang.annotation
java.lang.reflect
java.text
java.util
org.csveed.annotations
org.csveed.api
org.csveed.bean.conversion
org.csveed.common
org.csveed.report
org.csveed.row
org.slf4j

org.csveed.bean.conversion

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 9 26.0% 82.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.csveed.bean.conversion.AbstractConverter
org.csveed.bean.conversion.ConversionException
org.csveed.bean.conversion.Converter
org.csveed.bean.conversion.EasyAbstractConverter
org.csveed.bean.conversion.NumberUtils
org.csveed.bean.conversion.package-info
org.csveed.bean.conversion.BeanPropertyConversionException
org.csveed.bean.conversion.BeanWrapper
org.csveed.bean.conversion.ByteArrayConverter
org.csveed.bean.conversion.CharArrayConverter
org.csveed.bean.conversion.CharacterConverter
org.csveed.bean.conversion.CharsetConverter
org.csveed.bean.conversion.ConversionUtil
org.csveed.bean.conversion.CurrencyConverter
org.csveed.bean.conversion.CustomBooleanConverter
org.csveed.bean.conversion.CustomNumberConverter
org.csveed.bean.conversion.DateConverter
org.csveed.bean.conversion.DefaultConverters
org.csveed.bean.conversion.EnumConverter
org.csveed.bean.conversion.NoConverterFoundException
org.csveed.bean.conversion.PatternConverter
org.csveed.bean.conversion.StringConverter
org.csveed.bean.conversion.TimeZoneConverter
org.csveed.api
org.csveed.bean
java.beans
java.lang
java.lang.reflect
java.math
java.nio.charset
java.text
java.util
java.util.regex
org.csveed.bean

org.csveed.common

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 3 20.0% 50.0% 30.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.csveed.common.ColumnKey
org.csveed.common.Column
org.csveed.common.ColumnExcel
org.csveed.common.ColumnIndexKey
org.csveed.common.ColumnNameKey
org.csveed.bean
org.csveed.row
org.csveed.token
java.lang
org.csveed.api
org.csveed.report

org.csveed.report

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 3 38.0% 38.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.csveed.report.AbstractCsvError
org.csveed.report.CsvError
org.csveed.report.package-info
org.csveed.report.CsvException
org.csveed.report.GeneralError
org.csveed.report.RowError
org.csveed.report.RowPart
org.csveed.report.RowReport
org.csveed.api
org.csveed.bean
org.csveed.common
org.csveed.row
org.csveed.token
java.lang
java.util
org.slf4j

org.csveed.row

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 8 42.0% 80.0% 22.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.csveed.row.Line
org.csveed.row.RowInstructions
org.csveed.row.RowReader
org.csveed.row.RowWriter
org.csveed.row.package-info
org.csveed.row.CellPositionInRow
org.csveed.row.HeaderImpl
org.csveed.row.LineWithInfo
org.csveed.row.RowImpl
org.csveed.row.RowInstructionsImpl
org.csveed.row.RowReaderImpl
org.csveed.row.RowWriterImpl
org.csveed.api
org.csveed.bean
java.io
java.lang
java.util
org.csveed.api
org.csveed.common
org.csveed.report
org.csveed.token
org.slf4j

org.csveed.token

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 12.0% 83.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.csveed.token.package-info
org.csveed.token.EncounteredSymbol
org.csveed.token.ParseException
org.csveed.token.ParseState
org.csveed.token.ParseStateMachine
org.csveed.token.ParseStateMachine$1
org.csveed.token.SymbolMapping
org.csveed.token.TokenState
org.csveed.row
java.lang
java.util
org.csveed.common
org.csveed.report
org.slf4j

Cycles

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

Package Package Dependencies
org.csveed.api org.csveed.bean.conversion
org.csveed.bean
org.csveed.bean.conversion
org.csveed.bean org.csveed.bean.conversion
org.csveed.bean
org.csveed.bean.conversion org.csveed.bean
org.csveed.bean.conversion
org.csveed.common org.csveed.api
org.csveed.bean.conversion
org.csveed.bean
org.csveed.bean.conversion
org.csveed.row org.csveed.api
org.csveed.bean.conversion
org.csveed.bean
org.csveed.bean.conversion
org.csveed.token org.csveed.common
org.csveed.api
org.csveed.bean.conversion
org.csveed.bean
org.csveed.bean.conversion

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.