The maturity assessment process relies for rule-checking on results from open-source and well-known rule-checking tools, namely PMD and FindBugs. Others (CheckStyle, ...) may be added soon.
The complete list of rules is auto-generated on the dashboard documentation itself: http://dashboard.castalia.camp/documentation/rules.html
A rule has the following characteristics:
- Name (name): a human-readable name for the rule
- Mnemo (mnemo): a machine-readable identifier for the rule (usually the one decided by the tool's author).
- Description (desc): an array of paragraphs describing the rule.
- Priority (priority): a number between 1 and 5 stating the importance of the rule.
- Categories (cat): one or more space-separated category identifiers, e.g. COR ANA (for correctness and analysability).
The priorities defined as for now are: 0. Not set 1. Blocking: no false positive, will systematically induce a bug when executed. 2. High impact: no false positive, will sometimes induce a bug when executed. 3. Medium impact: no false positive, may induce a bug or is a bad practice. 4. Low Impact: May introduce a bug, but may have false positives. 5. Information: Minor remarks, may have false positives.
Only priorities in the range 1-3 should be counted in the artefacts evaluation. Categories 4 and 5 may have false positives and are mainly useful for code reviews and as information for developers.
The categories defined as for now are:
- ANA analysability
- CHA changeability
- REL reliability
- REU reusability
- EFF efficiency
- POR portability
- COR correctness
- SEC security
- THR Threads
- MAT maturity (good practices, defensive programming)
The version of PMD considered is the latest at the time of writing (5.2.3).
Rules: Only the rules from the java-basic, java-coupling, java-design, java-unused, java-empty rulesets have been transcripted.
The version of FindBugs considered is the latest as the time of writing (3.0.0).