The Linux Foundation hosted the Embedded Open Source Summit (EOSS), a new umbrella event for open source embedded projects and developer communities to come together under one roof for important collaboration and education, in Prague, Czech Republic, on June 27-30. More than 1,300 people registered for the conference – representing 375 organizations across 56 countries around the globe.
EOSS hosted the Safety-Critical Software Summit, which was sponsored by the ELISA Project, that gathered safety experts and open source developers to enable and advance the use of open source in safety-critical applications. As part of the Summit, Nicole Pappler, CTO and Founder of AlektoMetis, and Philipp Ahmann, Technical Business Development Manager at Robert Bosch GmbH and Chair of the ELISA Project TSC, presented a session titled, “Coding Guidelines – to Comply or Not Comply – Some Myth Busting.”
While adhering to certain coding styles is a good practice in software projects, adhering to coding guidelines for safety critical applications is still something rather exotic in open source projects. As open source projects now more and more start to address the needs of functional safety applications, considering coding guidelines preferred by existing functional safety projects seems to become necessary. The most used rules for coding guidelines in the safety critical context are MISRA rules. While applying these can be quite beneficial for most applications, there is a significant number of exceptions where blindly following these rules causes more problems than it solves.
In this video, Nicole and Philipp discuss the most common coding guidelines, best practices and arguments when following the MISRA rules conflicts with the expectations of the project. Acceptance criteria for non-compliance cases along with examples of acceptable deviations will be presented. This is not contra coding guidelines, but illustrates how coding guidelines are beneficial for a project, what to consider when designing a project’s coding guidelines and how the lessons learned by the application of MISRA rule sets can be applied to languages that are not (yet?) covered by widely accepted rule sets.