Parity with Understand
How close OpenUnderstand's output is to SciTools Understand's on the
same source. Generated by scripts/gen_docs.py from the comparison
output; it needs a licensed Understand install, so
it lives outside this repository.
Both tools analyse the same fixture. Entities are matched on
(kind family, normalised long name); references on (kind, entity,
scope, file, line, column).
Summary
References at R0_exact, which requires the kind, both endpoints and
the file, line and column to agree.
| Fixture |
Entities matched |
Ref precision |
Ref recall |
| java25_probe |
54 of 55 |
0.783 |
1.000 |
| JSON |
4595 of 4928 |
0.827 |
0.989 |
| calculator_app |
67 of 72 |
0.863 |
0.984 |
| testing_legacy_code |
197 of 399 |
0.471 |
0.982 |
| jfreechart |
41870 of 44277 |
0.860 |
0.981 |
| 105_freemind |
22467 of 22975 |
0.833 |
0.974 |
| jvlt-1.3.2 |
7705 of 7945 |
0.828 |
0.972 |
| TheAlgorithms |
4517 of 4626 |
0.832 |
0.970 |
| ganttproject |
25460 of 26076 |
0.833 |
0.965 |
| jhotdraw-develop |
26044 of 27694 |
0.785 |
0.959 |
| xerces2j |
33058 of 35218 |
0.876 |
0.952 |
| jenetics_incubator |
3743 of 4007 |
0.755 |
0.951 |
| SalaryCalculator |
50 of 50 |
0.830 |
0.907 |
105_freemind
|
Understand |
OpenUnderstand |
| Entities |
22975 |
23678 |
- Entities matched: 22467 of 22975
- Entities with no Understand counterpart: 1211
- References: precision 0.833, recall 0.974 (222298 matched, 5914 missing, 44599 extra)
- Open findings: 52
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| variable |
8583 |
9119 |
+536 |
| parameter |
6680 |
6371 |
-309 |
| method |
5901 |
5901 |
+0 |
| class |
984 |
984 |
+0 |
| constructor |
684 |
684 |
+0 |
| interface |
90 |
90 |
+0 |
| package |
53 |
53 |
+0 |
| file |
0 |
476 |
+476 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Callby |
12011 |
11069 |
+942 |
Java Coupleby |
4460 |
3975 |
+485 |
Java Callby Nondynamic |
2881 |
2589 |
+292 |
Java DotRefby |
1671 |
1565 |
+106 |
Java Setby Init |
6980 |
6918 |
+62 |
Java Useby Return |
1188 |
1133 |
+55 |
Java Set Init |
6980 |
6926 |
+54 |
Java Use Return |
1188 |
1136 |
+52 |
Java Setby |
3473 |
3452 |
+21 |
Java Modify Deref Partial |
34 |
16 |
+18 |
Open findings
| Score |
Severity |
Finding |
| 21.2 |
wrong-data |
1859 references written as 'Java Importby', which Understand never emits here |
| 18.1 |
missing-data |
24 reference pairs have unequal forward/inverse row counts |
| 17.3 |
wrong-data |
463 duplicate entity rows across 308 logical entities |
| 17.0 |
wrong-data |
1211 of 23678 OpenUnderstand entities have no Understand counterpart |
| 16.9 |
wrong-data |
392 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 16.8 |
wrong-data |
api.py changes the method entity count by +2333 even though the database matches Understand |
| 16.5 |
wrong-data |
348 references written as 'Java Extend Couple External', which Understand never emits here |
| 15.2 |
wrong-data |
api.py changes the class entity count by +1119 even though the database matches Understand |
| 13.4 |
wrong-data |
CountLineCodeDecl disagrees with Understand on 486 of 5148 entities (91% agreement) |
| 13.0 |
wrong-data |
CountInput disagrees with Understand on 398 of 4398 entities (91% agreement) |
| 12.4 |
missing-data |
5898 references Understand finds are absent, ignoring position (recall 97%) |
| 12.4 |
wrong-data |
CountLineCodeExe disagrees with Understand on 298 of 5148 entities (94% agreement) |
JSON
|
Understand |
OpenUnderstand |
| Entities |
4928 |
4703 |
- Entities matched: 4595 of 4928
- Entities with no Understand counterpart: 108
- References: precision 0.827, recall 0.989 (57892 matched, 664 missing, 12118 extra)
- Open findings: 44
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| variable |
2402 |
2375 |
-27 |
| method |
1243 |
1243 |
+0 |
| parameter |
1057 |
773 |
-284 |
| constructor |
100 |
100 |
+0 |
| class |
99 |
99 |
+0 |
| unknown |
16 |
17 |
+1 |
| interface |
5 |
5 |
+0 |
| package |
4 |
4 |
+0 |
| annotation |
2 |
2 |
+0 |
| file |
0 |
85 |
+85 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java DotRefby |
1019 |
902 |
+117 |
Java Use Return |
205 |
154 |
+51 |
Java Useby Return |
205 |
154 |
+51 |
Java Callby Nondynamic |
1043 |
1004 |
+39 |
Java Callby |
4651 |
4625 |
+26 |
Java Set Init |
2210 |
2189 |
+21 |
Java Setby Init |
2210 |
2189 |
+21 |
Java Typedby |
1380 |
1367 |
+13 |
Java Setby |
593 |
586 |
+7 |
Java Define |
4827 |
4823 |
+4 |
Open findings
| Score |
Severity |
Finding |
| 15.9 |
missing-data |
23 reference pairs have unequal forward/inverse row counts |
| 15.5 |
wrong-data |
239 duplicate entity rows across 133 logical entities |
| 12.8 |
wrong-data |
91 references written as 'Java Importby', which Understand never emits here |
| 12.7 |
wrong-data |
89 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 12.6 |
wrong-data |
api.py changes the method entity count by +327 even though the database matches Understand |
| 11.2 |
wrong-data |
108 of 4703 OpenUnderstand entities have no Understand counterpart |
| 11.2 |
wrong-data |
api.py changes the class entity count by +170 even though the database matches Understand |
| 9.3 |
wrong-data |
CountInput disagrees with Understand on 73 of 1102 entities (93% agreement) |
| 9.3 |
missing-data |
664 references Understand finds are absent, ignoring position (recall 99%) |
| 9.1 |
wrong-data |
CountOutput disagrees with Understand on 64 of 1102 entities (94% agreement) |
| 8.4 |
wrong-data |
CountLineCodeDecl disagrees with Understand on 47 of 1209 entities (96% agreement) |
| 8.3 |
missing-data |
333 of 4928 entities Understand finds are absent from OpenUnderstand |
SalaryCalculator
|
Understand |
OpenUnderstand |
| Entities |
50 |
55 |
- Entities matched: 50 of 50
- Entities with no Understand counterpart: 5
- References: precision 0.830, recall 0.907 (352 matched, 36 missing, 72 extra)
- Open findings: 20
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| method |
22 |
22 |
+0 |
| variable |
14 |
14 |
+0 |
| parameter |
8 |
8 |
+0 |
| class |
5 |
5 |
+0 |
| package |
1 |
1 |
+0 |
| file |
0 |
5 |
+5 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Setby Init |
9 |
5 |
+4 |
Java Set Init |
9 |
5 |
+4 |
Java Setby |
7 |
4 |
+3 |
Java Contain |
5 |
5 |
+0 |
Java Typedby |
2 |
2 |
+0 |
Java Extendby Coupleby |
3 |
3 |
+0 |
Java Coupleby |
3 |
3 |
+0 |
Java Useby |
17 |
17 |
+0 |
Java Use Return |
11 |
11 |
+0 |
Java Call Nondynamic |
16 |
16 |
+0 |
Open findings
| Score |
Severity |
Finding |
| 6.5 |
missing-data |
10 reference pairs have unequal forward/inverse row counts |
| 5.7 |
wrong-data |
10 references have the right line but the wrong column (352 of 362 match once the column is included) |
| 5.1 |
wrong-data |
5 references written as 'Java Declarein', which Understand never emits here |
| 4.8 |
wrong-data |
api.py changes the class entity count by +8 even though the database matches Understand |
| 4.7 |
missing-data |
26 references Understand finds are absent, ignoring position (recall 93%) |
| 4.3 |
wrong-data |
5 of 55 OpenUnderstand entities have no Understand counterpart |
| 3.9 |
wrong-data |
3 references written as 'Java Call', which Understand never emits here |
| 3.1 |
wrong-data |
2 references written as 'Java Overriddenby', which Understand never emits here |
| 3.1 |
wrong-data |
2 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 3.1 |
wrong-data |
2 references written as 'Java Use Annotation', which Understand never emits here |
| 3.1 |
wrong-data |
2 references written as 'Java Overrides', which Understand never emits here |
| 3.0 |
wrong-data |
CountOutput disagrees with Understand on 3 of 22 entities (86% agreement) |
TheAlgorithms
|
Understand |
OpenUnderstand |
| Entities |
4626 |
4837 |
- Entities matched: 4517 of 4626
- Entities with no Understand counterpart: 320
- References: precision 0.832, recall 0.970 (44586 matched, 1388 missing, 9033 extra)
- Open findings: 52
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| variable |
2050 |
2024 |
-26 |
| parameter |
1150 |
1121 |
-29 |
| method |
941 |
941 |
+0 |
| class |
293 |
298 |
+5 |
| constructor |
106 |
106 |
+0 |
| unknown |
56 |
88 |
+32 |
| package |
27 |
28 |
+1 |
| interface |
3 |
3 |
+0 |
| file |
0 |
228 |
+228 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Setby Init |
1656 |
1523 |
+133 |
Java Callby Nondynamic |
799 |
673 |
+126 |
Java Set Init |
1656 |
1543 |
+113 |
Java Set |
1094 |
1018 |
+76 |
Java Setby |
1094 |
1018 |
+76 |
Java Callby |
666 |
612 |
+54 |
Java Use Return |
248 |
224 |
+24 |
Java Useby Return |
248 |
224 |
+24 |
Java Typedby |
572 |
550 |
+22 |
Java Coupleby |
109 |
100 |
+9 |
Open findings
| Score |
Severity |
Finding |
| 16.1 |
wrong-data |
300 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 15.2 |
missing-data |
23 reference pairs have unequal forward/inverse row counts |
| 13.8 |
wrong-data |
320 of 4837 OpenUnderstand entities have no Understand counterpart |
| 12.6 |
wrong-data |
api.py changes the method entity count by +332 even though the database matches Understand |
| 12.2 |
wrong-data |
75 duplicate entity rows across 54 logical entities |
| 11.6 |
wrong-data |
59 references written as 'Java Use Annotation', which Understand never emits here |
| 10.7 |
wrong-data |
43 references written as 'Java Use Constrains Couple', which Understand never emits here |
| 10.4 |
missing-data |
1380 references Understand finds are absent, ignoring position (recall 97%) |
| 10.2 |
wrong-data |
CountClassCoupled disagrees with Understand on 109 of 343 entities (68% agreement) |
| 10.1 |
wrong-data |
CountOutput disagrees with Understand on 105 of 984 entities (89% agreement) |
| 9.5 |
wrong-data |
CountInput disagrees with Understand on 77 of 984 entities (92% agreement) |
| 9.1 |
wrong-data |
RatioCommentToCode disagrees with Understand on 64 of 1301 entities (95% agreement) |
calculator_app
|
Understand |
OpenUnderstand |
| Entities |
72 |
78 |
- Entities matched: 67 of 72
- Entities with no Understand counterpart: 11
- References: precision 0.863, recall 0.984 (498 matched, 8 missing, 79 extra)
- Open findings: 17
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| parameter |
26 |
21 |
-5 |
| method |
17 |
17 |
+0 |
| variable |
15 |
18 |
+3 |
| class |
8 |
8 |
+0 |
| package |
6 |
6 |
+0 |
| file |
0 |
8 |
+8 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Use Return |
4 |
1 |
+3 |
Java Useby Return |
4 |
1 |
+3 |
Java Callby Nondynamic |
8 |
7 |
+1 |
Java Set Init |
15 |
15 |
+0 |
Java Createby |
5 |
5 |
+0 |
Java Overrides |
1 |
1 |
+0 |
Java Set |
6 |
6 |
+0 |
Java Declare |
24 |
24 |
+0 |
Java Use Deref Partial |
5 |
5 |
+0 |
Java Containin |
8 |
8 |
+0 |
Open findings
| Score |
Severity |
Finding |
| 7.2 |
missing-data |
11 reference pairs have unequal forward/inverse row counts |
| 6.5 |
wrong-data |
9 references written as 'Java Importby', which Understand never emits here |
| 5.9 |
wrong-data |
11 of 78 OpenUnderstand entities have no Understand counterpart |
| 5.1 |
wrong-data |
5 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 4.5 |
wrong-data |
api.py changes the class entity count by +7 even though the database matches Understand |
| 3.9 |
wrong-data |
3 duplicate entity rows across 3 logical entities |
| 3.1 |
missing-data |
8 references Understand finds are absent, ignoring position (recall 98%) |
| 3.0 |
wrong-data |
CountStmt disagrees with Understand on 3 of 28 entities (89% agreement) |
| 3.0 |
wrong-data |
CountStmtDecl disagrees with Understand on 3 of 28 entities (89% agreement) |
| 3.0 |
wrong-data |
RatioCommentToCode disagrees with Understand on 3 of 28 entities (89% agreement) |
| 3.0 |
wrong-data |
api.py changes the method entity count by +3 even though the database matches Understand |
| 2.6 |
missing-data |
5 of 72 entities Understand finds are absent from OpenUnderstand |
ganttproject
|
Understand |
OpenUnderstand |
| Entities |
26076 |
26648 |
- Entities matched: 25460 of 26076
- Entities with no Understand counterpart: 1188
- References: precision 0.833, recall 0.965 (262726 matched, 9594 missing, 52554 extra)
- Open findings: 56
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| variable |
9016 |
9288 |
+272 |
| method |
7413 |
7413 |
+0 |
| parameter |
7058 |
6638 |
-420 |
| class |
1486 |
1484 |
-2 |
| constructor |
756 |
756 |
+0 |
| interface |
180 |
180 |
+0 |
| package |
102 |
106 |
+4 |
| unknown |
65 |
61 |
-4 |
| file |
0 |
722 |
+722 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Callby |
15157 |
13324 |
+1833 |
Java Coupleby |
6581 |
5912 |
+669 |
Java DotRefby |
2792 |
2366 |
+426 |
Java Overriddenby |
2145 |
1890 |
+255 |
Java Callby Nondynamic |
3398 |
3195 |
+203 |
Java Typedby GenericArgument |
1400 |
1269 |
+131 |
Java Setby Init |
6400 |
6314 |
+86 |
Java Useby Return |
1458 |
1374 |
+84 |
Java Use Return |
1458 |
1375 |
+83 |
Java Set Init |
6400 |
6322 |
+78 |
Open findings
| Score |
Severity |
Finding |
| 22.8 |
wrong-data |
3241 references written as 'Java Importby', which Understand never emits here |
| 22.7 |
wrong-data |
3090 references written as 'Java Use Annotation', which Understand never emits here |
| 19.3 |
wrong-data |
939 duplicate entity rows across 659 logical entities |
| 18.8 |
wrong-data |
778 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 18.3 |
missing-data |
27 reference pairs have unequal forward/inverse row counts |
| 16.9 |
wrong-data |
1188 of 26648 OpenUnderstand entities have no Understand counterpart |
| 16.9 |
wrong-data |
api.py changes the method entity count by +2362 even though the database matches Understand |
| 16.1 |
wrong-data |
300 references written as 'Java Extend Couple External', which Understand never emits here |
| 13.9 |
wrong-data |
CountLineCodeExe disagrees with Understand on 612 of 4539 entities (87% agreement) |
| 13.9 |
wrong-data |
CountLineCodeDecl disagrees with Understand on 595 of 4539 entities (87% agreement) |
| 13.6 |
wrong-data |
CountInput disagrees with Understand on 512 of 3723 entities (86% agreement) |
| 13.1 |
missing-data |
9524 references Understand finds are absent, ignoring position (recall 96%) |
java25_probe
|
Understand |
OpenUnderstand |
| Entities |
55 |
60 |
- Entities matched: 54 of 55
- Entities with no Understand counterpart: 6
- References: precision 0.783, recall 1.000 (306 matched, 0 missing, 85 extra)
- Open findings: 33
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| variable |
15 |
14 |
-1 |
| method |
15 |
15 |
+0 |
| parameter |
12 |
12 |
+0 |
| class |
5 |
5 |
+0 |
| package |
4 |
5 |
+1 |
| interface |
2 |
2 |
+0 |
| module |
1 |
1 |
+0 |
| constructor |
1 |
1 |
+0 |
| file |
0 |
5 |
+5 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Define Implicit |
6 |
6 |
+0 |
Java ModuleUseby |
1 |
1 |
+0 |
Java ModuleUse |
1 |
1 |
+0 |
Java DotRefby |
4 |
4 |
+0 |
Java Use Deref Partial |
9 |
9 |
+0 |
Java Definein Implicit |
6 |
6 |
+0 |
Java Overriddenby |
1 |
1 |
+0 |
Java Open |
1 |
1 |
+0 |
Java Set Init |
10 |
10 |
+0 |
Java Containin |
4 |
4 |
+0 |
Open findings
| Score |
Severity |
Finding |
| 7.5 |
missing-data |
15 reference pairs have unequal forward/inverse row counts |
| 6.8 |
wrong-data |
10 references written as 'Java Typed GenericArgument', which Understand never emits here |
| 5.4 |
wrong-data |
api.py changes the class entity count by +11 even though the database matches Understand |
| 5.2 |
wrong-data |
api.py changes the method entity count by +10 even though the database matches Understand |
| 5.1 |
wrong-data |
5 duplicate entity rows across 4 logical entities |
| 4.7 |
wrong-data |
6 of 60 OpenUnderstand entities have no Understand counterpart |
| 4.5 |
wrong-data |
4 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 3.9 |
wrong-data |
CountStmt disagrees with Understand on 5 of 20 entities (75% agreement) |
| 3.5 |
wrong-data |
CountLineCodeExe disagrees with Understand on 4 of 20 entities (80% agreement) |
| 3.5 |
wrong-data |
CountSemicolon disagrees with Understand on 4 of 20 entities (80% agreement) |
| 3.5 |
wrong-data |
CountStmtExe disagrees with Understand on 4 of 20 entities (80% agreement) |
| 3.1 |
wrong-data |
2 references written as 'Java Create', which Understand never emits here |
jenetics_incubator
|
Understand |
OpenUnderstand |
| Entities |
4007 |
4094 |
- Entities matched: 3743 of 4007
- Entities with no Understand counterpart: 351
- References: precision 0.755, recall 0.951 (31608 matched, 1642 missing, 10229 extra)
- Open findings: 51
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| parameter |
1242 |
1112 |
-130 |
| method |
1084 |
1104 |
+20 |
| variable |
996 |
1029 |
+33 |
| unknown |
232 |
224 |
-8 |
| class |
190 |
190 |
+0 |
| constructor |
179 |
178 |
-1 |
| interface |
56 |
56 |
+0 |
| package |
28 |
28 |
+0 |
| file |
0 |
173 |
+173 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java DotRefby |
234 |
141 |
+93 |
Java Callby |
598 |
523 |
+75 |
Java Setby Init |
672 |
615 |
+57 |
Java Set Init |
672 |
615 |
+57 |
Java Typedby |
713 |
659 |
+54 |
Java Extendby Coupleby |
43 |
17 |
+26 |
Java Extend Couple |
43 |
17 |
+26 |
Java Callby Nondynamic |
522 |
501 |
+21 |
Java Useby Return |
114 |
94 |
+20 |
Java Use Return |
114 |
94 |
+20 |
Open findings
| Score |
Severity |
Finding |
| 16.8 |
wrong-data |
388 duplicate entity rows across 237 logical entities |
| 16.7 |
wrong-data |
367 references written as 'Java Use Annotation', which Understand never emits here |
| 15.8 |
wrong-data |
272 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 15.4 |
missing-data |
22 reference pairs have unequal forward/inverse row counts |
| 14.6 |
wrong-data |
175 references written as 'Java Importby', which Understand never emits here |
| 14.0 |
wrong-data |
351 of 4094 OpenUnderstand entities have no Understand counterpart |
| 12.6 |
wrong-data |
api.py changes the class entity count by +329 even though the database matches Understand |
| 12.3 |
wrong-data |
77 references written as 'Java Extend Couple External', which Understand never emits here |
| 11.0 |
wrong-data |
CountInput disagrees with Understand on 160 of 902 entities (82% agreement) |
| 10.9 |
wrong-data |
SumCyclomatic disagrees with Understand on 151 of 1400 entities (89% agreement) |
| 10.9 |
wrong-data |
CountLineCodeDecl disagrees with Understand on 150 of 1174 entities (87% agreement) |
| 10.5 |
missing-data |
1526 references Understand finds are absent, ignoring position (recall 95%) |
jfreechart
|
Understand |
OpenUnderstand |
| Entities |
44277 |
43172 |
- Entities matched: 41870 of 44277
- Entities with no Understand counterpart: 1302
- References: precision 0.860, recall 0.981 (536274 matched, 10692 missing, 87077 extra)
- Open findings: 59
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| variable |
19674 |
19058 |
-616 |
| parameter |
11972 |
10426 |
-1546 |
| method |
10496 |
10496 |
+0 |
| class |
929 |
929 |
+0 |
| constructor |
840 |
840 |
+0 |
| unknown |
207 |
240 |
+33 |
| interface |
114 |
114 |
+0 |
| package |
44 |
46 |
+2 |
| module |
1 |
1 |
+0 |
| file |
0 |
1022 |
+1022 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Callby |
34733 |
32847 |
+1886 |
Java Useby Return |
2714 |
1263 |
+1451 |
Java Use Return |
2714 |
1266 |
+1448 |
Java Callby Nondynamic |
5321 |
4820 |
+501 |
Java DotRefby |
7142 |
7010 |
+132 |
Java Setby Init |
16879 |
16803 |
+76 |
Java Set Init |
16879 |
16804 |
+75 |
Java Typedby GenericArgument |
860 |
793 |
+67 |
Java Setby Deref Partial |
849 |
786 |
+63 |
Java Set Deref Partial |
849 |
786 |
+63 |
Open findings
| Score |
Severity |
Finding |
| 23.9 |
wrong-data |
4787 references written as 'Java Use Annotation', which Understand never emits here |
| 23.6 |
wrong-data |
4227 references written as 'Java Importby', which Understand never emits here |
| 20.0 |
wrong-data |
1184 duplicate entity rows across 837 logical entities |
| 19.2 |
wrong-data |
895 references written as 'Java Throw', which Understand never emits here |
| 19.1 |
missing-data |
27 reference pairs have unequal forward/inverse row counts |
| 18.1 |
wrong-data |
602 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 17.1 |
wrong-data |
1302 of 43172 OpenUnderstand entities have no Understand counterpart |
| 15.2 |
wrong-data |
api.py changes the method entity count by +1069 even though the database matches Understand |
| 15.0 |
wrong-data |
201 references written as 'Java Use Constrains Couple', which Understand never emits here |
| 13.6 |
wrong-data |
api.py changes the class entity count by +512 even though the database matches Understand |
| 13.3 |
missing-data |
10676 references Understand finds are absent, ignoring position (recall 98%) |
| 12.4 |
wrong-data |
CountLineCodeDecl disagrees with Understand on 306 of 2513 entities (88% agreement) |
jhotdraw-develop
|
Understand |
OpenUnderstand |
| Entities |
27694 |
27540 |
- Entities matched: 26044 of 27694
- Entities with no Understand counterpart: 1496
- References: precision 0.785, recall 0.959 (289886 matched, 12318 missing, 79375 extra)
- Open findings: 54
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| variable |
10514 |
10857 |
+343 |
| parameter |
8317 |
7153 |
-1164 |
| method |
6843 |
6843 |
+0 |
| class |
1027 |
1027 |
+0 |
| constructor |
791 |
791 |
+0 |
| package |
73 |
74 |
+1 |
| unknown |
72 |
67 |
-5 |
| interface |
57 |
57 |
+0 |
| file |
0 |
671 |
+671 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Callby |
13428 |
11811 |
+1617 |
Java Coupleby |
4330 |
3911 |
+419 |
Java DotRefby |
2813 |
2452 |
+361 |
Java Callby Nondynamic |
3583 |
3241 |
+342 |
Java Modifyby Deref Partial |
248 |
16 |
+232 |
Java Modify Deref Partial |
248 |
16 |
+232 |
Java Setby Init |
7901 |
7753 |
+148 |
Java Set Init |
7901 |
7765 |
+136 |
Java Useby |
28771 |
28683 |
+88 |
Java Typedby GenericArgument |
869 |
812 |
+57 |
Open findings
| Score |
Severity |
Finding |
| 23.1 |
wrong-data |
3608 references written as 'Java Use Annotation', which Understand never emits here |
| 21.9 |
wrong-data |
2322 references written as 'Java Importby', which Understand never emits here |
| 19.5 |
wrong-data |
1002 duplicate entity rows across 613 logical entities |
| 18.9 |
missing-data |
26 reference pairs have unequal forward/inverse row counts |
| 18.0 |
wrong-data |
584 references written as 'Java Throw', which Understand never emits here |
| 17.5 |
wrong-data |
1496 of 27540 OpenUnderstand entities have no Understand counterpart |
| 17.2 |
wrong-data |
448 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 17.0 |
wrong-data |
416 references written as 'Java Importby Demand', which Understand never emits here |
| 16.6 |
wrong-data |
api.py changes the method entity count by +2086 even though the database matches Understand |
| 16.2 |
wrong-data |
309 references written as 'Java Extend Couple External', which Understand never emits here |
| 15.3 |
wrong-data |
api.py changes the class entity count by +1138 even though the database matches Understand |
| 13.9 |
wrong-data |
CountLineCodeDecl disagrees with Understand on 592 of 4906 entities (88% agreement) |
jvlt-1.3.2
|
Understand |
OpenUnderstand |
| Entities |
7945 |
8790 |
- Entities matched: 7705 of 7945
- Entities with no Understand counterpart: 1085
- References: precision 0.828, recall 0.972 (87368 matched, 2506 missing, 18153 extra)
- Open findings: 45
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| variable |
3666 |
4425 |
+759 |
| parameter |
1779 |
1644 |
-135 |
| method |
1706 |
1706 |
+0 |
| class |
405 |
405 |
+0 |
| constructor |
344 |
344 |
+0 |
| package |
25 |
25 |
+0 |
| interface |
15 |
15 |
+0 |
| unknown |
5 |
5 |
+0 |
| file |
0 |
221 |
+221 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Callby |
4068 |
3770 |
+298 |
Java DotRefby |
1339 |
1103 |
+236 |
Java Coupleby |
1753 |
1630 |
+123 |
Java Use Deref Partial |
6912 |
6834 |
+78 |
Java Useby Deref Partial |
6912 |
6834 |
+78 |
Java Useby Return |
371 |
341 |
+30 |
Java Use Return |
371 |
341 |
+30 |
Java Callby Nondynamic |
1311 |
1287 |
+24 |
Java Setby |
1410 |
1390 |
+20 |
Java Typedby GenericArgument |
386 |
372 |
+14 |
Open findings
| Score |
Severity |
Finding |
| 19.3 |
wrong-data |
937 references written as 'Java Importby', which Understand never emits here |
| 16.7 |
wrong-data |
1085 of 8790 OpenUnderstand entities have no Understand counterpart |
| 16.6 |
missing-data |
23 reference pairs have unequal forward/inverse row counts |
| 15.6 |
wrong-data |
252 references written as 'Java Use Annotation', which Understand never emits here |
| 14.9 |
wrong-data |
api.py changes the method entity count by +947 even though the database matches Understand |
| 14.5 |
wrong-data |
171 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 14.5 |
wrong-data |
169 duplicate entity rows across 123 logical entities |
| 13.2 |
wrong-data |
api.py changes the class entity count by +425 even though the database matches Understand |
| 12.9 |
wrong-data |
95 references written as 'Java Extend Couple External', which Understand never emits here |
| 12.1 |
wrong-data |
CountInput disagrees with Understand on 259 of 1898 entities (86% agreement) |
| 11.2 |
missing-data |
2506 references Understand finds are absent, ignoring position (recall 97%) |
| 11.0 |
wrong-data |
CountLineCodeDecl disagrees with Understand on 158 of 2327 entities (93% agreement) |
testing_legacy_code
|
Understand |
OpenUnderstand |
| Entities |
399 |
233 |
- Entities matched: 197 of 399
- Entities with no Understand counterpart: 36
- References: precision 0.471, recall 0.982 (3434 matched, 64 missing, 3852 extra)
- Open findings: 35
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| method |
170 |
84 |
-86 |
| variable |
147 |
63 |
-84 |
| class |
36 |
20 |
-16 |
| parameter |
35 |
19 |
-16 |
| package |
6 |
6 |
+0 |
| constructor |
5 |
5 |
+0 |
| file |
0 |
36 |
+36 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Useby |
126 |
94 |
+32 |
Java End |
211 |
211 |
+0 |
Java Useby Castby |
15 |
15 |
+0 |
Java Use Deref Partial |
158 |
158 |
+0 |
Java Endby |
211 |
211 |
+0 |
Java Typed GenericArgument |
24 |
24 |
+0 |
Java Setby Init |
146 |
146 |
+0 |
Java Coupleby |
38 |
38 |
+0 |
Java Useby GenericArgument |
4 |
4 |
+0 |
Java Useby Deref Partial |
158 |
158 |
+0 |
Open findings
| Score |
Severity |
Finding |
| 14.4 |
wrong-data |
165 references written as 'Java Use Annotation', which Understand never emits here |
| 12.9 |
missing-data |
15 reference pairs have unequal forward/inverse row counts |
| 10.3 |
wrong-data |
38 references written as 'Java Importby', which Understand never emits here |
| 8.8 |
wrong-data |
22 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 8.6 |
wrong-data |
36 of 233 OpenUnderstand entities have no Understand counterpart |
| 8.6 |
wrong-data |
CountInput disagrees with Understand on 51 of 86 entities (41% agreement) |
| 8.5 |
wrong-data |
CountLine disagrees with Understand on 50 of 112 entities (55% agreement) |
| 8.1 |
wrong-data |
CountLineCode disagrees with Understand on 41 of 112 entities (63% agreement) |
| 7.6 |
missing-data |
202 of 399 entities Understand finds are absent from OpenUnderstand |
| 6.0 |
missing-data |
64 references Understand finds are absent, ignoring position (recall 98%) |
| 5.6 |
wrong-data |
RatioCommentToCode disagrees with Understand on 12 of 112 entities (89% agreement) |
| 4.8 |
wrong-data |
AvgCountLineCode disagrees with Understand on 8 of 26 entities (69% agreement) |
xerces2j
|
Understand |
OpenUnderstand |
| Entities |
35218 |
34437 |
- Entities matched: 33058 of 35218
- Entities with no Understand counterpart: 1379
- References: precision 0.876, recall 0.952 (411446 matched, 20602 missing, 58119 extra)
- Open findings: 50
Entities by kind family
| Family |
Understand |
OpenUnderstand |
Δ |
| variable |
13596 |
13260 |
-336 |
| parameter |
11203 |
10044 |
-1159 |
| method |
8554 |
8554 |
+0 |
| constructor |
862 |
862 |
+0 |
| class |
801 |
801 |
+0 |
| interface |
157 |
157 |
+0 |
| package |
45 |
48 |
+3 |
| file |
0 |
711 |
+711 |
Largest reference gaps
| Kind |
Understand |
OpenUnderstand |
Missing |
Java Callby |
14304 |
11604 |
+2700 |
Java Useby |
57121 |
55922 |
+1199 |
Java Callby Nondynamic |
6530 |
5798 |
+732 |
Java Setby Init |
11420 |
10868 |
+552 |
Java Set Init |
11420 |
10961 |
+459 |
Java Useby Return |
2113 |
1779 |
+334 |
Java Use Return |
2113 |
1795 |
+318 |
Java Setby |
9914 |
9625 |
+289 |
Java Modifyby Deref Partial |
315 |
76 |
+239 |
Java Modify Deref Partial |
315 |
76 |
+239 |
Open findings
| Score |
Severity |
Finding |
| 22.0 |
wrong-data |
2460 references written as 'Java Importby', which Understand never emits here |
| 19.0 |
wrong-data |
846 duplicate entity rows across 592 logical entities |
| 18.4 |
missing-data |
20 reference pairs have unequal forward/inverse row counts |
| 17.3 |
wrong-data |
1379 of 34437 OpenUnderstand entities have no Understand counterpart |
| 16.8 |
wrong-data |
377 references written as 'Java Extend Couple Implicit External', which Understand never emits here |
| 15.6 |
wrong-data |
CountLine disagrees with Understand on 1328 of 5225 entities (75% agreement) |
| 15.5 |
wrong-data |
CountLineComment disagrees with Understand on 1257 of 5225 entities (76% agreement) |
| 15.4 |
wrong-data |
CountLineCode disagrees with Understand on 1228 of 5225 entities (76% agreement) |
| 15.4 |
wrong-data |
RatioCommentToCode disagrees with Understand on 1186 of 5225 entities (77% agreement) |
| 15.3 |
wrong-data |
api.py changes the method entity count by +1134 even though the database matches Understand |
| 14.4 |
wrong-data |
CountLineCodeDecl disagrees with Understand on 746 of 5225 entities (86% agreement) |
| 14.3 |
wrong-data |
api.py changes the class entity count by +712 even though the database matches Understand |