Sample
Schnappinger/argoUML/org.argouml.uml.diagram.ui.ActionStereotypeViewTextual
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 1 | 0–1; higher is more readable | 97.3Δ 37.6 |
| Scalabrino | 0.858 | 0–1; higher is more readable | 78.8Δ 19.0 |
| Dorn | 0.966 | 0–1; higher is more readable | 98.3Δ 38.6 |
| Mi | 0.626 | 0–1; higher is more readable | 67.3Δ 7.6 |
| LLOC | 1 | Logical lines; fewer is more readable | 98.3Δ 38.6 |
| DeepSeek V4 Pro | 17.67 | 0–20; mean of three runs | 83.0Δ 23.3 |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs | 73.8Δ 14.0 |
| BTTF | 0.887 | 0–1; higher is more readable | 99.7Δ 39.9 |
| Human | 3.93 | 1–4; original rating | 59.7 |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Source linesThe number of non-empty source lines. | 60 | +24 |
| 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.209 | −7.813 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 222.905 | −7.356 |
Intercept 8.87 + feature contributions = 17.701 (log-odds).
Score = sigmoid(17.701) = 1.
| Score | 0.858 |
|---|
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. | 1 | +1.001 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.008 | +0.867 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 76.607 | +0.432 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 59.734 | +0.425 |
| 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. | 77.967 | +0.363 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 15 | −0.218 |
Intercept 0.07 + feature contributions = 3.337 (log-odds).
Score = sigmoid(3.337) = 0.966.
| Score | 0.626 |
|---|
| Score | 1 |
|---|
Run 1
The code is highly readable. It has a clear, logical structure: license header, package declaration, import, class Javadoc, class definition, constructor. Nesting is minimal—only one method, no conditional blocks. Intent is unambiguous: the class name, Javadoc, and constructor arguments clearly convey that this action switches stereotype display to textual mode. Code length is concise; no unnecessary code or boilerplate beyond standard license and documentation. Action granularity is clean—the single constructor call is straightforward. Reading flow is natural: from package context to class purpose to implementation. The only minor deduction is for long license headers, which slightly interrupt the flow, but they are legally required and clearly separated.
Run 2
The code is highly readable. It has a clear, logical structure: a single class with a concise constructor and a brief description of its purpose. Nesting is nonexistent, and intent is unambiguous—the action switches stereotype view to textual mode. Code length is minimal and appropriate. Each line in the constructor performs one clear action (super call with three arguments), though this could be argued as slightly dense. Reading flow is natural: copyright, package, import, Javadoc, class, constructor. The only minor issues are the verbose license headers, which obscure the actual code, and slight ambiguity in the constructor's multiple arguments. Overall, it is clean, well-documented, and easy to understand.
Run 3
The code is highly readable due to its clean structure and clear intent. The class has a single, focused responsibility, and the constructor is concise with one logical action per line. Nesting is minimal, and the reading flow is natural, moving from class declaration to constructor logic. The extensive license header, while verbose, is standard boilerplate and does not affect the functional code's readability. The code length is appropriate, and the action granularity is well-balanced, with clear parameter alignment and straightforward naming conventions.
Run 1
Code Structure: Clean organization with a package declaration, import, documented class, and a single constructor. Nesting: Minimal, limited to the class and constructor. Clarity of intent: Descriptive names, documentation, and the named appearance constant clearly communicate textual stereotype display; underlying behavior is delegated to the superclass. Code length: Implementation is concise, although extensive license headers dominate the file and delay reaching the relevant code. Action granularity: The constructor contains one logical action, a superclass call, wrapped appropriately across lines. Reading flow: Natural top-to-bottom progression, slightly hindered by the lengthy headers and inconsistent tab-based constructor indentation.
Run 2
Code Structure: Clean organization with a package, import, documented class, and single constructor. Nesting: Minimal, limited to the class and constructor. Clarity of intent: Descriptive names, documentation, and the named mode constant clearly communicate the action's purpose, although implementation details depend on the superclass. Code length: The executable code is concise; the extensive licensing header dominates the file and delays reaching the relevant logic. Action granularity: The constructor performs one superclass initialization, sensibly split across lines. Reading flow: Natural top-to-bottom progression, with minor disruption from inconsistent indentation and the lengthy header.
Run 3
Code Structure: Clear package, import, class documentation, and a single constructor provide logical organization. Nesting: Minimal, limited to the class and constructor. Clarity of intent: Descriptive names, explanatory Javadoc, and the named display-mode constant clearly communicate the action's purpose, although behavior is delegated to the superclass. Code length: The implementation is concise, but extensive license comments dominate the file and delay reaching the functional code. Action granularity: The constructor performs one superclass initialization, sensibly split across lines. Reading flow: The standard Java layout is natural and easy to follow; inconsistent tab-based indentation slightly reduces visual consistency.