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.sat4j1513202113.0%100.0%13.0%1
org.sat4j.core76110514.0%33.0%52.0%1
org.sat4j.minisat1101110.0%92.0%8.0%1
org.sat4j.minisat.constraints231942917.0%82.0%1.0%1
org.sat4j.minisat.constraints.card330260.0%75.0%25.0%1
org.sat4j.minisat.constraints.cnf12111468.0%60.000004%32.0%1
org.sat4j.minisat.constraints.pb2116521024.0%83.0%7.0%1
org.sat4j.minisat.core37172010754.000004%41.0%5.0%1
org.sat4j.minisat.learning9722322.0%60.000004%18.0%1
org.sat4j.minisat.orders880270.0%78.0%22.0%1
org.sat4j.minisat.restarts330320.0%40.0%60.000004%1
org.sat4j.minisat.uip220240.0%67.0%33.0%1
org.sat4j.opt7613614.0%67.0%19.0%1
org.sat4j.reader171611146.0%93.0%1.0%1
org.sat4j.reader.csp231761726.0%88.0%14.0%1
org.sat4j.specs82614475.0%22.0%3.0%1
org.sat4j.tools13121468.0%60.000004%32.0%1

Packages

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

org.sat4j

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
02113.0%100.0%13.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.AbstractLauncher
org.sat4j.AbstractOptimizationLauncher
org.sat4j.AbstractLauncher$1
org.sat4j.AbstractLauncher$2
org.sat4j.CSPLauncher
org.sat4j.ExitCode
org.sat4j.GenericOptLauncher
org.sat4j.Lanceur
org.sat4j.LanceurPseudo2005
org.sat4j.LanceurPseudo2007
org.sat4j.MaxSatLauncher
org.sat4j.Messages
org.sat4j.MoreThanSAT
org.sat4j.ResultCode
org.sat4j.ResultsManager
Nonejava.awt
java.io
java.lang
java.lang.management
java.lang.reflect
java.net
java.util
org.apache.commons.beanutils
org.apache.commons.cli
org.sat4j.core
org.sat4j.minisat
org.sat4j.minisat.constraints
org.sat4j.minisat.core
org.sat4j.minisat.learning
org.sat4j.minisat.orders
org.sat4j.minisat.restarts
org.sat4j.minisat.uip
org.sat4j.opt
org.sat4j.reader
org.sat4j.specs
org.sat4j.tools

org.sat4j.core

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
10514.0%33.0%52.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.core.ASolverFactory
org.sat4j.core.DefaultComparator
org.sat4j.core.Vec
org.sat4j.core.Vec$1
org.sat4j.core.VecInt
org.sat4j.core.VecInt$1
org.sat4j.core.VecInt$2
org.sat4j
org.sat4j.minisat
org.sat4j.minisat.constraints
org.sat4j.minisat.constraints.cnf
org.sat4j.minisat.constraints.pb
org.sat4j.minisat.core
org.sat4j.opt
org.sat4j.reader
org.sat4j.reader.csp
org.sat4j.tools
java.io
java.lang
java.lang.reflect
java.util
org.sat4j.specs

org.sat4j.minisat

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1110.0%92.0%8.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.sat4j.minisat.SolverFactory
org.sat4j
java.io
org.sat4j.core
org.sat4j.minisat.constraints
org.sat4j.minisat.constraints.pb
org.sat4j.minisat.core
org.sat4j.minisat.learning
org.sat4j.minisat.orders
org.sat4j.minisat.restarts
org.sat4j.minisat.uip
org.sat4j.specs
org.sat4j.tools

org.sat4j.minisat.constraints

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2917.0%82.0%1.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.minisat.constraints.AbstractCardinalityDataStructure
org.sat4j.minisat.constraints.AbstractDataStructureFactory
org.sat4j.minisat.constraints.AbstractPBClauseCardConstrDataStructure
org.sat4j.minisat.constraints.AbstractPBDataStructureFactory
org.sat4j.minisat.constraints.CardinalityDataStructure
org.sat4j.minisat.constraints.CardinalityDataStructureYanMax
org.sat4j.minisat.constraints.CardinalityDataStructureYanMin
org.sat4j.minisat.constraints.ClausalDataStructureCB
org.sat4j.minisat.constraints.ClausalDataStructureCBWL
org.sat4j.minisat.constraints.ClausalDataStructureWL
org.sat4j.minisat.constraints.MixedDataStructureDaniel
org.sat4j.minisat.constraints.MixedDataStructureDanielCBWL
org.sat4j.minisat.constraints.MixedDataStructureWithBinary
org.sat4j.minisat.constraints.MixedDataStructureWithBinaryAndTernary
org.sat4j.minisat.constraints.PBMaxCBClauseCardConstrDataStructure
org.sat4j.minisat.constraints.PBMaxClauseAtLeastConstrDataStructure
org.sat4j.minisat.constraints.PBMaxClauseCardConstrDataStructure
org.sat4j.minisat.constraints.PBMaxDataStructure
org.sat4j.minisat.constraints.PBMinClauseCardConstrDataStructure
org.sat4j.minisat.constraints.PBMinDataStructure
org.sat4j.minisat.constraints.PuebloPBMinClauseAtLeastConstrDataStructure
org.sat4j.minisat.constraints.PuebloPBMinClauseCardConstrDataStructure
org.sat4j.minisat.constraints.PuebloPBMinDataStructure
org.sat4j
org.sat4j.minisat
java.io
java.lang
java.math
org.sat4j.core
org.sat4j.minisat.constraints.card
org.sat4j.minisat.constraints.cnf
org.sat4j.minisat.constraints.pb
org.sat4j.minisat.core
org.sat4j.specs

org.sat4j.minisat.constraints.card

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
260.0%75.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.sat4j.minisat.constraints.card.AtLeast
org.sat4j.minisat.constraints.card.MaxWatchCard
org.sat4j.minisat.constraints.card.MinWatchCard
org.sat4j.minisat.constraints
org.sat4j.minisat.constraints.pb
java.io
java.lang
java.math
org.sat4j.minisat.constraints.cnf
org.sat4j.minisat.core
org.sat4j.specs

org.sat4j.minisat.constraints.cnf

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
468.0%60.000004%32.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.minisat.constraints.cnf.WLClause
org.sat4j.minisat.constraints.cnf.BinaryClauses
org.sat4j.minisat.constraints.cnf.CBClause
org.sat4j.minisat.constraints.cnf.DefaultWLClause
org.sat4j.minisat.constraints.cnf.LearntWLClause
org.sat4j.minisat.constraints.cnf.Lits
org.sat4j.minisat.constraints.cnf.Lits2
org.sat4j.minisat.constraints.cnf.Lits23
org.sat4j.minisat.constraints.cnf.MarkableLits
org.sat4j.minisat.constraints.cnf.MixableCBClause
org.sat4j.minisat.constraints.cnf.OriginalWLClause
org.sat4j.minisat.constraints.cnf.TernaryClauses
org.sat4j.minisat.constraints
org.sat4j.minisat.constraints.card
org.sat4j.minisat.constraints.pb
org.sat4j.minisat.learning
java.io
java.lang
java.util
org.sat4j.core
org.sat4j.minisat.core
org.sat4j.specs

org.sat4j.minisat.constraints.pb

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
21024.0%83.0%7.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.minisat.constraints.pb.IConflict
org.sat4j.minisat.constraints.pb.IDataStructurePB
org.sat4j.minisat.constraints.pb.IInternalPBConstraintCreator
org.sat4j.minisat.constraints.pb.PBConstr
org.sat4j.minisat.constraints.pb.WatchPb
org.sat4j.minisat.constraints.pb.AtLeastPB
org.sat4j.minisat.constraints.pb.ConflictMap
org.sat4j.minisat.constraints.pb.ConflictMapCardinality
org.sat4j.minisat.constraints.pb.ConflictMapClause
org.sat4j.minisat.constraints.pb.ConflictMapMerging
org.sat4j.minisat.constraints.pb.MapPb
org.sat4j.minisat.constraints.pb.MaxWatchPb
org.sat4j.minisat.constraints.pb.MinWatchCardPB
org.sat4j.minisat.constraints.pb.MinWatchPb
org.sat4j.minisat.constraints.pb.MixableCBClausePB
org.sat4j.minisat.constraints.pb.PBSolver
org.sat4j.minisat.constraints.pb.PBSolverClause
org.sat4j.minisat.constraints.pb.PBSolverMerging
org.sat4j.minisat.constraints.pb.PBSolverWithImpliedClause
org.sat4j.minisat.constraints.pb.PuebloMinWatchPb
org.sat4j.minisat.constraints.pb.WLClausePB
org.sat4j.minisat
org.sat4j.minisat.constraints
java.io
java.lang
java.math
java.util
org.sat4j.core
org.sat4j.minisat.constraints.card
org.sat4j.minisat.constraints.cnf
org.sat4j.minisat.core
org.sat4j.minisat.restarts
org.sat4j.specs

org.sat4j.minisat.core

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
10754.000004%41.0%5.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.minisat.core.ActivityListener
org.sat4j.minisat.core.AssertingClauseGenerator
org.sat4j.minisat.core.ConflictTimer
org.sat4j.minisat.core.Constr
org.sat4j.minisat.core.ConstrActivityListener
org.sat4j.minisat.core.DataStructureFactory
org.sat4j.minisat.core.ILits
org.sat4j.minisat.core.ILits2
org.sat4j.minisat.core.ILits23
org.sat4j.minisat.core.IMarkableLits
org.sat4j.minisat.core.IOrder
org.sat4j.minisat.core.Learner
org.sat4j.minisat.core.LearningStrategy
org.sat4j.minisat.core.Propagatable
org.sat4j.minisat.core.RestartStrategy
org.sat4j.minisat.core.SearchListener
org.sat4j.minisat.core.Solver$ISimplifier
org.sat4j.minisat.core.Undoable
org.sat4j.minisat.core.UnitPropagationListener
org.sat4j.minisat.core.VarActivityListener
org.sat4j.minisat.core.ActivityComparator
org.sat4j.minisat.core.DotSearchListener
org.sat4j.minisat.core.Handle
org.sat4j.minisat.core.Heap
org.sat4j.minisat.core.IntQueue
org.sat4j.minisat.core.Lbool
org.sat4j.minisat.core.LiteralsUtils
org.sat4j.minisat.core.NullSearchListener
org.sat4j.minisat.core.SearchParams
org.sat4j.minisat.core.Solver
org.sat4j.minisat.core.Solver$1
org.sat4j.minisat.core.Solver$2
org.sat4j.minisat.core.Solver$3
org.sat4j.minisat.core.Solver$4
org.sat4j.minisat.core.Solver$5
org.sat4j.minisat.core.SolverStats
org.sat4j.minisat.core.TextOutputListener
org.sat4j
org.sat4j.minisat
org.sat4j.minisat.constraints
org.sat4j.minisat.constraints.card
org.sat4j.minisat.constraints.cnf
org.sat4j.minisat.constraints.pb
org.sat4j.minisat.learning
org.sat4j.minisat.orders
org.sat4j.minisat.restarts
org.sat4j.minisat.uip
java.io
java.lang
java.lang.reflect
java.math
java.util
org.sat4j.core
org.sat4j.specs

org.sat4j.minisat.learning

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2322.0%60.000004%18.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.minisat.learning.AbstractLearning
org.sat4j.minisat.learning.LimitedLearning
org.sat4j.minisat.learning.ActiveLearning
org.sat4j.minisat.learning.ClauseOnlyLearning
org.sat4j.minisat.learning.FixedLengthLearning
org.sat4j.minisat.learning.MiniSATLearning
org.sat4j.minisat.learning.NoLearningButHeuristics
org.sat4j.minisat.learning.NoLearningNoHeuristics
org.sat4j.minisat.learning.PercentLengthLearning
org.sat4j
org.sat4j.minisat
java.lang
org.sat4j.minisat.constraints.cnf
org.sat4j.minisat.core

org.sat4j.minisat.orders

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
270.0%78.0%22.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.sat4j.minisat.orders.JWOrder
org.sat4j.minisat.orders.MyOrder
org.sat4j.minisat.orders.PureOrder
org.sat4j.minisat.orders.ValuedLit
org.sat4j.minisat.orders.VarOrder
org.sat4j.minisat.orders.VarOrderHeap
org.sat4j.minisat.orders.VarOrderHeapObjective
org.sat4j.minisat.orders.VarOrderHeapRsat
org.sat4j
org.sat4j.minisat
java.io
java.lang
java.math
java.util
org.sat4j.minisat.core
org.sat4j.opt
org.sat4j.specs

org.sat4j.minisat.restarts

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
320.0%40.0%60.000004%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.sat4j.minisat.restarts.ArminRestarts
org.sat4j.minisat.restarts.LubyRestarts
org.sat4j.minisat.restarts.MiniSATRestarts
org.sat4j
org.sat4j.minisat
org.sat4j.minisat.constraints.pb
java.lang
org.sat4j.minisat.core

org.sat4j.minisat.uip

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
240.0%67.0%33.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.sat4j.minisat.uip.DecisionUIP
org.sat4j.minisat.uip.FirstUIP
org.sat4j
org.sat4j.minisat
java.io
java.lang
org.sat4j.minisat.core
org.sat4j.specs

org.sat4j.opt

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3614.0%67.0%19.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.opt.AbstractSelectorVariablesDecorator
org.sat4j.opt.MaxSatDecorator
org.sat4j.opt.MinCostDecorator
org.sat4j.opt.MinOneDecorator
org.sat4j.opt.ObjectiveFunction
org.sat4j.opt.PseudoOptDecorator
org.sat4j.opt.WeightedMaxSatDecorator
org.sat4j
org.sat4j.minisat.orders
org.sat4j.reader
java.io
java.lang
java.math
org.sat4j.core
org.sat4j.specs
org.sat4j.tools

org.sat4j.reader

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1146.0%93.0%1.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.reader.Reader
org.sat4j.reader.AAGReader
org.sat4j.reader.AIGReader
org.sat4j.reader.CSPExtSupportReader
org.sat4j.reader.CSPReader
org.sat4j.reader.CSPSupportReader
org.sat4j.reader.CardDimacsReader
org.sat4j.reader.DimacsReader
org.sat4j.reader.ExtendedDimacsReader
org.sat4j.reader.GoodOPBReader
org.sat4j.reader.InstanceReader
org.sat4j.reader.LecteurDimacs
org.sat4j.reader.OPBReader2005
org.sat4j.reader.OPBReader2006
org.sat4j.reader.OPBReader2007
org.sat4j.reader.ParseFormatException
org.sat4j.reader.XMLCSPReader
org.sat4j
java.io
java.lang
java.math
java.net
java.util
java.util.zip
javax.xml.parsers
org.sat4j.core
org.sat4j.csp.xml
org.sat4j.opt
org.sat4j.reader.csp
org.sat4j.specs
org.sat4j.tools
org.xml.sax

org.sat4j.reader.csp

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1726.0%88.0%14.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.reader.csp.Clausifiable
org.sat4j.reader.csp.Domain
org.sat4j.reader.csp.Encoding
org.sat4j.reader.csp.Evaluable
org.sat4j.reader.csp.Relation
org.sat4j.reader.csp.Supports
org.sat4j.reader.csp.AllDiff
org.sat4j.reader.csp.BessiereSupports
org.sat4j.reader.csp.BinarySupportEncoding
org.sat4j.reader.csp.Constant
org.sat4j.reader.csp.DirectEncoding
org.sat4j.reader.csp.EnumeratedDomain
org.sat4j.reader.csp.EnumeratedDomain$1
org.sat4j.reader.csp.GeneralizedSupportEncoding
org.sat4j.reader.csp.GentSupports
org.sat4j.reader.csp.Nogoods
org.sat4j.reader.csp.Predicate
org.sat4j.reader.csp.RangeDomain
org.sat4j.reader.csp.RangeDomain$1
org.sat4j.reader.csp.SingletonDomain
org.sat4j.reader.csp.SingletonDomain$1
org.sat4j.reader.csp.Var
org.sat4j.reader.csp.WalshSupports
org.sat4j.reader
java.io
java.lang
java.net
java.util
org.mozilla.javascript
org.sat4j.core
org.sat4j.specs

org.sat4j.specs

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
14475.0%22.0%3.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.specs.IConstr
org.sat4j.specs.IOptimizationProblem
org.sat4j.specs.IProblem
org.sat4j.specs.ISolver
org.sat4j.specs.IVec
org.sat4j.specs.IVecInt
org.sat4j.specs.ContradictionException
org.sat4j.specs.TimeoutException
org.sat4j
org.sat4j.core
org.sat4j.minisat
org.sat4j.minisat.constraints
org.sat4j.minisat.constraints.card
org.sat4j.minisat.constraints.cnf
org.sat4j.minisat.constraints.pb
org.sat4j.minisat.core
org.sat4j.minisat.orders
org.sat4j.minisat.uip
org.sat4j.opt
org.sat4j.reader
org.sat4j.reader.csp
org.sat4j.tools
java.io
java.lang
java.math
java.util

org.sat4j.tools

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
468.0%60.000004%32.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.tools.SolverDecorator
org.sat4j.tools.DimacsArrayReader
org.sat4j.tools.DimacsArrayToDimacsConverter
org.sat4j.tools.DimacsOutputSolver
org.sat4j.tools.ExtendedDimacsArrayReader
org.sat4j.tools.ExtendedDimacsArrayToDimacsConverter
org.sat4j.tools.GateTranslator
org.sat4j.tools.Minimal4CardinalityModel
org.sat4j.tools.Minimal4InclusionModel
org.sat4j.tools.ModelIterator
org.sat4j.tools.RemiUtils
org.sat4j.tools.SingleSolutionDetector
org.sat4j.tools.SolutionCounter
org.sat4j
org.sat4j.minisat
org.sat4j.opt
org.sat4j.reader
java.io
java.lang
java.math
java.util
org.sat4j.core
org.sat4j.specs

Cycles

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

There are no cyclic dependencies.

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.