c2
Connect on:
  • Home
  • Course Centre
    • Project Management >
      • Professional Project Management
      • Project Management Essentials
      • Managing Project Requirements
      • Scheduling & Cost Control Project Managers
      • Project Leadership, Management & Communication
      • Risk Management for Project Managers
      • Negotiation Skills for Project Managers
      • Managing Remote Project Teams
      • Project Quality Management
      • Project Procurement Management
      • Earned Value Management
      • Professional Project Management - Best Practice
      • Professional Project Management - Exam Preparation
      • PRINCE2® Foundation & Practitioner
      • PRINCE2® Overview
    • Agile Project Management Courses >
      • Agile Project Management
      • Using Scrum in organistations
      • Certified ScrumMaster
    • Java >
      • Core Java Programming
      • Advanced Java Programming
      • Java Programming & XML
      • Java Networking
      • Java Virtual Machine (JVM)
      • Java & Java EE Open Source Testing Tools
    • Java Enterprise Edition (EE) >
      • Enterprise Java with Hibernate and Spring
      • Developing Java Web Applications
      • Java & Java EE Open Source Testing Tools
      • Spring Framework Development
    • C/C++ Programming >
      • C Programming Techniques
      • C++ Programming Fundamentals
      • C++ for C Programmers
      • Advanced C++ Programming
      • C++ & STL Design Patterns
      • Object Oriented C++ for Real-time Applications
    • Unix/Linux >
      • Linux Fundamentals
      • Linux Administration Essentials
    • Windows Server Courses >
      • Installing and Configuring Windows Server 2012
      • Windows Server 2008 - Server Administration
      • Configuring Windows Server 2008 Active Directory
    • .NET Courses >
      • ASP.NET MVC 4.0
    • Perl Programming Courses >
      • Perl Programming
      • Advanced Perl Programming
    • Python Programming Courses >
      • Python Programming
    • Database Courses >
      • MySQL for Developers
    • CompTIA >
      • CompTIA Network+
    • Scripting >
      • JavaScript - Introduction
      • JavaScript - Advanced
    • Data Analysis & Design >
      • Data Analysis & Design - Introduction
      • Data Analysis & Design with UML
    • Microsoft Office Courses >
      • Microsoft Word - Introduction
      • Microsoft Word - Intermediate
      • Microsoft Word - Advanced
      • Microsoft Access - Introduction
      • Microsoft Access - Intermediate
      • Microsoft Access - Advanced
      • Microsoft Excel - Introduction
      • Microsoft Excel - Intermediate
      • Microsoft Excel - Advanced
      • Microsoft Excel - Dashboards
      • Microsoft Excel - Macros
      • Microsoft Excel - Expert
      • Microsoft PowerPoint - Level 1
      • Microsoft PowerPoint - Level 2
      • Microsoft PowerPoint - Advanced
      • Microsoft Outlook - Introduction
      • Microsoft Outlook - To Manage Your Time Efficiently
      • Microsoft Project - Introduction
      • Microsoft Project - Advanced
      • Microsoft Publisher - Introduction
      • Microsoft Visio - Introduction
    • Solaris >
      • Solaris 10 Administration
  • Testimonials
  • About
  • Contact

Object Oriented C++ for Real-time
Applications

Course Description

Real time is a level of computer responsiveness that a user senses as sufficiently immediate or that enables the computer to keep up with some external process (for example, to represent the process as it constantly changes). C++ is an object-oriented programming language that implements data abstraction using classes, along with other features, allowing object oriented programming. C++ is one of the most popular software programming languages for software development in the world.

This course is an in-depth Object Oriented (OO) development for Real-Time applications training course that specifically uses the C++ programming language and Unified Modeling Language (UML). The course covers both C++ and UML with the intention for building real-time embedded software systems. The course also covers real-time development using C++ by focusing on language features that support various real-time development techniques.

Course Duration

5 days

Course Objectives

On completion of this course delegates will:

• Have learned and practiced object oriented concepts and modeling
• Have learned and used the Unified Modeling Language (UML) notations
• Use the C++ programming language to develop OO software systems
• Be familiar with operator overloading for user defined types
• Understand and design OO systems using inheritance, polymorphism and dynamic binding
• Appreciate the real-time specific features and techniques when writing embedded software
• Appreciate and manage issues related to target specific code that affect portability
• Be able to write interrupt-driven real-time systems using C++
• Be familiar with exception handling mechanisms in C++
• Be familiar with generic programming using C++ templates
• Understand various concurrent programming techniques

Course Content

Embedded C++
Introduction to Embedded C++ features and development considerations  

Review of C++ Programming Features
Intrinsic data types, operators, C++ storage, pointers, arrays, references, functions and function pointers, arrays and using header files 

Object Oriented Concepts and UML
Introduction to important Object Oriented (OO) concepts including classes versus instances, coupling and cohesion, abstract versus concrete classes, inheritances, composition, association, polymorphic and dynamic binding, interface versus implementation, component-based development and introduction to the Unified Modelling Language  as a tool for OO development

C++ Object Oriented Features
Classes and structs, definition versus implementation, encapsulation, access regions and information hiding, this pointer, member function definition, inline functions, friend functions and classes, constructors and destructors

Overview of Operator Overloading
Default operators, operator functions, overloading binary operators, overloading unary operators, friend and member functions, overloading assignment

Inheritance
Deriving classes, virtual functions, dynamic binding, private versus public inheritance, scope resolution,
constructing derived classes, member initialisation list, multiple inheritance

Real-Time Programming
C++ support to low-level programming, hardware access, bit level manipulation, union, I/O operations through polling and interrupt

Using Interrupts
Purpose of interrupt programming, interrupt service routines ISR, functional approach to designing ISRs, OO
approach to ISRs

Writing Target Specific Code
Choosing data types, portability considerations, avoiding non-deterministic behaviour, non-standard features, using assembly language code, target memory considerations

Introduction to Templates
Parameterised types, template classes and functions, template instantiation, template arguments

Introduction to Exceptions
Purpose of exception handling, support for exception handling, grouping exceptions, resource management and termination semantics

Concurrent Programming
Concurrency, scheduling and multi-tasking, concurrent programming techniques, managing shared resources,
mutual exclusion, semaphores, and task synchronisation

Who should attend?

This course is designed for real time developers who want to develop the C++ programming language for use on real time and embedded applications.

Pre-requisites

Delegates must have a proficient knowledge of the C programming knowledge.  Some knowledge of C++ may be advantageous.
Powered by Create your own unique website with customizable templates.