Real-Time Software Design with UML

Course category
Training area
Course code
5 days
Course date
Price exc VAT

Modern embedded software design is constrained by an ever-growing set of constraints:

  • Increasing software complexity
  • Decreasing time-to-market
  • The need to produce flexible, maintainable systems
  • The need to have rigorous engineering in critical systems.

These factors are driving the need for cohesive design methodologies and the use of modelling.

This is a detailed software design course which focuses on designing Real-Time Embedded Systems, using UML 2 notation to document the proposed design.

The focus on design principles and methodologies make this course significantly different to most UML courses, which focus on notation.

Course objectives:

  • To provide an understanding of Object Oriented design principles.
  • To show how to develop real-time software in a rigorous and systematic manner.
  • To enable attendees to develop their own practical design skills.
  • To teach effective application of UML notation.

Delegates will learn:

  • The fundamental concepts and terminology of real-time software.
  • The diagrammatic and modelling underpinnings provided by UML for Object Oriented development.
  • How to apply the design principles in real-time applications.
  • The basics of an integrated, traceable and consistent approach in the development of software for real-time systems.


  • Some understanding of technical software development methods.
  • Knowledge of typical embedded programming languages (like C) is useful.

Who should attend:

  • Designers new to the area of real-time software design.
  • Developers with some non-embedded UML experience.
  • Designers embarking on projects using UML-based techniques for the first time


  • Five days

Course materials:

  • Delegate handbook
  • All worked examples and solutions

Course workshop:

Approximately 50% of the course involves practical application of the techniques discussed. Delegates work in small groups dealing with problems based on real-world systems. 

The course specifically does not make use of a CASE tool. From our experience, a CASE tool distracts delegates from learning design issues and UML. However, the workshops clearly demonstrate the benefits and disadvantages of CASE tools, thus aiding CASE tool selection.

uml small.gif


Real-time systems

  • An overview of real-time systems
  • Why do we model?


  • ‘Correct’ vs ‘good’ software
  • Principles of modularisation

Object Oriented design

  • Object-Oriented terminology
  • Object-based design

The software development process

  • Diagrams and models
  • Evolutionary vs Adaptive models

The Ideal Object model

Object modelling fundamentals

  • Finding objects
  • Scenario-based design
  • The CRC methodology

Interaction modelling

  • Communication diagrams
  • Sequence diagram basics

The Specification model

Behavioural modelling

  • State machine basics
  • Activity diagram basics
  • Mapping internal and external behaviour


  • Active and passive objects
  • Selecting active or passive elements


  • Class notation
  • Associations
  • Specialisation

Medium-sized systems

Composite structures

  • Composite structure notation
  • Ports
  • Concurrency and composites


  • Dependency Inversion Principle

The Implementation model

Model transformation rules

  • Implementing UML constructs in an embedded  programming language

The Requirements model

System Scope and context

  • Defining system scope

Use cases

  • Stakeholder analysis
  • Use case fundamentals

Modelling system behaviour

  • Use case interactions
  • System modes