Sample

Dorn/java/188

Human rating uses the original dataset scale.

DatasetDorn
Human3.34
Lines50

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
44.3Δ 4.5
Scalabrino0.7650–1; higher is more readable
84.5Δ 35.7
Dorn0.730–1; higher is more readable
68.8Δ 20.1
Mi0.7610–1; higher is more readable
94.4Δ 45.7
LLOC15Logical lines; fewer is more readable
46.5Δ 2.2
DeepSeek V4 Pro140–20; mean of three runs
65.9Δ 17.1
GPT-6.1 Sol16.330–20; mean of three runs
70.8Δ 22.0
BTTF0.6130–1; higher is more readable
76.3Δ 27.6
Human3.341–5; original rating
48.7

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.1070−35.31
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.39−6.585

Intercept 8.87 + feature contributions = -13.025 (log-odds).
Score = sigmoid(-13.025) = 0.

Score0.765

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.50−0.734
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.94.98+0.728
Indentation frequencyHow rapidly indentation changes from line to line.37+0.543
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
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.94.98−0.358
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.49.625+0.284
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.09+0.066

Intercept 0.07 + feature contributions = 0.996 (log-odds).
Score = sigmoid(0.996) = 0.73.

Score0.761
Score15
Run 1

The code follows a predictable JavaBean pattern with clear getter/setter methods, which aids readability. However, it suffers from verbosity due to fully qualified class names, making each line unnecessarily long. The structure is straightforward but incomplete—the 'archiveFiles' field is missing from the shown snippet, and the 'options' field appears without context. The presence of both array-level and index-level accessors adds clutter, though each method has a single responsibility. Comments are minimal but helpful. Overall, the code is understandable but would benefit from imports and reduced repetition.

Run 2

The code is generally readable with clear structure and intent. It follows standard JavaBean patterns with a no-arg constructor, a parameterized constructor, and getter/setter methods. Naming is conventional and self-explanatory. However, the code uses fully qualified type names (com.sap.engine.services.dc.wsgate.*) inline, which clutters the code and hurts readability. An import statement would make it cleaner. There is also an extra blank line at the start and minor inconsistent formatting. The methods are concise and each method performs a single action, improving clarity. The Javadoc comments are present on the main getter/setter but missing on array index accessors, which slightly reduces documentation consistency. Overall, it's well-structured but would benefit from using imports and some formatting cleanup.

Run 3

The code is generally readable and follows standard JavaBean conventions. It has a clear structure with predictable getter/setter methods, low nesting, and obvious intent. However, readability is reduced by verbose fully-qualified class names, lack of JavaDoc on some methods, and incomplete array handling (no null/range checks). The code includes a no-argument constructor and a parameterized constructor, which is clear, but the benefit of the no-arg constructor is unclear. Action granularity is good—one operation per line. Reading flow is natural but slightly interrupted by long type names that could be shortened with imports.

Run 1

Code Structure: Constructors and related accessors are logically grouped, although the snippet omits the archiveFiles declaration. Nesting: Methods are flat and easy to follow. Clarity of intent: Conventional getter/setter names make the purpose clear; fully qualified types and the parameter name _value add minor visual noise. Code length: Methods are concise, but repetitive Javadoc and excessive blank lines unnecessarily lengthen the snippet. Action granularity: Each statement performs a single action on its own line. Reading flow: The progression from constructors to archiveFiles accessors and then options accessors is natural, though inconsistent indentation and long signatures slightly impede scanning.

Run 2

Code Structure: Constructors and related accessors are logically grouped, though the excerpt omits the archiveFiles declaration. Nesting: Methods are flat and contain no nested control flow. Clarity of intent: Conventional constructor, getter, and setter names make the purpose clear; generic parameter names i and _value are less descriptive. Code length: Methods are concise, but fully qualified type names, repetitive Javadoc, and excessive blank lines add visual bulk. Action granularity: Each statement performs one straightforward action on its own line. Reading flow: The progression from construction to archive accessors to options accessors is natural, although inconsistent indentation and long signatures slightly disrupt scanning.

Run 3

Code Structure: Constructors and related accessors are logically grouped, although the excerpt omits the archiveFiles declaration. Nesting: Methods are flat and straightforward, with no nested control flow. Clarity of intent: Constructor assignments and accessor names clearly communicate their purpose; generic parameters i and _value are less descriptive. Code length: Methods are concise, but repetitive Javadoc, excessive blank lines, and fully qualified type names add visual clutter. Action granularity: Each statement performs one action, making operations easy to follow. Reading flow: The progression from constructors to archiveFiles accessors and then options accessors is natural, though inconsistent indentation and long signatures slightly interrupt scanning.