When we decompose SCC in smaller cycles (we named them minimal cycles), the reengineering effort is easier to understand. The goal of reengineers is to break cycles by removing dependencies.
First, we want to understand how cyclic dependencies are tangled together. CycleTable highlight shared dependencies between minimal cycles.
Take the example of the directed graph bellow. All nodes are in a SCC (they are in cycle).
This SCC can be decomposed in 3 smaller cycles named minimal cycles as in figure bellow. Note that the edge between A and B (in yellow) is shared by two minimal cycles.
To remove cycles, we should remove at least 2 edges: one between C and D, and the one between A and B (this one is shared by cycles A-B-E and A-B-C).
CycleTable shows these minimal cycles between your packages and highlights shared dependencies.
Each cell is a dependency from a source package to a target package. For example the first cell in orange is the dependency from package A (written on header of the line) and package B (written inside the cell). Each line represents the source package of all dependencies on this line. For example A is in two cycles, D in one cycle. A fill colored cell represents the same dependency, but in different cycles. For example, the dependency from A to B (in orange) is in two cycles (A-B-E) and (A-B-C).