I remember when this was posted on HN before, what I always wondered about is the discrepancy between the violations that NASA found and Barr.<p>NASA found 7000 and change Barr found over 81,000, I&#x27;m not sure whats the size of the code that was reviewed but that&#x27;s allot, even if you count the fact that half of them might be silly like naming convention violations that still leaves quite an odd number for actual violations especially when considering that the code for an embedded system can&#x27;t be that huge.<p>And the 10,000 global variables thing, well 10,000 sounds like a huge number but there wasn&#x27;t any mention if they were a) necessary, b) implemented correctly, and c) out of how many variables in total? if the code they&#x27;ve tested has say 1 million variables then well....
And how they described global variables is also weird, they claimed that every software within the system can access them to me this sounds that your stereo or the rain sensor for the wipers can override data for the breaks, but that might be true only if everything is running within a single application.<p>If the breaks run as an independent application well then only every function within the break software (depending on the language and how global variables are implemented) could potentially access those variables.<p>To me pretty much that entire explanation seem to be constructed to sound worse than what it is, which is why I think that expert witnesses should only be allowed to be appointed and called by the court it self (as in by the judge so they and the jury could understand the technical details better) and not by either the defense or the prosecution.