Ian Collins said:
To produce fast, consistent, reliable results, (at least between the
tools capabilities,) without wasting programmers time.
I'd rather see that the time spent in code reviews is used to find
logical errors, non-conformance with specs, etc. while leaving
anything that could be automated to verification tools.
Just adopt some agile practices such as
collective code ownership and pair programming.
Way more effective than a tool.
Not at all. Unlike a tool, no programmer duet, (or trio, or quintet,)
can guarantee that it will always detect violations to rules such as:
--> "struct tag names must be unique identifiers"
(MISRA C Guidelines 2004,
Rule 5.4),
--> "Identifiers will not differ by:
* Only a mixture of case
* The presence/absence of the underscore character
* The interchange of the letter 'O', with the number '0' or the
letter 'D'
* The interchange of the letter 'I', with the number '1' or the
letter 'l'
* The interchange of the letter 'S' with the number '5'
* The interchange of the letter 'Z' with the number '2'
* The interchange of the letter 'n' with the letter 'h'. "
(Joint Strike Fighter Air Vehicle C++ Coding Standards 2005,
Rule 48)
Or that it will never fail to spot problems such as
for (i=here; i<there; i++);
{
...
}
(Violates MISRA 14.8)