Friday 1 August 2014

Developing & Delivering KnowHow

Home > Training > Real-Time Software Design with UML 2.0

Real-Time Software Design with UML 2.0

Length: 5 days

view dates and locations

This course is delivered in co-operation with Doulos' training partner Feabhas, who specialise in training courses for real-time embedded developers.

Course description

A detailed design course which focuses on designing a Real-Time Embedded System (RTES) using UML 2.0 notation to document the proposed design. This makes it significantly different from most UML courses which focus on UML notation above design principles.
By using comprehensive real-world examples it also identifies the areas where UML 2.0 improves on UML 1.5, but also still identifies its weaknesses (areas such as concurrency, multi-processing and distributed systems). The course is backed up by a comprehensive ‘real-world’ CASE study demonstrating how to apply UML 2.0 to a RTES.
This course has been developed by the leading author Dr. J. E. Cooling.

Course objectives:

· To provide an understanding of the design principles of modern real-time software developments methods.
· 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 the UML 2.0 design notation for use on RTES.

Delegates will learn

· The fundamental concepts and terminology of real-time software techniques.
· The diagrammatic and modelling underpinnings provided by UML for OO development methods.
· 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.
· Where and how CASE tools can be used in the development process.


· Some understanding of technical software development methods and some knowledge of a high-level programming language.

Who Should Attend

The course is designed for:
· Designers new to the area of real-time software design.
· Developers embarking on projects using UML-based techniques for the first time.

Course Materials

· Delegate handbook
· All worked examples and solutions

Related courses

· Design Patterns in C++ for Embedded Systems

Course Workshop

Approximately 50% of the course involves practical application of the techniques. 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 when CASE tools are helpful and when they are not, thus aiding CASE tool selection.

Course Outline:

Introduction to real-time systems design
- An overview of real-time systems
- Incremental design processes
Software machines - fundamentals
- Modularization principles and practices
- Diagramming techniques in program design - the UML activity diagram
Overview of OO design concepts
- Designing systems as sets of collaborating objects
- Classes, objects and their features
- Key design and build issues: software templates, encapsulation, interfacing, information hiding, inheritance and aggregation
Basic class and object modelling
- Design templates, encapsulation, interfacing and information hiding
- Class and object generalisation and specialisation: inheritance
Modelling dynamic behaviour
- State diagrams to define system and object dynamics
- The concepts, syntax and semantics of UML state machine diagrams
Developing the ideal object model
- Object relationships, communication and control in an ideal environment
- Scenarios, sequence diagrams and communication diagrams
- Rresponsibility-based design techniques
- Interfacing to the real-world
Developing the practical sequential (procedural) object model
- Controlling the collective behaviour of objects in sequential code: the coordinator object
- Specifying algorithmic (processing) operations using activity diagrams
Developing the specification model for small systems
- The role of the specification model
- Concurrent and non-concurrent structures - active and passive objects
- Specifying object structures - flat object structure
Concurrent systems and task-based design
- Problems with abstract software design
- Fundamentals of multitasking design
Developing the implementation (tasking) model for small systems
- Mapping the specification model to the tasking model.
Developing medium-sized systems
- Introduction to composite structures, ports and interfaces
- Generating the specification model for composite structures
- Specifying the implementation (tasking) model
Developing larger systems
- Key building blocks - packages and components
- Subsystem structuring of designs
- Implementation modelling
Multi-computer systems
- Multi-computer architectures for real-time systems
- Criteria for mapping software onto hardware
- A practical design technique
Use case analysis
- Use cases for organising and presenting requirements
- Scenarios and use cases
- System scope and direct and indirect actors.
- Modelling actor-system interactions graphically
Case study
- This is based on developing embedded software for a computer-controlled manufacturing test rig.

This course is available now for team-based training at or near to your location. To find out more:

Complete an on-line form and a Doulos representative will get back to you »
Call Doulos to discuss your requirements »
Back to top
Privacy Policy Site Map Contact Us