Course Overview

Course Length: 
2 Days

  Printable PDF

In this 2-day course attendees will learn "what, why and how" of approximately a dozen practical, lightweight techniques for designing safer and more reliable embedded systems. We will focus on minimizing hazards and malfunctions though a combination of lightweight, demonstrably-effective design techniques. Architectural, process and cultural aspects will also be covered.

Topics covered in this course include:

  • System Partitioning for Designing Safe, Robust Systems
  • Run-Time Monitoring
  • Design for Test
  • Managing Time for Safe Product Operation
  • Run-time Logging
  • Safety Case Requirements
  • Managing Software Complexity
  • Coding Standards
  • Static Analysis
  • Code Inspections
  • Issue Tracking
  • Post Mortems

Prerequisites:  Attendees should have prior experience in the design of one or more embedded systems.


The following is a summary of the major course topics and are not the section-by-subsection lecture breakdown.

System Partitioning for Designing Safe, Robust Systems

  • Hardware / software partitioning
  • Fault containment
  • Real-time considerations

Run-Time Monitoring

  • Power-on and run-time self tests
  • Hard and soft errors
  • CPU load monitoring

Design for Test

  • Benefits
  • Adding controllability and observability into a system
  • Using test results to identify root causes of defects

Managing Time for Safe Product Operation

  • Defining real-time systems
  • Scheduling strategies
  • Rate monotonic algorithm
  • Schedulable bound
  • CPU utilization
  • Task priority assignment

Run-time Logging

  • Benefits
  • Logging strategies
  • Configurability
  • Timestamping
  • Data exfiltration
  • Real-world case study

Safety Case Requirements

  • Benefits
  • Essential components
  • Safety case example
  • Fault tree analysis (FTA)
  • Failure modes & effects analysis (FMEA)

Managing Software Complexity

  • Benefits
  • Measuring techniques
  • Techniques for reducing complexity
  • Metrics, including McCabe Cyclomatic complexity

Coding Standards

  • Benefits
  • Coding standard rules to minimize code defects
  • Introducing and enforcing coding standard rules
  • Examples of prescriptive coding rules that reduce defects

Static Analysis

  • Benefits
  • Examples of defects caught only through static analysis
  • Tool configuration
  • Reducing false positives

Code Inspections

  • Benefits
  • Approaches to code inspections
  • Metrics
  • Best practices

Issue Tracking

  • Benefits
  • Best practices
  • Data-driven planning

Post Mortems

  • Benefits
  • Understanding root causes of problems
  • Identifying areas for improvement 

Related Courses

Find out More

To find out more about our upcoming public trainings, go to our Training Calendar.

Contact Us to find out more about this course or to enquire about an on-site training at your company.

Recording Policy

All Barr Group Training Public and On-site courses may not be audiotaped, videotaped or photographed without consent from Barr Group's executive team.  Barr Group reserves the right to record portions or all of a training course for instructional purposes.  As a result, attendees present may also appear on the recording.