Sample
Schnappinger/argoUML/org.argouml.cognitive.UnresolvableException
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 1 | 0–1; higher is more readable | 98.7Δ 43.9 |
| Scalabrino | 0.953 | 0–1; higher is more readable | 98.6Δ 43.8 |
| Dorn | 0.784 | 0–1; higher is more readable | 81.8Δ 27.1 |
| Mi | 0.577 | 0–1; higher is more readable | 54.1Δ 0.7 |
| LLOC | 1 | Logical lines; fewer is more readable | 98.3Δ 43.6 |
| DeepSeek V4 Pro | 17 | 0–20; mean of three runs | 66.8Δ 12.0 |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs | 73.8Δ 19.0 |
| BTTF | 0.865 | 0–1; higher is more readable | 99.3Δ 44.6 |
| Human | 3.91 | 1–4; original rating | 54.8 |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Source linesThe number of non-empty source lines. | 56 | +22.4 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 5.194 | −7.791 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 112.588 | −3.715 |
Intercept 8.87 + feature contributions = 19.764 (log-odds).
Score = sigmoid(19.764) = 1.
| Score | 0.953 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 57 | −0.982 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.005 | +0.896 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 76.526 | +0.43 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 55.848 | +0.371 |
| Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names. | 78 | +0.361 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 14 | −0.253 |
Intercept 0.07 + feature contributions = 1.291 (log-odds).
Score = sigmoid(1.291) = 0.784.
| Score | 0.577 |
|---|
| Score | 1 |
|---|
Run 1
The code is highly readable due to clear structure, minimal nesting, and simple intent. The class has a single, focused responsibility and follows standard Java exception patterns. The constructor is concise, with one action per line, and the reading flow is natural. However, the extensive copyright and license header, while legally necessary, adds significant noise before reaching the actual code, reducing overall readability. The Javadoc comments are helpful but could be slightly more descriptive regarding when the exception is thrown.
Run 2
The code is highly readable. It follows a standard Java class structure: package declaration, imports (none needed), class definition, and constructor. Nesting is minimal—only the class and constructor levels exist. Intent is clear: a custom exception with a descriptive Javadoc comment. The code is concise, with no unnecessary methods or fields. Each action (constructor invocation) is on its own line, contributing to clarity. The reading flow is natural, though the extensive license header (over 40 lines) disrupts the immediate understanding of the code's purpose. The class name 'UnresolvableException' and its documentation make the failure scenario explicit. The constructor properly calls the parent Exception constructor, following Java conventions. Overall, the code is a clean, well-documented, single-purpose exception class.
Run 3
The code is highly readable due to its simple, focused structure: a single class extending Exception with one constructor. There is minimal nesting, clear intent (documented via Javadoc and comments), and concise length. Each action is on its own line, and the reading flow is natural — package, class declaration, constructor, then super call. The only deduction is for the extensive license and copyright header, which, while necessary, slightly obscures the actual code and could be shortened or moved to a separate file.
Run 1
Code Structure: Conventionally organized into package, documented class, and constructor. Nesting: Minimal, with only class and constructor scopes. Clarity of intent: The exception name, superclass, and documentation clearly convey a critic-resolution failure; 'msg' is understandable but less descriptive than 'message'. Code length: The implementation is appropriately concise, although lengthy license notices dominate the file and delay reaching the functional code. Action granularity: The constructor performs exactly one action on one line. Reading flow: The declaration-to-constructor progression is natural, but mixed indentation and tab spacing slightly reduce visual consistency.
Run 2
Code Structure: A straightforward package declaration and single exception class with one constructor provide clear organization. Nesting: Minimal nesting, limited to the class and constructor. Clarity of intent: The class name, inheritance, and documentation clearly identify an exception for critic-resolution failures; 'msg' is understandable but less descriptive than 'message'. Code length: The implementation is concise, although lengthy licensing comments dominate the file and delay reaching the relevant code. Action granularity: The constructor performs one action on its own line. Reading flow: Documentation naturally precedes declarations, and the constructor directly delegates to the superclass. Mixed indentation and unconventional brace placement slightly reduce visual consistency.
Run 3
Code Structure: Logically organized as a single exception class with one constructor. Nesting: Minimal, limited to the class and constructor. Clarity of intent: The class name, inheritance, and documentation clearly convey a critic-resolution failure; 'msg' is understandable but less descriptive than 'message'. Code length: The implementation is concise, although extensive license comments dominate the file. Action granularity: The constructor contains one clear action on its own line. Reading flow: Package, class documentation, declaration, and constructor follow a natural order. Mixed tab/space indentation and the lengthy header slightly reduce visual consistency and scanning efficiency.