BUGSENG provides a full range of professional training services on the effective deployment and use of its own products to ensure that Customers are getting the most out of their technology investment.
In addition, BUGSENG delivers both public and customized on-site courses on MISRA coding standards and other topics related to the development of safe and secure embedded systems in C and C++.
The courses are delivered by BUGSENG's highly-qualified instructors and designed so that, after attending a course, attendees are immediately able to implement practices and apply the learned information to everyday work situations.
Effective MISRA C
Effective MISRA C is a course on MISRA C:2012, the latest version of the MISRA C standard, including the new security amendments. The course has been designed for the smooth and successful adoption of MISRA C by an organization: it will significantly strengthen the skills and competences of teams involved in the design, development and verification of critical embedded software systems.
Intended Audience and Teaching Methods
The Effective MISRA C course is meant for software developers, engineers and architects as well as V&V engineers and project managers. The content is geared towards people with a working understanding of the C programming language; however, no previous knowledge of MISRA C is required.
The course, which favors participatory approaches as much as possible, is based on the following methodologies: lectures/presentations, discussions, questions and answers, demonstrations, practical sessions, exercises. An optional final exam can also be provided.
Upon completion of the course, participants will:
- understand the C language pitfalls, the compilation process, static analysis techniques and tools;
- understand the origin and nature of MISRA C and its role in the development of safe and secure software;
- understand the important MISRA C guidelines and the unwanted phenomena they are designed to prevent;
- understand the notion of compliance to MISRA C and the permitted deviation procedures;
- appreciate and understand the advantages of the adoption of MISRA C and other best practices.
In addition, they will be able to:
- recognize and avoid dangerous features of the C language by adhering to the MISRA C language subset, thus minimizing rework and extended testing phases;
- analyze the output of static analyzers and recognize MISRA C false positives (and negatives);
- decide on the best remediation for each kind of MISRA C violation;
- work effectively on bringing projects into compliance;
- formulate accurate and defensible compliance matrices.
Contents and Schedule
This two-day course provides a thorough understanding of MISRA C, debunking common misconceptions that are usually the reason for its ineffective and counterproductive adoption. The course begins with a presentation of the safety and security pitfalls that are inherent in C programming; the most common and dangerous programming errors (with a particular emphasis on embedded systems programming) are then explained in detail.
Each MISRA C rule is presented along with its rationale and the role it plays in achieving safety, testability, maintainability and portability. Most importantly, each rule is presented along with a clear explanation of the right corrective measures (those that do increase overall code quality) and with instructions about why, when and how rule deviations might be necessary or advisable. The use of tools for the automatic verification of MISRA C rules is then introduced, with a particular emphasis on their proper configuration and integration with the development environment. The course concludes with the demonstrative analysis of a portion of a real software project: this gives the opportunity to review and practice all the learned concepts and abilities.