Home
Company Profile
Our Clients
Training
Courses
course list
roadmap
all dates
forthcoming
booking
Graduate
Training
Mentoring
Location
Links
Contact us
 sign up for Feabhas e-news

 


 C++ Training Courses
C++-502
Real-Time C++

Length: 5 days
Cost: Contact Feabhas (available for on-site delivery only)
Course description - see below or view PDF
Check course dates - click here
Booking information - click here
 Course Detail

Course Description:
This course introduces the C++ language for use on realtime applications. The first part of the course focuses on the language itself, highlighting the areas of concern for realtime development. The latter part covers the application of C++ to real-time systems focusing on concurrency/threading issues. If a C++ course does not cover these fundamental issues you may find you still have a lot to learn after the training.

Attendees perform hands on programming. Approximately 50% of the course is given over to practical work.

Overview:
A 5 day course covering C++ in general on the first three days and real-time issues on the last two. Fifty percent of the course is spent on practical work.

Course Objectives:
• To provide an understanding of the essentials of the C++ programming language.
• To give you practical experience of writing C++ for realtime applications.
• To give you the confidence to apply these new concepts to your next real-time project.

Delegates will learn:
• The core C++ syntax and semantics
• About memory and performance issues associated with C++
• How threading affects the use of the language

Pre-requisites:
• A working knowledge of C

Who Should Attend:
The course is designed for real-time engineers who are embarking on a project using C++ for the first time. It is also targeted at developers currently reluctant to move to C++ from C as they believe it poses too great an overhead. This course will clearly demonstrate both the strengths and weaknesses of C++ versus C.

Duration:
Five days.

Course Materials:
• Delegate Handbook

Related Courses:
• OO-503 Real-Time Systems Design with UML 2.0
• OO-303 Applying Real-Time UML
• AC++-501 Advanced C++
• C++-501 C++ for Embedded Developers
• C++-503 C++ for Non-C programmers
• C-501 C for Real-Time Developers
• RTOS-201 Fundamentals of Real-Time Operating Systems

Course Workshop:
All sections are backed up with comprehensive exercises. The exercises include developing UML-based associations, implementing design patterns and developing solutions to multi-threading problems. The threading exercises use the Win32 API.

Course Outline

Introduction to real-time systems
- What is a real-time computer system
- The need for a rigorous development procedure
From C to C++
- Non object-oriented C++ enhancements to basic C
- Conveniences of C++ over and above C
Introduction to Object Oriented (OO)
Principles

- Key characteristics of OO development
- OO techniques and the real-time software development process
Introduction to Classes
- Classes & class instances
- Methods
- Constructors & destructors
More on Classes
- Inlining member functions
- const member functions
- static class members and functions
- arrays of classes
- implementing object relationships
Inheritance
- Building class hierarchies
- Dynamic binding for class methods, virtual functions
- Polymorphism
Multiple inheritance (MI)
- MI and interfaces
Functions and Operators
- Class defined conversions
- Overloading and function selection
- Friend functions
- Overloading operators
- Dynamic memory allocation revisited
Exception Handling
- What are exceptions?
- Throwing and Catching exceptions
- Rethrowing exceptions
- Catch all handlers
- Exception specifications
Templates
- Introduce parameterised types and functions
- Function templates
- Class templates
The Standard Library
- Introducing the Standard Template Library
Software Structuring
- Structuring large scale software systems
- Separate implementation from interface header files
- Dealing with name conflicts
- Linking with other languages
Patterns:
- Pattern origins and history
- Singleton
- Proxy
- Command
Implementing Associations:
- Associations
- Uni- and Bidirectional 1:1, 1:N, 1:*
- Aggregation & Composition aggregate
Threading Basics:
- Concurrency;
- CreateThread API.
C++ Threading:
- Thread-Runs-Function
- Thread-Is-Polymorphic object;
- Thread-Runs-Polymorphic object.
Mutual Exclusion:
- Resource access in multitasking systems
- Mutex Class
- Mutex Interface
- Guards
- Template Locking Policy
Mutual Exclusion Issues:
- Priority Inversion
- Deadlock
Thread Synchronisation:
- Signalling
- Condition Objects

 telelogic website

Training Courses
C Training Courses
C++ Training Courses
Embedded Linux
Training Courses

Java Training Courses
Microsoft Embedded Training Courses
MISRA-C Training Courses
RTOS Training Courses
Software Engineering Training Courses
SNMP Training Courses
SysML Training Courses
TCP/IP Training Courses
Testing Training Courses
Microsoft Windows Device Driver Courses
UML Training Courses

Feabhas Codes
AC-401
AC++-501
AWDM-501
CE-501
C-501
C++-303
C++-501
C++-502
C++-503
EL-201
EL-202
EL-301
EL-503
EL-504
J-501
J-502
MC-101
MSDN-2530
MSDN-2535
MSDN-2540
MSDN-2545
MSDN-2540N
NDIS-501
OO-101
OO-301
OO-503
RB-201
RTOS-201
SE-401
SE-501
SNMP-301
T-401
TCP-401
WDF-501
WDM-501