Course Overview

Course Length: 
2 Days

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.

Explore this course:

Find out more:


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

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

Recording Policy

Barr Group's courses may not be audiotaped, videotaped, or photographed without consent from Barr Group's executive team.