HIS + MISRA C Checklist

The Hersteller Initiative Software (HIS) metrics are a collection of 15 metrics that apply to a software project plus three metrics that apply to two revisions of software projects. Of the project metrics, two are actually summaries of rule violations of a subset of MISRA C.

This checklist contains checks for all 18 metrics representing HIS, along with checks for the underlying MISRA C coding standards that are referenced by HIS. The MISRA C directives and rules are listed by how they are referenced in MISRA-C:2012, rather than the earlier MISRA-C:2004 standard that was in place at the time the HIS standard was issued.

Software being reviewed with this checklist should be loaded into Imagix 4D with the -nosys option disabled and the -nosysbodies option enabled.

"MISRA", "MISRA C" and the triangle logo are registered trademarks owned by HORIBA MIRA Ltd, held on behalf of the MISRA Consortium.

HIS Source Code Metrics

HIS-CALLINGNumber of callers more than 5
HIS-CALLSNumber of called functions more than 7
HIS-COMFRatio of comments to statements less or equal than 0.2
HIS-CYCCyclomatic Complexity Greater than 10
HIS-GOTONumber of Goto
HIS-LEVELNumber of nested conditions more than 4
HIS-NOMVViolations of the HIS subset of MISRA C rules
HIS-NOMVPRViolations of the HIS subset of MISRA C rules by rule
HIS-PARAMSNumber of function parameters more than 5
HIS-PATHNumber of Paths More than 80
HIS-RECRecursive Functions
HIS-RETURNNumber of returns in function
HIS-SCHGNumber of statements changed in project
HIS-SDELNumber of statements deleted in project
HIS-SIStability index of project
HIS-SNEWNumber of statements added in project
HIS-STMTNumber of statements in function more than 50
HIS-VOCFVocabulary of function more than 4

Underlying MISRA C Directives

Dir 1.1Dir 4.4
Dir 4.6Dir 4.7
Dir 4.9Dir 4.11
Dir 4.12
Dir 1.1Dir 4.6Dir 4.9Dir 4.12
Dir 4.4Dir 4.7Dir 4.11

Underlying MISRA C Rules

Rule 1.1Rule 1.2
Rule 1.3Rule 2.1
Rule 2.1aRule 2.1b
Rule 2.2Rule 3.1
Rule 4.1Rule 4.2
Rule 5.3Rule 5.6
Rule 5.7Rule 6.2
Rule 7.1Rule 8.1
Rule 8.2Rule 8.3
Rule 8.4Rule 8.5
Rule 8.6Rule 8.7
Rule 8.8Rule 8.9
Rule 8.13Rule 9.1
Rule 9.2Rule 10.1
Rule 10.2Rule 10.3
Rule 10.4Rule 10.6
Rule 10.7Rule 10.8
Rule 11.1Rule 11.3
Rule 11.8Rule 12.1
Rule 12.2Rule 12.3
Rule 12.4Rule 13.2
Rule 13.4Rule 13.5
Rule 13.6Rule 14.1
Rule 14.2Rule 15.1
Rule 15.2Rule 15.3
Rule 15.6Rule 15.7
Rule 16.2Rule 16.3
Rule 16.4Rule 16.5
Rule 16.6Rule 16.7
Rule 17.1Rule 17.2
Rule 17.3Rule 17.4
Rule 18.1Rule 18.2
Rule 18.3Rule 18.4
Rule 18.5Rule 18.6
Rule 19.1Rule 20.2
Rule 20.3Rule 20.4
Rule 20.6Rule 20.7
Rule 20.9Rule 20.10
Rule 20.11Rule 21.1
Rule 21.1aRule 21.1b
Rule 21.1cRule 21.2
Rule 21.3Rule 21.4
Rule 21.5Rule 21.6
Rule 21.7Rule 21.8
Rule 21.10
Rule 1.1Rule 8.4Rule 11.8Rule 16.4Rule 20.6
Rule 1.2Rule 8.5Rule 12.1Rule 16.5Rule 20.7
Rule 1.3Rule 8.6Rule 12.2Rule 16.6Rule 20.9
Rule 2.1Rule 8.7Rule 12.3Rule 16.7Rule 20.10
Rule 2.1aRule 8.8Rule 12.4Rule 17.1Rule 20.11
Rule 2.1bRule 8.9Rule 13.2Rule 17.2Rule 21.1
Rule 2.2Rule 8.13Rule 13.4Rule 17.3Rule 21.1a
Rule 3.1Rule 9.1Rule 13.5Rule 17.4Rule 21.1b
Rule 4.1Rule 9.2Rule 13.6Rule 18.1Rule 21.1c
Rule 4.2Rule 10.1Rule 14.1Rule 18.2Rule 21.2
Rule 5.3Rule 10.2Rule 14.2Rule 18.3Rule 21.3
Rule 5.6Rule 10.3Rule 15.1Rule 18.4Rule 21.4
Rule 5.7Rule 10.4Rule 15.2Rule 18.5Rule 21.5
Rule 6.2Rule 10.6Rule 15.3Rule 18.6Rule 21.6
Rule 7.1Rule 10.7Rule 15.6Rule 19.1Rule 21.7
Rule 8.1Rule 10.8Rule 15.7Rule 20.2Rule 21.8
Rule 8.2Rule 11.1Rule 16.2Rule 20.3Rule 21.10
Rule 8.3Rule 11.3Rule 16.3Rule 20.4