Sample
Dorn/java/151
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 24.5Δ 3.1 |
| Scalabrino | 0.529 | 0–1; higher is more readable | 47.3Δ 25.8 |
| Dorn | 0.833 | 0–1; higher is more readable | 82.2Δ 60.7 |
| Mi | 0.705 | 0–1; higher is more readable | 85.0Δ 63.5 |
| LLOC | 10 | Logical lines; fewer is more readable | 59.5Δ 38.0 |
| DeepSeek V4 Pro | 11 | 0–20; mean of three runs | 46.4Δ 24.9 |
| GPT-6.1 Sol | 12 | 0–20; mean of three runs | 19.9Δ 1.5 |
| BTTF | 0.533 | 0–1; higher is more readable | 55.4Δ 34.0 |
| Human | 2.8 | 1–5; original rating | 21.4 |
Views
Select the downloaded ZIP or its extracted folder. Files stay in your browser.
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 1428.174 | −47.13 |
| Source linesThe number of non-empty source lines. | 50 | +20 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 4.98 | −7.47 |
Intercept 8.87 + feature contributions = -25.73 (log-odds).
Score = sigmoid(-25.73) = 0.
| Score | 0.529 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 46 | +0.854 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 51 | −0.769 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 83.961 | +0.55 |
| 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. | 49.906 | +0.288 |
| 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. | 83.922 | +0.111 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.086 | +0.104 |
Intercept 0.07 + feature contributions = 1.605 (log-odds).
Score = sigmoid(1.605) = 0.833.
| Score | 0.705 |
|---|
| Score | 10 |
|---|
Run 1
The code demonstrates moderate readability. Structure is logical with clear package and import organization, but type declarations are inconsistently formatted (class name on separate line from 'public class'). The method checkForFailedInstalls shows reasonable nesting depth (3 levels), though multiple null checks could be flattened. Variable naming is clear except for 'files' which accumulates content ambiguously. Action granularity is mostly good with one statement per line, but the try block opens on its own line unnecessarily. Reading flow is moderately natural but method parameters have inconsistent spacing. The code is concise without excessive comments except unhelpful author tag. Main readability issues are inconsistent formatting conventions and a try block that could be simplified with early returns, making intent slightly harder to follow than necessary.
Run 2
The code reveals a mixed picture of readability. While it follows consistent formatting for method signatures and variable declarations, several structural issues hinder clarity. The nested try-catch with multiple conditional layers adds complexity, and the string concatenation for file paths with `File.separator` is verbose and obscures intent. Magic strings like 'updates' and 'install.act' lack contextual documentation beyond a vague comment. The class-level AEMonitor and platform imports appear disconnected from the visible method's purpose, creating ambiguity about the class's full responsibilities. Method length is reasonable, but variable naming ('dirs', 'found_failure') is terse and lacks descriptive power. The reading flow breaks when encountering platform manager imports that seem unrelated to the update installation logic. Overall, the code is functional but would benefit from clearer separation of concerns, more descriptive naming, and reduced nesting to improve maintainability.
Run 3
The code has a logical package structure and naming conventions but suffers from several readability issues. Indentation is inconsistent (e.g., try block, file string formatting), and lines like 'String files = ''' appear disorganized, breaking reading flow. Nesting is moderate but could be flattened. The class purpose is somewhat clear via comments, but the abrupt end leaves intent incomplete. Action granularity is mixed — some lines contain multiple actions (e.g., file path concatenation). Overall, understandable but not highly readable.
Run 1
Code Structure: Package, imports, constants, fields, and method are logically ordered, although the fragment is incomplete and imports are loosely grouped. Nesting: The visible try block and conditional create moderate nesting, with no deeply tangled logic shown. Clarity of intent: Class and method names convey update-installation responsibilities, but generic names such as dirs and files and the vague Updater comment reduce precision. Code length: The executable code is concise, but excessive blank lines and split declarations unnecessarily expand the presentation. Action granularity: Statements generally perform one action per line, making individual operations easy to distinguish. Reading flow: The sequence is natural, but inconsistent spacing, tab alignment, and declaration styles interrupt scanning. The unfinished method limits assessment of overall readability.
Run 2
Code Structure: Package, imports, constants, fields, and a method follow a logical order, but wildcard imports and unusual declaration formatting add clutter. Nesting: The visible try block and conditional introduce moderate nesting; the incomplete excerpt prevents assessing deeper complexity. Clarity of intent: Names such as checkForFailedInstalls and UPDATE_DIR communicate purpose, while files is vague and the updater warning lacks specific context. Code length: The operations are concise, but excessive whitespace and split declarations unnecessarily expand the presentation. Action granularity: Each statement generally performs one action, making individual operations easy to identify. Reading flow: The overall sequence is natural, but inconsistent spacing, tab alignment, and declarations spread across lines interrupt scanning. The excerpt ends mid-method, limiting evaluation of its complete organization.
Run 3
Code Structure: Package, imports, constants, fields, and a method follow a logical order, though wildcard imports and inconsistent formatting reduce organization. Nesting: The visible method introduces several nested levels (try and if), but the excerpt is too incomplete to assess deeper complexity. Clarity of intent: Names such as checkForFailedInstalls and UPDATE_DIR convey purpose; abbreviated names like class_mon and dirs are less descriptive. Code length: The actual logic is concise, but excessive blank lines and split declarations unnecessarily stretch the excerpt. Action granularity: Each visible statement performs one action, supporting readability. Reading flow: Conventional declaration order helps, but irregular indentation, alignment, and line breaks interrupt scanning. The unfinished method limits assessment of overall flow and structure.