Relational

Package Matrix

Inspect exact package and source-folder relationships in a lossless grid that makes direction, mutual coupling, and boundary traffic explicit.

The Package Matrix is a dependency structure matrix, sometimes called a DSM. Rows and columns represent packages or source folders; each cell shows the number of real usage references from the row item to the column item. JVM modules group rows and columns for orientation, but they do not become dependency cells of their own.

Matrix opens on the same Current Focus and package expansion posture as Topology. The evidence is the same architecture model, but the instrument is different: the graph maps connections spatially, while Matrix gives every visible relationship a stable directional cell.

Screenshot: expanded Package Matrix with module grouping, directional counts, and a mutually coupled package pair visible
Every visible relationship gets a cell. Capture enough hierarchy and off-diagonal traffic to make direction and mutual coupling legible without entering a pinned mode.

Reading the Matrix

The matrix makes directionality explicit where a graph can become visually dense. Dependencies above the diagonal flow one way; dependencies below it flow the other. Significant cells on both sides for the same pair show mutual dependency. That can be a cycle or a tightly coupled relationship worth investigating.

The diagonal stays empty at the package level. Package-local class or file evidence belongs in the Topology Graph's contained internals layer, not in Matrix self-cells.

Cross-layer traffic is easy to spot here. Use Set as Root when the question is simply “what is inside this subtree?” Use Pin subject · Matrix when a package or subsystem owns the question and you need to keep its outside relationships visible.

Boundary Matrix

Boundary Matrix is a lossless pinned-subject read. The subject row shows outgoing references from the pinned package or subsystem. The subject column shows incoming references from its neighbours. Cells between neighbours remain visible as dimmed context, so you can tell whether the surrounding area is also tangled without mistaking that traffic for the subject boundary itself.

Use it to answer: “who crosses this boundary, in which direction, and how much?” The structural breadcrumb moves the subject pin to an ancestor, widening the audit without rebuilding the view.

Screenshot: Boundary Matrix with anchored subject row and column, primary crossing cells, and dimmed neighbour context
One subject, lossless context. Keep both the subject perimeter and neighbour-to-neighbour cells visible so their different visual roles can be compared.

Cycle Matrix

The shared Cycle Group View appears in this lens as Cycle Matrix. The selected group's participants and edges become the subject while enough surrounding structural context remains to inspect the loop's directional cells. It is useful after the graph has identified a group and you need the exact directional relationships in table form.

Cycles Only is the broader cycle-participant filter across the working model. Cycle Matrix is the persistent one-group posture. The structural breadcrumb follows the current anchor: in an ordinary rooted view, a hop updates Current Focus; in a pinned boundary read, it moves the subject pin to that ancestor.

Screenshot: one selected cycle group in Matrix with its directional loop cells emphasized
Exact traffic for one group. Keep the same group in persistent Cycle View and show the cells that complete its loop.
Screenshot: same Current Focus filtered to all cycle-participating Matrix rows, columns, and cells
All cycle participants in scope. Preserve multiple groups when present so this does not read like another one-group Cycle Matrix.

Heatmap and structural evidence

Heatmap can add metric colour to the row and column entities without changing the relationship counts in the cells. Use it when the exact traffic and a second signal need to be read together.

Graph-only Neighbour links and Mute cycles controls never remove Matrix evidence. They can simplify a pinned spatial graph, but Matrix retains the complete perimeter and every dependency cell after the shared structural filters have been applied.

Screenshot: Package Matrix with one named Heatmap metric colouring row and column entities while relationship counts remain readable
Metric context without lost traffic. Include the legend and unchanged cell counts to show that Heatmap colours entities rather than rewriting dependency evidence.

What carries into other lenses

Current Focus, applicable filters and exclusions, package expansion, and structural posture carry between Matrix and Topology. Matrix ordering, cell inspection, and presentation remain local, so returning to the graph restores its own layout rather than forcing a grid decision onto it.

Take the matrix with you

  • Snapshot as PNG captures the matrix as it appears on screen.
  • Data as TSV exports the dependency matrix for sorting, filtering, or further analysis in a spreadsheet.

An Architecture Report is assembled from deterministic report sections rather than from the currently open Matrix.

When the matrix is empty

An absent model, a successful analysis with no architectural units, and a view narrowed to no rows are different outcomes. AtlasArc names the condition and offers the corresponding analysis, source, or reset action. If a selected Heatmap metric is unavailable for the current evidence, the metric is unavailable rather than rendered as a field of zeroes; the structural relationship cells remain the Matrix truth.