Skip to main content

Robust Automotive Software

With the continuing rapid growth in the scale and complexity of automotive electrical and electronic systems this module provides essential competences in an increasingly important area of automotive product development.

This module forms part of the Jaguar Land Rover MSc course in Automotive Engineering.

Module Aims

The aims of this module are to:

  • Develop a detailed theoretical and practical understanding of the principles of and processes for software design, development and implementation in automotive applications.
  • Develop the ability of course attendees to independently analyse and evaluate software design and implementation to assess robustness.
  • Understand the importance and current best practices in design, development and validation of software in automotive applications.
  • Appreciate the importance of learning from past experience to provide a sound foundation from which to critique software design and implementation.
  • Appreciate issues related to real industry examples, solutions and pitfalls. Real life experience and knowledge, discussed with the guest lecturer, Ivan Wilson, help bring the course alive.

Note that the module is based on C programming language.

Learning Outcomes

By the end of the module the student should be able to:

  • Demonstrate a comprehensive knowledge of the principles of fundamental and advanced software design.
  • Demonstrate a working knowledge of the principles of software development and basic and advanced validation techniques.
  • Demonstrate the ability to independently analyse and evaluate software design and implementation to assess robustness
  • Demonstrate the ability to analyse poor software design through historic data


  • Module introduction
    • Background on the application and growth of software in the automotive domain
    • The cost of poor software design and implementation
  • How a Software Project Works
    • From design to validation
  • V-Model Steps Re-Visited
    • Software development process V-model
    • Understanding what goes wrong during the development process
    • Robustness and the V-model
    • MISRA-C guidelines
  • Working through the V-model in practice
    • Practical labwork based on C programming language with classroom project
  • Programming Languages
  • Tasks and Interrupts
    • How interrupts work
    • Correct and incorrect implementation of interrupts
  • Robustness by Design
    • Software Health Checks and Watchdog

Module Leader:

Dr. Valentina Donzella, WMG

Guest Lecturer:

Ivan Wilson, Embed Limited (, high quality automotive software supplier)