Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
au.gov.amsa.geo | 18 | 17 | 1 | 1 | 21 | 6.0% | 95.0% | 1.0% | 1 |
au.gov.amsa.geo.distance | 46 | 45 | 1 | 0 | 26 | 2.0% | 100.0% | 2.0% | 1 |
au.gov.amsa.geo.model | 13 | 13 | 0 | 3 | 12 | 0.0% | 80.0% | 20.0% | 1 |
au.gov.amsa.geo.projection | 4 | 4 | 0 | 1 | 15 | 0.0% | 94.0% | 6.0% | 1 |
au.gov.amsa.util.navigation | 2 | 2 | 0 | 4 | 5 | 0.0% | 56.0% | 44.0% | 1 |
au.gov.amsa.util.rx | 8 | 8 | 0 | 0 | 9 | 0.0% | 100.0% | 0.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 21 | 6.0% | 95.0% | 1.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
au.gov.amsa.geo.VoyageDatasetProducer$Waypoint |
au.gov.amsa.geo.BinaryCellValuesObservable au.gov.amsa.geo.BinaryCellValuesObservable$1 au.gov.amsa.geo.Eez au.gov.amsa.geo.OperatorCellValuesToBytes au.gov.amsa.geo.OperatorCellValuesToBytes$1 au.gov.amsa.geo.ShapefileUtil au.gov.amsa.geo.TimedPosition au.gov.amsa.geo.Util au.gov.amsa.geo.Util$1 au.gov.amsa.geo.Util$2 au.gov.amsa.geo.VoyageDatasetProducer$EezStatus au.gov.amsa.geo.VoyageDatasetProducer$EezWaypoint au.gov.amsa.geo.VoyageDatasetProducer$Persister au.gov.amsa.geo.VoyageDatasetProducer$Port au.gov.amsa.geo.VoyageDatasetProducer$State au.gov.amsa.geo.VoyageDatasetProducer$TimedLeg au.gov.amsa.geo.VoyageDatasetProducer$TimedWaypoint |
au.gov.amsa.geo.distance |
au.gov.amsa.geo.model au.gov.amsa.gt au.gov.amsa.risky.format au.gov.amsa.util au.gov.amsa.util.navigation com.github.davidmoten.grumpy.core com.google.common.base com.vividsolutions.jts.geom com.vividsolutions.jts.geom.prep java.io java.lang java.nio java.time java.time.format java.util java.util.concurrent.atomic java.util.regex org.apache.log4j rx rx.functions rx.observers |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 26 | 2.0% | 100.0% | 2.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
au.gov.amsa.geo.distance.DisplayPanel$CellsUpdater |
au.gov.amsa.geo.distance.CellAndDistance au.gov.amsa.geo.distance.DisplayPanel au.gov.amsa.geo.distance.DisplayPanel$1 au.gov.amsa.geo.distance.DisplayPanel$2 au.gov.amsa.geo.distance.DisplayPanel$2$1 au.gov.amsa.geo.distance.DisplayPanel$3 au.gov.amsa.geo.distance.DisplayPanel$3$1 au.gov.amsa.geo.distance.DisplayPanel$4 au.gov.amsa.geo.distance.DistanceCalculationMetrics au.gov.amsa.geo.distance.DistanceTravelledCalculator$10 au.gov.amsa.geo.distance.DistanceTravelledCalculator$11 au.gov.amsa.geo.distance.DistanceTravelledCalculator$12 au.gov.amsa.geo.distance.DistanceTravelledCalculator$13 au.gov.amsa.geo.distance.DistanceTravelledCalculator$14 au.gov.amsa.geo.distance.DistanceTravelledCalculator$15 au.gov.amsa.geo.distance.DistanceTravelledCalculator$2 au.gov.amsa.geo.distance.DistanceTravelledCalculator$3 au.gov.amsa.geo.distance.DistanceTravelledCalculator$4 au.gov.amsa.geo.distance.DistanceTravelledCalculator$5 au.gov.amsa.geo.distance.DistanceTravelledCalculator$6 au.gov.amsa.geo.distance.DistanceTravelledCalculator$7 au.gov.amsa.geo.distance.DistanceTravelledCalculator$8 au.gov.amsa.geo.distance.DistanceTravelledCalculator$9 au.gov.amsa.geo.distance.DistanceTravelledCalculator$CalculationResult au.gov.amsa.geo.distance.DistanceTravelledMain$Setting au.gov.amsa.geo.distance.DistanceTravelledMovieMaker au.gov.amsa.geo.distance.DistanceTravelledMovieMaker$1 au.gov.amsa.geo.distance.DistanceTravelledMovieMaker$2 au.gov.amsa.geo.distance.DistanceTravelledMovieMaker$3 au.gov.amsa.geo.distance.EffectiveSpeedCheck au.gov.amsa.geo.distance.EffectiveSpeedChecker au.gov.amsa.geo.distance.MapDb au.gov.amsa.geo.distance.OperatorEffectiveSpeedChecker au.gov.amsa.geo.distance.OperatorEffectiveSpeedChecker$1 au.gov.amsa.geo.distance.OperatorSumCellDistances au.gov.amsa.geo.distance.OperatorSumCellDistances$1 au.gov.amsa.geo.distance.OperatorSumCellValues au.gov.amsa.geo.distance.OperatorSumCellValues$1 au.gov.amsa.geo.distance.OperatorToObservableSizedList au.gov.amsa.geo.distance.OperatorToObservableSizedList$1 au.gov.amsa.geo.distance.Renderer au.gov.amsa.geo.distance.Renderer$1 au.gov.amsa.geo.distance.Renderer$2 au.gov.amsa.geo.distance.Renderer$3 au.gov.amsa.geo.distance.Renderer$Statistics |
None | au.gov.amsa.geo au.gov.amsa.geo.model au.gov.amsa.geo.projection au.gov.amsa.risky.format au.gov.amsa.util.navigation com.google.common.base com.google.common.util.concurrent java.awt java.awt.event java.awt.image java.io java.lang java.text java.util java.util.concurrent java.util.concurrent.atomic javax.imageio javax.swing org.apache.log4j org.joda.time org.mapdb rx rx.functions rx.observables rx.observers rx.schedulers |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 12 | 0.0% | 80.0% | 20.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | au.gov.amsa.geo.model.Bounds au.gov.amsa.geo.model.Cell au.gov.amsa.geo.model.CellValue au.gov.amsa.geo.model.Grid au.gov.amsa.geo.model.GridTraversor au.gov.amsa.geo.model.Options au.gov.amsa.geo.model.Options$1 au.gov.amsa.geo.model.Options$Builder au.gov.amsa.geo.model.Position au.gov.amsa.geo.model.SegmentOptions au.gov.amsa.geo.model.SegmentOptions$1 au.gov.amsa.geo.model.SegmentOptions$Builder au.gov.amsa.geo.model.Util |
au.gov.amsa.geo au.gov.amsa.geo.distance au.gov.amsa.geo.projection |
au.gov.amsa.risky.format au.gov.amsa.util.navigation com.google.common.base com.google.common.collect java.io java.lang java.math java.text java.util java.util.concurrent org.apache.log4j org.joda.time |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 15 | 0.0% | 94.0% | 6.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | au.gov.amsa.geo.projection.FeatureUtil au.gov.amsa.geo.projection.Projector au.gov.amsa.geo.projection.ProjectorBounds au.gov.amsa.geo.projection.ProjectorTarget |
au.gov.amsa.geo.distance |
au.gov.amsa.geo.model au.gov.amsa.util.navigation com.vividsolutions.jts.geom java.awt java.awt.geom java.io java.lang java.util org.apache.commons.io org.geotools.geometry.jts org.geotools.referencing org.opengis.geometry org.opengis.referencing org.opengis.referencing.crs org.opengis.referencing.operation |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
4 | 5 | 0.0% | 56.0% | 44.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | au.gov.amsa.util.navigation.Position au.gov.amsa.util.navigation.Position$LongitudePair |
au.gov.amsa.geo au.gov.amsa.geo.distance au.gov.amsa.geo.model au.gov.amsa.geo.projection |
java.awt java.lang java.text java.util org.apache.commons.math3.util |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 9 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | au.gov.amsa.util.rx.CompositeException au.gov.amsa.util.rx.OperatorFlattenIterable au.gov.amsa.util.rx.OperatorFlattenIterable$1 au.gov.amsa.util.rx.OperatorMapEntries au.gov.amsa.util.rx.OperatorMapEntries$1 au.gov.amsa.util.rx.OperatorMapEntries$2 au.gov.amsa.util.rx.OperatorWriteBytes au.gov.amsa.util.rx.OperatorWriteBytes$1 |
None | java.io java.lang java.util java.util.concurrent.atomic org.apache.log4j rx rx.exceptions rx.functions rx.observers |
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. |