You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+36-6Lines changed: 36 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,11 @@ The process involves three steps:
37
37
-[Clustering coefficient vs. Page Rank](#clustering-coefficient-vs-page-rank)
38
38
-[Java Types that are surprisingly central or popular](#java-types-that-are-surprisingly-central-or-popular)
39
39
-[Largest Java Type Clusters](#largest-java-type-clusters)
40
-
-[Java Type Anomalies](#java-type-anomalies)
40
+
-[Java Type Top 1 Authority](#java-type-top-1-authority)
41
+
-[Java Type Top 1 Bottleneck](#java-type-top-1-bottleneck)
42
+
-[Java Type Top 1 Bridge](#java-type-top-1-bridge)
43
+
-[Java Type Top 1 Hub](#java-type-top-1-hub)
44
+
-[Java Type Top 1 Outlier](#java-type-top-1-outlier)
41
45
42
46
<!-- /TOC -->
43
47
@@ -154,16 +158,42 @@ Below are examples drawn from more than a hundred reports produced by the analys
154
158
155
159
The scatter plot below compares the importance of Java types to the density of their connections. The Y axis shows the [PageRank](https://en.wikipedia.org/wiki/PageRank) score (higher values indicate more important and frequently used types). The X axis shows the [clustering coefficient](https://en.wikipedia.org/wiki/Clustering_coefficient) (higher values indicate more densely connected neighborhoods). Important bridge or hub types appear toward the top-left; highly influential nodes in dense communities appear toward the top-right.
156
160
157
-
<imgsrc="./analysis-results/AxonFramework/latest/anomaly-detection/Java_Type_ClusteringCoefficient_versus_PageRank.svg"width="600"alt="Clustering Coefficient vs. PageRank">
161
+
<imgsrc="./analysis-results/AxonFramework/latest/anomaly-detection/Java_Type/ClusteringCoefficient_versus_PageRank.svg"width="600"alt="Clustering Coefficient vs. PageRank">
158
162
159
163
### Java Types that are surprisingly central or popular
160
164
161
-
<imgsrc="./analysis-results/AxonFramework/latest/anomaly-detection/Java_Type_ClusterNoise_highly_central_and_popular.svg"width="600"alt="Surprisingly central or popular Java types">
165
+
<imgsrc="./analysis-results/AxonFramework/latest/anomaly-detection/Java_Type/ClusterNoise_highly_central_and_popular.svg"width="600"alt="Surprisingly central or popular Java Types">
162
166
163
167
### Largest Java Type Clusters
164
168
165
-
<imgsrc="./analysis-results/AxonFramework/latest/anomaly-detection/Java_Type_Clusters_largest_size.svg"width="600"alt="Largest Java type clusters">
169
+
<imgsrc="./analysis-results/AxonFramework/latest/anomaly-detection/Java_Type/Clusters_largest_size.svg"width="600"alt="Largest Java Type Clusters">
166
170
167
-
### Java Type Anomalies
171
+
### Java Type Top 1 Authority
168
172
169
-
<imgsrc="./analysis-results/AxonFramework/latest/anomaly-detection/Java_Type_Anomalies.svg"width="600"alt="Java type anomalies">
173
+
An "Authority" is a code unit many important parts depend on: it has high global importance (PageRank) but low local support (ArticleRank). A large PageRank − ArticleRank gap flags widely used utilities or entry points that are central but not well supported locally.
174
+
175
+
<imgsrc="./analysis-results/AxonFramework/AxonFramework-4.12.1/anomaly-detection/Java_Type/GraphVisualizations/TopAuthority1.svg"width="600"alt="Top 1 Java Type Authority Graph Visualization">
176
+
177
+
### Java Type Top 1 Bottleneck
178
+
179
+
A "Bottleneck" is a code unit with exceptionally high Betweenness centrality — it lies on many shortest paths between other nodes, so it mediates a large fraction of dependency flows and is a potential single point of failure or architectural hotspot. Potentially an unintended dependency concentration: if removed, communication between modules breaks.
180
+
181
+
<imgsrc="./analysis-results/AxonFramework/AxonFramework-4.12.1/anomaly-detection/Java_Type/GraphVisualizations/TopBottleneck1.svg"width="600"alt="Top 1 Java Type Bottleneck Graph Visualization">
182
+
183
+
### Java Type Top 1 Bridge
184
+
185
+
A "Bridge" is a code unit that connects different parts of the codebase. It is detected as an anomaly with a high contribution of node embedding features, which encode the structural position in the graph. It shows code that might integrate various layers or boundaries (e.g., API facades) or violates architecture (tangled dependencies).
186
+
187
+
<imgsrc="./analysis-results/AxonFramework/AxonFramework-4.12.1/anomaly-detection/Java_Type/GraphVisualizations/TopBridge1.svg"width="600"alt="Top 1 Java Type Bridge Graph Visualization">
188
+
189
+
### Java Type Top 1 Hub
190
+
191
+
A "Hub" is a code unit with a high out-degree (many dependencies) but low clustering coefficient (its neighbors are not well connected). Hubs are central dependencies that many other parts rely on, making them potential fragile hotspots in the architecture. The low clustering coefficient indicates that these hubs may not be well integrated into the surrounding code, increasing the risk of failure if the hub encounters issues.
192
+
193
+
<imgsrc="./analysis-results/AxonFramework/AxonFramework-4.12.1/anomaly-detection/Java_Type/GraphVisualizations/TopHub1.svg"width="600"alt="Top 1 Java Type Hub Graph Visualization">
194
+
195
+
### Java Type Top 1 Outlier
196
+
197
+
A "Outlier" is a code unit that significantly deviates from typical patterns in the codebase. It has a low clustering probability and a high distance to the nearest cluster centroid in the node embedding space. This indicates that the outlier has a unique structural position in the dependency graph, potentially representing specialized functionality or an architectural anomaly.
198
+
199
+
<imgsrc="./analysis-results/AxonFramework/AxonFramework-4.12.1/anomaly-detection/Java_Type/GraphVisualizations/TopOutlier1.svg"width="600"alt="Top 1 Java Type Outlier Graph Visualization">
0 commit comments