Sample
Schnappinger/argoUML/org.argouml.core.propertypanels.ui.UMLIncludeBaseListModel
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 1 | 0–1; higher is more readable | 97.0Δ 45.7 |
| Scalabrino | 0.852 | 0–1; higher is more readable | 75.0Δ 23.7 |
| Dorn | 0.777 | 0–1; higher is more readable | 79.9Δ 28.5 |
| Mi | 0.573 | 0–1; higher is more readable | 52.1Δ 0.8 |
| LLOC | 4 | Logical lines; fewer is more readable | 87.0Δ 35.6 |
| DeepSeek V4 Pro | 16.33 | 0–20; mean of three runs | 53.1Δ 1.8 |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs | 73.8Δ 22.4 |
| BTTF | 0.85 | 0–1; higher is more readable | 98.7Δ 47.4 |
| Human | 3.9 | 1–4; original rating | 51.3 |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Source linesThe number of non-empty source lines. | 64 | +25.6 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 320.627 | −10.581 |
| 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.214 | −7.821 |
Intercept 8.87 + feature contributions = 16.068 (log-odds).
Score = sigmoid(16.068) = 1.
| Score | 0.852 |
|---|
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. | 65 | −1.265 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.014 | +0.811 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 63.81 | +0.482 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 74.492 | +0.397 |
| 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.954 | +0.363 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 21 | −0.011 |
Intercept 0.07 + feature contributions = 1.246 (log-odds).
Score = sigmoid(1.246) = 0.777.
| Score | 0.573 |
|---|
| Score | 4 |
|---|
Run 1
The code is highly readable with clear structure and intent. It contains a single-purpose class with a simple constructor and one overridden method. Nesting is minimal—only one class level and two short methods with no conditional blocks. Each action (super call, addElement) is on its own line, maintaining good action granularity. The method flow is natural: the overridden method calls the parent implementation then adds a new element, which is intuitive. Copyright headers add length but are standard boilerplate and do not affect the actual code readability. Naming is descriptive, and the Javadoc comments provide context without being excessive. Overall, the logic is concise, well-organized, and easy to follow.
Run 2
The code is generally readable but has significant boilerplate. The structure is logical: package, import, class with a clear inheritance, constructor, and a single overridden method. Nesting is minimal and the method has a flat control flow. Clarity of intent is mostly clear due to concise naming and Javadoc, though the class's exact role relies on familiarity with UML metamodel concepts. Code length is inflated by lengthy license headers, causing a disconnect between the visible source and the actual logic. Action granularity is good — each statement performs one logical action. Reading flow is natural for the small amount of executable code, but the excessive header text obscures the relevant implementation and should be condensed or moved to an external file.
Run 3
The code is highly readable despite containing extensive license headers. It has a clear, logical structure: package declaration, a single import, a focused class definition with a concise constructor, and one overridden method. Nesting is minimal—only one class and one method, with no conditional blocks or loops. Intent is unambiguous: the class extends UMLIncludeListModel to manage use case include bases, with a clear naming convention and a purposeful call to the model facade. Code length is appropriate; the only bloat is the verbose license text, which is not part of the actual logic. Action granularity is excellent, with each statement on its own line and no multiple actions crammed together. The reading flow is natural, moving from constructor to method override, though the license headers interrupt it somewhat. Overall, the implementation is straightforward and clean.
Run 1
Code Structure: Clean organization with a package, import, focused class, constructor, and overridden method. Nesting: Minimal nesting and no conditional complexity. Clarity of intent: Descriptive class and method names reveal the purpose, although the awkward class documentation and reliance on inherited behavior slightly obscure context. Code length: Executable code is concise; the extensive license header increases reading overhead without adding implementation complexity. Action granularity: Each statement performs a distinct action; the chained facade call remains understandable. Reading flow: Conventional Java layout and consistent formatting make the implementation easy to follow, though redundant constructor documentation and the missing @Override annotation are minor readability weaknesses.
Run 2
Code Structure: The class is logically organized, with a constructor followed by a focused overridden method. Nesting: There is no control-flow nesting, making the implementation easy to scan. Clarity of intent: Class and method names communicate the list-model purpose, although the awkward class documentation and reliance on inherited behavior slightly obscure details. Code length: The executable code is concise; the lengthy licensing header adds substantial visual overhead but is separate from the implementation. Action granularity: Each statement performs a distinct action, although the chained facade call requires some API familiarity. Reading flow: Consistent formatting and straightforward sequencing provide a natural flow from initialization to model population.
Run 3
Code Structure: The class is logically organized, with a constructor followed by a focused overridden method. Nesting: There is no control-flow nesting, making execution easy to follow. Clarity of intent: Class and method names communicate the list-model purpose, although the awkward class documentation and reliance on inherited behavior slightly obscure context. Code length: Executable code is concise; the extensive licensing header adds visual bulk but is separate from the implementation. Action granularity: Each statement performs one main action, though the chained facade call combines several lookups into one expression. Reading flow: Consistent formatting and a straightforward initialization-then-population sequence support natural reading.