Refactoring Risk Briefing
This chapter ranks package-level risk signals before the diagrams: coupling pressure, distance from the main sequence, visibility, cycle participation.
Top Risk Drivers
| Primary driver | Distance | Fan-in | Fan-out |
|---|---|---|---|
| Packagecore-module.main:org.simplejavamail.internal.util | |||
| Cycle participation | 0.77 | 27 | 4 |
| Packagecore-module.main:org.simplejavamail.api.email.config | |||
| Cycle participation | 0.85 | 11 | 2 |
| Packagecore-module.main:org.simplejavamail.api.email | |||
| Cycle participation | 0.37 | 27 | 7 |
| Packagecore-module.main:org.simplejavamail.internal.config | |||
| Visibility | 0.67 | 4 | 2 |
| Packagecore-module.main:org.simplejavamail.config | |||
| Visibility | 0.56 | 5 | 4 |
| Packagecore-module.main:org.simplejavamail.api.internal.clisupport.model | |||
| Visibility | 0.51 | 7 | 1 |
| Packagesimple-java-mail.main:org.simplejavamail.email | |||
| Visibility | 0.50 | 2 | 2 |
| Packagecore-module.main:org.simplejavamail.api.mailer.config | |||
| Cycle participation | 0.35 | 16 | 4 |
Subsystem-Level Architecture
Subsystem figures summarize boundary pressure, internal cohesion, and recursive architecture signals.
Where does boundary pressure concentrate across the visible architecture?
- How to read this graph: each bubble is a visible architecture-boundary rollup. Right means more outgoing boundary dependencies; up means more incoming boundary dependencies; size is total class count.
- Colour follows instability, so red means outgoing-heavy rather than automatically wrong. Use the figure to find boundary surfaces worth inspecting in Topology or Matrix.
- Dashed rings mark expanded aggregate boundaries whose visible descendants are also present. Terminal packages or source folders remain valid boundaries and use their own metrics.
Which subsystems expose a large public surface?
- How to read this graph: each bubble is a visible architecture-boundary rollup. Right means more visible API surface; up and colour both follow abstractness; size is total class count.
- This view highlights boundary shape, not direct defect risk. A top/right bubble may be a deliberate public contract area.
- Dashed rings mark expanded aggregate boundaries whose visible descendants are also present. Terminal packages or source folders remain valid boundaries and use their own metrics.
Which subsystem areas contain internal cycle pressure?
- How to read this graph: each bubble is a visible architecture-boundary rollup. Right means more fully contained package-cycle groups; up means the largest contained package cycle is larger; size is package count.
- Only package cycles fully inside the boundary count here. Terminal-package class/file tangles remain separate Package Internals evidence in Topology. Use the cycle tables, Topology, or Matrix for concrete dependency edges and cross-boundary cycle context.
- Dashed rings mark expanded aggregate boundaries whose visible descendants are also present. Terminal packages or source folders remain valid boundaries and use their own metrics.
Package Hotspots
Hotspot figures rank packages by available metric-space risk signals such as coupling and complexity.
Which leaf packages stand out by coupling pressure?
- Labels are shown for the largest report bubbles; inspect the package metrics table for the full ranked list.
Which leaf packages are visible to many callers and far from the main sequence?
- Labels are shown for the largest report bubbles; inspect the package metrics table for the full ranked list.
Which leaf packages sit far from the main sequence?
- Labels are shown for the largest report bubbles; inspect the package metrics table for the full ranked list.
Package Metrics
This table ranks packages by structural signals. Use it to inspect packages that combine high fan-in, high fan-out, cycle membership or size.
| Fan-in | Fan-out | Instability | Abstractness | Distance | Cycle | LOC |
|---|---|---|---|---|---|---|
| Packageauthenticated-socks-module:org.simplejavamail.internal.authenticatedsockssupport.common | ||||||
| 3 | 0 | 0.00 | 0.00 | 1.00 | — | 21 |
| Packageauthenticated-socks-module:org.simplejavamail.internal.authenticatedsockssupport.socks5server.io | ||||||
| 1 | 0 | 0.00 | 0.00 | 1.00 | — | 163 |
| Packagebatch-module:org.simplejavamail.internal.batchsupport.concurrent | ||||||
| 1 | 0 | 0.00 | 0.00 | 1.00 | — | 56 |
| Packagecli-module:org.simplejavamail.internal.clisupport.serialization | ||||||
| 2 | 0 | 0.00 | 0.00 | 1.00 | — | 84 |
| Packagecore-module.main:org.simplejavamail.api.email.config | ||||||
| 11 | 2 | 0.15 | 0.00 | 0.85 | Architectural | 699 |
| Packagecore-module.main:org.simplejavamail.internal.util | ||||||
| 27 | 4 | 0.13 | 0.10 | 0.77 | Architectural | 905 |
| Packagecore-module.main:org.simplejavamail.internal.config | ||||||
| 4 | 2 | 0.33 | 0.00 | 0.67 | Architectural | 57 |
| Packagecore-module.main:org.simplejavamail.internal.util.concurrent | ||||||
| 2 | 1 | 0.33 | 0.00 | 0.67 | — | 53 |
| Packagesimple-java-mail.main:org.simplejavamail.internal.moduleloader | ||||||
| 6 | 3 | 0.33 | 0.00 | 0.67 | — | 133 |
| Packagecore-module.main:org.simplejavamail.api.outlook | ||||||
| 3 | 2 | 0.40 | 0.00 | 0.60 | — | 243 |
| Packagecore-module.main:org.simplejavamail.config | ||||||
| 5 | 4 | 0.44 | 0.00 | 0.56 | Architectural | 599 |
| Packagecore-module.main:org.simplejavamail.api.internal.general | ||||||
| 6 | 1 | 0.14 | 0.33 | 0.52 | — | 117 |
| Packagecore-module.main:org.simplejavamail.api.internal.clisupport.model | ||||||
| 7 | 1 | 0.13 | 0.36 | 0.51 | Architectural | 216 |
| Packageauthenticated-socks-module:org.simplejavamail.internal.authenticatedsockssupport.socks5server.msg | ||||||
| 1 | 1 | 0.50 | 0.00 | 0.50 | — | 197 |
| Packagesimple-java-mail.main:org.simplejavamail.email | ||||||
| 2 | 2 | 0.50 | 0.00 | 0.50 | Architectural | 129 |
| Packagesmime-module:org.simplejavamail.internal.smimesupport.model | ||||||
| 3 | 3 | 0.50 | 0.00 | 0.50 | Architectural | 211 |
| Packagecore-module.main:org.simplejavamail.internal.modules | ||||||
| 12 | 10 | 0.45 | 1.00 | 0.45 | — | 198 |
| Packagecore-module.main:org.simplejavamail.api.email | ||||||
| 27 | 7 | 0.21 | 0.43 | 0.37 | Architectural | 3042 |
| Packagecore-module.main:org.simplejavamail.api.mailer.config | ||||||
| 16 | 4 | 0.20 | 0.45 | 0.35 | Architectural | 1245 |
| Packageauthenticated-socks-module:org.simplejavamail.internal.authenticatedsockssupport.socks5client | ||||||
| 1 | 2 | 0.67 | 0.00 | 0.33 | — | 857 |
| Packagecore-module.main:org.simplejavamail.api.internal.smimesupport.builder | ||||||
| 4 | 2 | 0.33 | 1.00 | 0.33 | — | 13 |
| Packageoutlook-module:org.simplejavamail.internal.outlooksupport.internal.model | ||||||
| 1 | 1 | 0.50 | 0.20 | 0.30 | — | 288 |
| Packagecore-test-module:demo | ||||||
| 1 | 3 | 0.75 | 0.00 | 0.25 | Architectural | 53 |
| Packagesimple-java-mail.main:org.simplejavamail.converter.internal | ||||||
| 1 | 3 | 0.75 | 0.00 | 0.25 | Architectural | 23 |
| Packagecore-module.main:org.simplejavamail.api.internal.smimesupport.model | ||||||
| 8 | 1 | 0.11 | 0.67 | 0.22 | Architectural | 77 |
| Packagecli-module:org.simplejavamail.internal.clisupport.valueinterpreters | ||||||
| 1 | 4 | 0.80 | 0.00 | 0.20 | — | 272 |
| Packagesimple-java-mail.main:org.simplejavamail.mailer.internal.util | ||||||
| 2 | 8 | 0.80 | 0.00 | 0.20 | Architectural | 198 |
| Packagesmime-module:org.simplejavamail.internal.smimesupport.builder | ||||||
| 1 | 4 | 0.80 | 0.00 | 0.20 | Architectural | 30 |
| Packagesimple-java-mail.main:org.simplejavamail.converter | ||||||
| 4 | 17 | 0.81 | 0.00 | 0.19 | Architectural | 824 |
| Packagecore-module.main:org.simplejavamail.api.internal.outlooksupport.model | ||||||
| 5 | 2 | 0.29 | 0.89 | 0.17 | — | 142 |
| Packageauthenticated-socks-module:org.simplejavamail.internal.authenticatedsockssupport.socks5server | ||||||
| 1 | 5 | 0.83 | 0.00 | 0.17 | — | 290 |
| Packagecli-module:org.simplejavamail.internal.clisupport | ||||||
| 2 | 11 | 0.85 | 0.00 | 0.15 | Nested | 831 |
| Packagesimple-java-mail.main:org.simplejavamail.converter.internal.mimemessage | ||||||
| 3 | 9 | 0.75 | 0.11 | 0.14 | Architectural | 2005 |
| Packagecore-module.main:org.simplejavamail.api.mailer | ||||||
| 8 | 6 | 0.43 | 0.70 | 0.13 | Architectural | 1556 |
| Packagesmime-module:org.simplejavamail.internal.smimesupport | ||||||
| 1 | 12 | 0.92 | 0.00 | 0.08 | Architectural | 681 |
| Packagesimple-java-mail.main:org.simplejavamail.mailer | ||||||
| 1 | 9 | 0.90 | 0.17 | 0.07 | Architectural | 456 |
| Packagesimple-java-mail.main:org.simplejavamail.email.internal | ||||||
| 5 | 15 | 0.75 | 0.20 | 0.05 | Architectural | 2322 |
| Packagesimple-java-mail.main:org.simplejavamail.mailer.internal | ||||||
| 6 | 19 | 0.76 | 0.29 | 0.05 | Architectural | 3154 |
| Packagecore-test-module:testutil | ||||||
| 1 | 4 | 0.80 | 0.17 | 0.03 | Architectural | 122 |
| Packageauthenticated-socks-module:org.simplejavamail.internal.authenticatedsockssupport | ||||||
| 0 | 7 | 1.00 | 0.00 | 0.00 | — | 66 |
| Packagebatch-module:org.simplejavamail.internal.batchsupport | ||||||
| 0 | 5 | 1.00 | 0.00 | 0.00 | — | 267 |
| Packagecli-module:org.simplejavamail.cli | ||||||
| 0 | 1 | 1.00 | 0.00 | 0.00 | — | 26 |
| Packagecli-module:org.simplejavamail.internal.clisupport.therapijavadoc | ||||||
| 1 | 4 | 0.80 | 0.20 | 0.00 | Nested | 430 |
| Packagecore-module.main:org.simplejavamail | ||||||
| 14 | 0 | 0.00 | 1.00 | 0.00 | — | 13 |
| Packagecore-module.main:org.simplejavamail.api.internal.authenticatedsockssupport.common | ||||||
| 2 | 0 | 0.00 | 1.00 | 0.00 | — | 24 |
| Packagecore-module.main:org.simplejavamail.api.internal.authenticatedsockssupport.socks5server | ||||||
| 4 | 0 | 0.00 | 1.00 | 0.00 | — | 23 |
| Packagecore-module.main:org.simplejavamail.api.internal.batchsupport | ||||||
| 3 | 0 | 0.00 | 1.00 | 0.00 | — | 14 |
| Packagedkim-module:org.simplejavamail.internal.dkimsupport | ||||||
| 0 | 5 | 1.00 | 0.00 | 0.00 | — | 107 |
| Packageoutlook-module:org.simplejavamail.internal.outlooksupport.converter | ||||||
| 0 | 8 | 1.00 | 0.00 | 0.00 | — | 229 |
| Packagesimple-java-mail.main:org.simplejavamail.recipient | ||||||
| 0 | 3 | 1.00 | 0.00 | 0.00 | — | 435 |
| Packagespring-module:org.simplejavamail.springsupport | ||||||
| 0 | 3 | 1.00 | 0.00 | 0.00 | — | 367 |
| Packagespring-module:org.simplejavamail.springbootsupport | ||||||
| 0 | 0 | — | 0.00 | — | — | 402 |