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.sat4j108201520.0%100.0%20.0%1
org.sat4j.core121111158.0%31.0%60.000004%1
org.sat4j.minisat110190.0%90.0%10.0%1
org.sat4j.minisat.constraints9722722.0%78.0%0.0%1
org.sat4j.minisat.constraints.card330160.0%86.0%14.0%1
org.sat4j.minisat.constraints.cnf13943531.0%62.0%7.0%1
org.sat4j.minisat.core4022188645.0%43.0%12.0%1
org.sat4j.minisat.learning9722322.0%60.000004%18.0%1
org.sat4j.minisat.orders13121268.0%75.0%17.0%1
org.sat4j.minisat.restarts440220.0%50.0%50.0%1
org.sat4j.opt3211433.0%80.0%13.0%1
org.sat4j.reader98111011.0%91.0%2.0%1
org.sat4j.specs113813373.0%19.0%9.0%1
org.sat4j.tools252235712.0%58.0%30.000002%1
org.sat4j.tools.encoding8711512.0%83.0%4.0%1
org.sat4j.tools.xplain9722622.0%75.0%3.0%1

Packages

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

org.sat4j

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01520.0%100.0%20.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.AbstractLauncher
org.sat4j.AbstractOptimizationLauncher
org.sat4j.AbstractLauncher$1
org.sat4j.AbstractLauncher$2
org.sat4j.BasicLauncher
org.sat4j.ExitCode
org.sat4j.LightFactory
org.sat4j.MUSLauncher
org.sat4j.Messages
org.sat4j.MoreThanSAT
Nonejava.io
java.lang
java.net
java.util
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.reader
org.sat4j.specs
org.sat4j.tools
org.sat4j.tools.xplain

org.sat4j.core

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1158.0%31.0%60.000004%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.core.ASolverFactory
org.sat4j.core.ConstrGroup
org.sat4j.core.DefaultComparator
org.sat4j.core.LiteralsUtils
org.sat4j.core.ReadOnlyVec
org.sat4j.core.ReadOnlyVecInt
org.sat4j.core.Vec
org.sat4j.core.Vec$1
org.sat4j.core.VecInt
org.sat4j.core.VecInt$1
org.sat4j.core.VecInt$1$1
org.sat4j.core.VecInt$2
org.sat4j
org.sat4j.minisat
org.sat4j.minisat.constraints
org.sat4j.minisat.constraints.cnf
org.sat4j.minisat.core
org.sat4j.minisat.orders
org.sat4j.opt
org.sat4j.reader
org.sat4j.tools
org.sat4j.tools.encoding
org.sat4j.tools.xplain
java.io
java.lang
java.lang.reflect
java.util
org.sat4j.specs

org.sat4j.minisat

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
190.0%90.0%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.sat4j.minisat.SolverFactory
org.sat4j
org.sat4j.core
org.sat4j.minisat.constraints
org.sat4j.minisat.core
org.sat4j.minisat.learning
org.sat4j.minisat.orders
org.sat4j.minisat.restarts
org.sat4j.opt
org.sat4j.specs
org.sat4j.tools

org.sat4j.minisat.constraints

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2722.0%78.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.minisat.constraints.AbstractCardinalityDataStructure
org.sat4j.minisat.constraints.AbstractDataStructureFactory
org.sat4j.minisat.constraints.CardinalityDataStructure
org.sat4j.minisat.constraints.CardinalityDataStructureYanMax
org.sat4j.minisat.constraints.CardinalityDataStructureYanMin
org.sat4j.minisat.constraints.ClausalDataStructureWL
org.sat4j.minisat.constraints.MixedDataStructureDanielHT
org.sat4j.minisat.constraints.MixedDataStructureDanielWL
org.sat4j.minisat.constraints.MixedDataStructureSingleWL
org.sat4j
org.sat4j.minisat
java.io
java.lang
org.sat4j.core
org.sat4j.minisat.constraints.card
org.sat4j.minisat.constraints.cnf
org.sat4j.minisat.core
org.sat4j.specs

org.sat4j.minisat.constraints.card

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
160.0%86.0%14.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
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
3531.0%62.0%7.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.minisat.constraints.cnf.BinaryClause
org.sat4j.minisat.constraints.cnf.Clauses
org.sat4j.minisat.constraints.cnf.HTClause
org.sat4j.minisat.constraints.cnf.WLClause
org.sat4j.minisat.constraints.cnf.LearntBinaryClause
org.sat4j.minisat.constraints.cnf.LearntHTClause
org.sat4j.minisat.constraints.cnf.LearntWLClause
org.sat4j.minisat.constraints.cnf.Lits
org.sat4j.minisat.constraints.cnf.OriginalBinaryClause
org.sat4j.minisat.constraints.cnf.OriginalHTClause
org.sat4j.minisat.constraints.cnf.OriginalWLClause
org.sat4j.minisat.constraints.cnf.UnitClause
org.sat4j.minisat.constraints.cnf.UnitClauses
org.sat4j.minisat.constraints
org.sat4j.minisat.constraints.card
org.sat4j.minisat.learning
java.io
java.lang
org.sat4j.core
org.sat4j.minisat.core
org.sat4j.specs

org.sat4j.minisat.core

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
8645.0%43.0%12.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.minisat.core.ActivityListener
org.sat4j.minisat.core.ConflictTimer
org.sat4j.minisat.core.ConflictTimerAdapter
org.sat4j.minisat.core.Constr
org.sat4j.minisat.core.ConstrActivityListener
org.sat4j.minisat.core.DataStructureFactory
org.sat4j.minisat.core.ILits
org.sat4j.minisat.core.IOrder
org.sat4j.minisat.core.IPhaseSelectionStrategy
org.sat4j.minisat.core.Learner
org.sat4j.minisat.core.LearningStrategy
org.sat4j.minisat.core.Propagatable
org.sat4j.minisat.core.RestartStrategy
org.sat4j.minisat.core.Solver$ISimplifier
org.sat4j.minisat.core.Solver$LearnedConstraintsDeletionStrategy
org.sat4j.minisat.core.Undoable
org.sat4j.minisat.core.UnitPropagationListener
org.sat4j.minisat.core.VarActivityListener
org.sat4j.minisat.core.ActivityComparator
org.sat4j.minisat.core.ConflictTimerContainer
org.sat4j.minisat.core.Counter
org.sat4j.minisat.core.Heap
org.sat4j.minisat.core.IntQueue
org.sat4j.minisat.core.Pair
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.Solver$5$1
org.sat4j.minisat.core.Solver$6
org.sat4j.minisat.core.Solver$6$1
org.sat4j.minisat.core.Solver$7
org.sat4j.minisat.core.Solver$7$1
org.sat4j.minisat.core.Solver$8
org.sat4j.minisat.core.Solver$9
org.sat4j.minisat.core.SolverStats
org.sat4j.minisat.core.VoidTracing
org.sat4j
org.sat4j.minisat
org.sat4j.minisat.constraints
org.sat4j.minisat.constraints.card
org.sat4j.minisat.constraints.cnf
org.sat4j.minisat.learning
org.sat4j.minisat.orders
org.sat4j.minisat.restarts
java.io
java.lang
java.lang.reflect
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
268.0%75.0%17.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.minisat.orders.AbstractPhaserecordingSelectionStrategy
org.sat4j.minisat.orders.NegativeLiteralSelectionStrategy
org.sat4j.minisat.orders.PhaseCachingAutoEraseStrategy
org.sat4j.minisat.orders.PhaseInLastLearnedClauseSelectionStrategy
org.sat4j.minisat.orders.PositiveLiteralSelectionStrategy
org.sat4j.minisat.orders.PureOrder
org.sat4j.minisat.orders.RSATLastLearnedClausesPhaseSelectionStrategy
org.sat4j.minisat.orders.RSATPhaseSelectionStrategy
org.sat4j.minisat.orders.RandomLiteralSelectionStrategy
org.sat4j.minisat.orders.RandomWalkDecorator
org.sat4j.minisat.orders.UserFixedPhaseSelectionStrategy
org.sat4j.minisat.orders.ValuedLit
org.sat4j.minisat.orders.VarOrderHeap
org.sat4j
org.sat4j.minisat
java.io
java.lang
java.util
org.sat4j.core
org.sat4j.minisat.core
org.sat4j.specs

org.sat4j.minisat.restarts

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
220.0%50.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.sat4j.minisat.restarts.ArminRestarts
org.sat4j.minisat.restarts.LubyRestarts
org.sat4j.minisat.restarts.MiniSATRestarts
org.sat4j.minisat.restarts.NoRestarts
org.sat4j
org.sat4j.minisat
java.lang
org.sat4j.minisat.core

org.sat4j.opt

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1433.0%80.0%13.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.opt.AbstractSelectorVariablesDecorator
org.sat4j.opt.MaxSatDecorator
org.sat4j.opt.MinOneDecorator
org.sat4j.minisat
java.lang
org.sat4j.core
org.sat4j.specs
org.sat4j.tools

org.sat4j.reader

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
11011.0%91.0%2.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.reader.Reader
org.sat4j.reader.AAGReader
org.sat4j.reader.AIGReader
org.sat4j.reader.DimacsReader
org.sat4j.reader.EfficientScanner
org.sat4j.reader.GroupedCNFReader
org.sat4j.reader.InstanceReader
org.sat4j.reader.LecteurDimacs
org.sat4j.reader.ParseFormatException
org.sat4j
java.io
java.lang
java.math
java.net
java.util
java.util.zip
org.sat4j.core
org.sat4j.specs
org.sat4j.tools
org.sat4j.tools.xplain

org.sat4j.specs

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
13373.0%19.0%9.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.IteratorInt
org.sat4j.specs.SearchListener
org.sat4j.specs.ContradictionException
org.sat4j.specs.Lbool
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.core
org.sat4j.minisat.orders
org.sat4j.opt
org.sat4j.reader
org.sat4j.tools
org.sat4j.tools.encoding
org.sat4j.tools.xplain
java.io
java.lang
java.util

org.sat4j.tools

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
5712.0%58.0%30.000002%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.tools.AbstractOutputSolver
org.sat4j.tools.OutcomeListener
org.sat4j.tools.SolverDecorator
org.sat4j.tools.ClausalCardinalitiesDecorator
org.sat4j.tools.ConflictLevelTracing
org.sat4j.tools.DecisionLevelTracing
org.sat4j.tools.DecisionTracing
org.sat4j.tools.DimacsArrayReader
org.sat4j.tools.DimacsOutputSolver
org.sat4j.tools.DimacsStringSolver
org.sat4j.tools.DotSearchTracing
org.sat4j.tools.ExtendedDimacsArrayReader
org.sat4j.tools.GateTranslator
org.sat4j.tools.LearnedClauseSizeTracing
org.sat4j.tools.LexicoDecorator
org.sat4j.tools.ManyCore
org.sat4j.tools.Minimal4CardinalityModel
org.sat4j.tools.Minimal4InclusionModel
org.sat4j.tools.ModelIterator
org.sat4j.tools.OptToSatAdapter
org.sat4j.tools.RemiUtils
org.sat4j.tools.RunnableSolver
org.sat4j.tools.SingleSolutionDetector
org.sat4j.tools.SolutionCounter
org.sat4j.tools.TextOutputTracing
org.sat4j
org.sat4j.minisat
org.sat4j.opt
org.sat4j.reader
org.sat4j.tools.xplain
java.io
java.lang
java.math
java.util
org.sat4j.core
org.sat4j.specs
org.sat4j.tools.encoding

org.sat4j.tools.encoding

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1512.0%83.0%4.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.tools.encoding.EncodingStrategyAdapter
org.sat4j.tools.encoding.Binary
org.sat4j.tools.encoding.Binomial
org.sat4j.tools.encoding.Commander
org.sat4j.tools.encoding.Ladder
org.sat4j.tools.encoding.Policy
org.sat4j.tools.encoding.Product
org.sat4j.tools.encoding.Sequential
org.sat4j.tools
java.io
java.lang
java.util
org.sat4j.core
org.sat4j.specs

org.sat4j.tools.xplain

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2622.0%75.0%3.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.sat4j.tools.xplain.Explainer
org.sat4j.tools.xplain.MinimizationStrategy
org.sat4j.tools.xplain.DeletionStrategy
org.sat4j.tools.xplain.HighLevelXplain
org.sat4j.tools.xplain.InsertionStrategy
org.sat4j.tools.xplain.Pair
org.sat4j.tools.xplain.QuickXplain2001Strategy
org.sat4j.tools.xplain.QuickXplainStrategy
org.sat4j.tools.xplain.Xplain
org.sat4j
org.sat4j.reader
java.io
java.lang
java.util
org.sat4j.core
org.sat4j.specs
org.sat4j.tools

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.