5-day course: Design patterns for reliable embedded systems

Cars, aircraft, medical equipment through to fridges, TVs, MP3 players and even (wet) razors are all good examples of modern systems which contain embedded processors. Overall, it is usually estimated that for every desktop computer chip sold, 100 processors are sold for embedded systems.

Techniques for creating high-reliability embedded systems have focussed historically on safety-critical markets (e.g. the aerospace, medical and automotive industries), where system failures can have fatal consequences. These markets remain important, but embedded processors now also have an enormous impact in much broader areas of product development, including relatively simple consumer applications such as washing machines and set-top boxes. Manufacturers now wish to maximise the reliability of all such systems in order to reduce the cost of warranty repairs, minimise product recalls and ensure repeat orders. This course considers ways in which design patterns can be used to help achieve this goal.

First introduced in the 1990s, design patterns have become an important way for many companies to improve the quality of the products they produce. Put simply, design patterns allow organisations to capture the expertise of their best designers and make this available to other development teams within their organisation.

To obtain maximum benefit from this approach, companies aim to produce a “pattern language”: such a language is produced by a well-proven series of steps involving “mining”, “shepherding” and “workshopping”.

By the end of this 5-day course, participants will be in a position to create their first complete pattern language for reliable embedded systems.

[Module code: A3a]


Certified Senior Developer (Reliable Embedded Systems) programme

This module can be taken as part of the Certified Senior Developer (Reliable Embedded Systems) programme.

You can complete this module by attending a 5-day public training course in the UK, by attending an on-site training course (delivered on your company premises, anywhere in the world) or on a “Distance Learning” basis (anywhere in the world).

Further information is available about our popular certification programmes.


Does your organisation need design patterns?

Do you keep backups of key documents and computer files? Of course you do.

What about the vast amount of experience which your key system developers, designers and programmers have acquired through years of working on your systems? What happens to this information when key people retire (or move to your competitors)? How is this information “backed up” by your organisation?

Use of design patterns can help you to “back up” key skills from your team.


Where and when will this course be delivered next?

This course will be delivered as follows:

[Please contact us for dates of future courses.]

We can also deliver this course on your site at any time: please contact us for details.


Registration details

To register for this course, please contact us.

A place will then be reserved and you will be sent an invoice.

Your place on the course will be confirmed when payment is received.

Formal quotations can be provided on request.


Price

Places are available on this course at the “Taster” rate of £500 + VAT per place.

Please refer to our fees page for full information.


Pre-requisites

This is an introductory course. No previous experience with design patterns is assumed.

We do assume that all participants have some previous experience with embedded systems.

We also assume that all participants have some previous experience of C programming.

If your C is a little rusty, you may find it useful to refer to our free guide “An introduction to programming in “Embedded C”: please note that this file may take around a minute to download (from Cachefly) after you click on the link. This guide can be used as the basis of a “teach yourself” training package when combined with our RapidiTTy Lite product, which is also available for free download.


Trainer biodata

This module will be delivered by Prof. Michael J. Pont from the University of Leicester, UK.

Michael Pont holds a BSc (Electrical and Electronic Engineering) from the University of Glasgow and a PhD (Computer Science) from the University of Southampton. Michael is Professor of Embedded Systems and Head of the Embedded Systems Research Group at the University of Leicester: he is also CEO of TTE Systems Ltd.

In 2010, Michael was the recipient of the “Best Presenter” award at the Embedded Masterclass.

Michael is author / co-author of more than 100 technical publications and author of three books (“Patterns for Time-Triggered Embedded Systems”, “Embedded C” and “Software Engineering with C++ and CASE Tools”).


Example pattern workshop

This training course does not aim to tell you very much about patterns created by other people: instead, our goal is to teach you the skills and techniques needed to create your own pattern language.

Creating such a language will usually involve “pattern mining” (where you identify and document a draft pattern), “shepherding” (where a more experienced pattern writer helps you to refine your draft pattern) and then a “pattern workshop” where a group of people will provide a final set of comments on your pattern.

A pattern workshop in progress

To help you to understand what is involved in a pattern workshop, a short video will be available shortly (showing a workshop in progress, in Leicester, UK, in September 2009).

The workshop considers the pattern “Disable timer interrupts”: you can also download a copy of this pattern.


Course contents

  • Seminar 1. Introduction and motivation This seminar introduces the course. To illustrate how design patterns can be used to support the rapid development of reliable embedded systems, the origins and evolution of the “PTTES” collection is discussed. Key concepts are introduced.
  • Seminar 2. The work of Christopher Alexander This seminar focuses on the landmark work of Christopher Alexander who introduced the concept of patterns. Examples of Alexander’s patterns are presented and discussed.
  • Seminar 3. Patterns everywhere Seminar 3 introduces the concept of software design patterns that has evolved from Alexander’s original ideas. The influential work of the ‘Gang of Four’ (GoF) is discussed. Various pattern ‘forms’ (GoF, POSA, etc.) are presented and the main elements of a pattern (problem, solution, context, forces, etc) are examined. Some examples of patterns that have been successfully applied to various other fields such as teaching and organisational management are also presented.
  • Seminar 4. Patterns for fault-tolerant software Seminar 4 considers patterns which have been developed to support the design and implementation of fault-tolerant systems. The focus is on the Hanmer pattern collection.
  • Seminar 5. Second-generation pattern languages for embedded systems Seminar 5 considers the challenges of creating software patterns for embedded systems which (a) contain useful low-level details, and (b) can be adapted for use with different hardware targets. The seminar discusses how second-generation pattern languages have been developed which address these issues, and discusses practical techniques for creating such languages.
  • Seminar 6. Identifying and documenting good patterns. In Seminar 6, John Vlissides’ seven habits of successful pattern writers are discussed. The seminar also explores the process of “mining” for patterns in an organisation.
  • Seminar 7. Refining your patterns: The “Shepherding” process. Seminar 7 considers how patterns are ‘shepherded’, in preparation for a pattern workshop. The seminar considers the skills required to act as a good shepherd and the shepherding process. A pattern language for shepherding is also presented
  • Seminar 8. Refining your patterns: Running a “Writers’ Workshop”.
    Seminar 8 demonstrates how to run a pattern workshop. Tips for holding a successful pattern workshop will be presented. A pattern language for writers’ workshops is also discussed.
  • Seminar 9. Assessing the effectiveness of your pattern language. There have been many “silver bullets” in the software world, techniques which have “guaranteed” that your future projects will always be completed on time and on budget. Instead of making rash claims, Seminar 9 explores cost-effective and practical ways in which you can obtain real data to determine whether your pattern language will be effective in your organisation.
  • Seminar 10. The future of “pattern-based software engineering” for embedded systems.
    Seminar 10 considers what Kurian has called “pattern-based software engineering” (PBSE). Tool support for PBSE is considered. In addition, possible applications of patterns in support of the maintenance of embedded systems is considered. We wrap up the course by reviewing the strengths and weaknesses of pattern-based design approaches for the developers of reliable embedded systems.

Target architecture

This module is taught using both microcontrollers and FPGAs as the targets (this equipment is provided on loan for the duration of the course: if you wish, you can purchase this equipment at the end of the course).


Patterns for time-triggered embedded systems

Cover of Patterns for Time-Triggered Embedded Systems

Patterns for Time-Triggered Embedded Systems” is a 1000-page book which illustrates how you can create a range of reliable embedded systems with minimal resource requirements.

Patterns for Time-Triggered Embedded Systems” also provides an introduction to the concept of design patterns.

You can now download a complete copy of PTTES (free of charge and without the need to register). The source code examples from the book are also available (also free of charge).


Methodology

This course is taught through a carefully-planned combination of seminars and practical (laboratory) classes. Problems will be set during seminars and in laboratory sessions. Case studies will be used extensively in the laboratory sessions.


Course options

This course is delivered by TTE Systems Ltd.

University of Leicester You can attend this course as a self-contained 5-day training module or as part of the University of Leicester’s MSc in Reliable Embedded Systems.


Interested in on-site training?

We can deliver this course on your site at any time.

For on-site courses:

  • Training duration can be anything from 1 to 10 days.
  • Course content can be adapted to meet your precise requirements.
  • Training can be delivered anywhere in the world.
  • Combinations of training and consultancy activities can be provided.

Please contact us for further details.

On-site training options are only cost effective for class sizes of at least 10 people in most cases.