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
com.nickokiss.investor.calc 8 8 0 5 9 0.0% 64.0% 36.0% 1
com.nickokiss.investor.fin.element 11 10 1 4 7 9.0% 64.0% 27.000002% 1
com.nickokiss.investor.fin.element.creator 2 1 1 2 3 50.0% 60.000004% 10.0% 1
com.nickokiss.investor.fin.env 7 5 2 2 6 29.0% 75.0% 4.0% 1
com.nickokiss.investor.function 5 4 1 2 6 20.0% 75.0% 5.0% 1
com.nickokiss.investor.functioncalc 3 2 1 1 5 33.0% 83.0% 17.0% 1
com.nickokiss.investor.util 3 3 0 4 3 0.0% 43.0% 57.0% 1

Packages

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

com.nickokiss.investor.calc

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 9 0.0% 64.0% 36.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None com.nickokiss.investor.calc.AnnuityCalc
com.nickokiss.investor.calc.BondCalc
com.nickokiss.investor.calc.CashFlowStreamCalc
com.nickokiss.investor.calc.CompoundInterestCalc
com.nickokiss.investor.calc.ContCompInterestCalc
com.nickokiss.investor.calc.MathCalc
com.nickokiss.investor.calc.PortfolioCalc
com.nickokiss.investor.calc.SimpleInterestCalc
com.nickokiss.investor.fin.element
com.nickokiss.investor.fin.env
com.nickokiss.investor.function
com.nickokiss.investor.functioncalc
com.nickokiss.investor.util
com.nickokiss.investor.fin.element
com.nickokiss.investor.fin.env
com.nickokiss.investor.function
com.nickokiss.investor.functioncalc
com.nickokiss.investor.util
java.lang
java.math
java.util
org.apache.commons.lang.builder

com.nickokiss.investor.fin.element

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 7 9.0% 64.0% 27.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
com.nickokiss.investor.fin.element.FinElement
com.nickokiss.investor.fin.element.Annuity
com.nickokiss.investor.fin.element.Bond
com.nickokiss.investor.fin.element.CashFlowIRRComparator
com.nickokiss.investor.fin.element.CashFlowPVComparator
com.nickokiss.investor.fin.element.CashFlowStream
com.nickokiss.investor.fin.element.CashFlowStream$1
com.nickokiss.investor.fin.element.CashFlowStream$TimeComparator
com.nickokiss.investor.fin.element.Portfolio
com.nickokiss.investor.fin.element.StreamElement
com.nickokiss.investor.fin.element.StreamElementType
com.nickokiss.investor.calc
com.nickokiss.investor.fin.element.creator
com.nickokiss.investor.fin.env
com.nickokiss.investor.function
com.nickokiss.investor.calc
com.nickokiss.investor.fin.element.creator
com.nickokiss.investor.fin.env
java.lang
java.math
java.util
org.apache.commons.lang.builder

com.nickokiss.investor.fin.element.creator

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 3 50.0% 60.000004% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
com.nickokiss.investor.fin.element.creator.StreamElementCreator
com.nickokiss.investor.fin.element.creator.AddingElementCreator
com.nickokiss.investor.fin.element
com.nickokiss.investor.function
com.nickokiss.investor.fin.element
java.lang
java.math

com.nickokiss.investor.fin.env

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 6 29.0% 75.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
com.nickokiss.investor.fin.env.CompoundingStrategy
com.nickokiss.investor.fin.env.InterestRateStrategy
com.nickokiss.investor.fin.env.ConstantInterestRateStrategy
com.nickokiss.investor.fin.env.ContinuousCompoundingStrategy
com.nickokiss.investor.fin.env.Env
com.nickokiss.investor.fin.env.GeneralInterestRateStrategy
com.nickokiss.investor.fin.env.PeriodicCompoundingStrategy
com.nickokiss.investor.calc
com.nickokiss.investor.fin.element
com.nickokiss.investor.calc
com.nickokiss.investor.fin.element
com.nickokiss.investor.util
java.lang
java.math
java.util

com.nickokiss.investor.function

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 6 20.0% 75.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
com.nickokiss.investor.function.Function
com.nickokiss.investor.function.BondPriceFunction
com.nickokiss.investor.function.CashFlowPresentValueFunction
com.nickokiss.investor.function.EffectiveInterestRateFunction
com.nickokiss.investor.function.InfiniteStreamPVFunction
com.nickokiss.investor.calc
com.nickokiss.investor.functioncalc
com.nickokiss.investor.calc
com.nickokiss.investor.fin.element
com.nickokiss.investor.fin.element.creator
com.nickokiss.investor.util
java.lang
java.math

com.nickokiss.investor.functioncalc

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 33.0% 83.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
com.nickokiss.investor.functioncalc.FunctionCalc
com.nickokiss.investor.functioncalc.Div2FunctionCalc
com.nickokiss.investor.functioncalc.IterativeFunctionCalc
com.nickokiss.investor.calc
com.nickokiss.investor.calc
com.nickokiss.investor.function
com.nickokiss.investor.util
java.lang
java.math

com.nickokiss.investor.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 3 0.0% 43.0% 57.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None com.nickokiss.investor.util.Range
com.nickokiss.investor.util.TkFinConstants
com.nickokiss.investor.util.TkFinConstructionException
com.nickokiss.investor.calc
com.nickokiss.investor.fin.env
com.nickokiss.investor.function
com.nickokiss.investor.functioncalc
com.nickokiss.investor.calc
java.lang
java.math

Cycles

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

Package Package Dependencies
com.nickokiss.investor.calc com.nickokiss.investor.fin.env
com.nickokiss.investor.calc
com.nickokiss.investor.fin.element com.nickokiss.investor.fin.env
com.nickokiss.investor.calc
com.nickokiss.investor.fin.env
com.nickokiss.investor.fin.element.creator com.nickokiss.investor.fin.element
com.nickokiss.investor.fin.env
com.nickokiss.investor.calc
com.nickokiss.investor.fin.env
com.nickokiss.investor.fin.env com.nickokiss.investor.calc
com.nickokiss.investor.fin.env
com.nickokiss.investor.function com.nickokiss.investor.util
com.nickokiss.investor.calc
com.nickokiss.investor.fin.env
com.nickokiss.investor.calc
com.nickokiss.investor.functioncalc com.nickokiss.investor.util
com.nickokiss.investor.calc
com.nickokiss.investor.fin.env
com.nickokiss.investor.calc
com.nickokiss.investor.util com.nickokiss.investor.calc
com.nickokiss.investor.fin.env
com.nickokiss.investor.calc

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.