Making sure what you see is really what you have
Software bugs have a long and frightening history. In just the past few years automobile manufacturers have recalled more than 1.3 million vehicles due to software problems leading to unexpected acceleration, stalling, braking issues, airbag deployment problems and vehicle stability issues. Similar cases have been found in other safety-critical industries such as medical devices. Recent court cases are not lenient with manufacturers, especially when the manufacturer is shown to have failed to exercise due diligence in ensuring quality software in safety critical embedded systems. The old defense of “proven in use” is no longer a solid argument during trials. Manufacturers, and the vendors who provide them embedded systems, must ensure that all such software is proven to be designed according to accepted standards, and the choice of the right tools to support the development process becomes even more a key factor.
Manufacturers of safety-critical and mission-critical systems demand that any embedded system used in their products be developed and verified in compliance with rigorous standards. MISRA is the industry-leading standard for software development. It is in widespread use in not only automotive but also in aerospace, railway, medical device and other industries to facilitate code safety, portability and reliability of embedded systems programmed in C. Software verification is a highly complex task that requires deep specialization, and achieving MISRA compliance is not just a matter of having run code through a MISRA compliance tool! Unfortunately, low performance source code static verification (SCSV) tools abound. Poor tools provide approximate software evaluations, failing to ensure accurate verification. Even worst, poor SCSV tools provide a false sense of security when serious defects are missed, can actually decrease the overall quality, and certainly increase development costs.
In reality, quality software requires quality tools!