Application Development & Programming Training Icon

Object Oriented Design Patterns and Best Practices in C++


5 Days Classroom Session   |  
5 Days Live Online
Classroom Registration
Individual:
$2595.00
Live Online Registration
Live Online:
$2595.00
Private Onsite Package

This course can be tailored to your needs for private, onsite delivery at your location.

Request a Private Onsite Price Quote

Professional Credits

IIBA (CDU)

ASPE is an IIBA Endorsed Education Provider of business analysis training. Select Project Delivery courses offer IIBA continuing development units (CDU) in accordance with IIBA standards.

PMI (PDU)

Select courses offer Leadership (PDU-L), Strategic (PDU-S) and Technical PMI professional development units that vary according to certification. Technical PDUs are available in the following types: ACP, PBA, PfMP, PMP/PgMP, RMP, and SP.

Certification
Overview

Geared for experienced developers, Object-Oriented Design Patterns and Best Practices in C++ is lab-intensive hands-on design patterns training course that explores the most common object-oriented design patterns (Gang of Four) and how to use these patterns to develop solid, robust and reusable software development applications. Students will also review essential OO programming concepts. 

Working in a hands-on environment, developers will explore key Creational, Structural and Behavior Design patterns and how they used most effectively in building robust, reusable applications. This course combines the use of hands-on coding labs with several “mini-projects” to be completed throughout the training to get the students using and reviewing the Patterns in a practical manner.  All lab coding work and examples can be performed working in a C++ development environment.  The course also contains several “thinking and drawing” lab exercises as a component of the object-oriented overview portion of the training course.

Upcoming Dates and Locations
All Live Online times are listed in Eastern Time Guaranteed To Run

There aren’t any public sessions currently scheduled for this course, but if you fill out the form below, we can tell you about how we can bring this course to you!

Course Outline

Part 1: Introduction to OO Analysis & Design

 Lesson: Introduction to OO Design Domains

  • The Process of OO Analysis and Design
  • OOAD Process
  • Requirements Capture
  • Analysis
  • Domain Design
  • Detailed Design
  • Architectural Design

 

Lesson: Classes and Objects

  • Classes
  • Responsibilities and Operations
  • Instances
  • Messages and Objects
  • Encapsulation
  • Inheritance
  • Method Overriding
  • Aggregation
  • Polymorphism
  • Polymorphism Diagram

 

Lesson: Review of UML Diagrams

  • What is UML?
  • Introduction
  • Class Diagram
  • Interaction Diagrams
  • Sequence Diagrams
  • Communication Diagrams
  • State Machine Diagrams
  • Activity Diagram
  • Implementation Diagrams

 

Part 2: Object-Oriented Analysis and Design

Lesson: Analysis Through Use Cases

  • Discovering the Use Cases
  • The Use Case View
  • Actors
  • Use Case
  • Caveats!
  • Extending Use Cases

 

Lesson: Static and Dynamic Design

  • Static Design Overview
  • Identifying "Good" Classes
  • Specialization is not Always Appropriate!
  • Organizing Classes into Packages
  • Packages
  • Using Packages
  • Dynamic Design Overview

 

Lesson: Domain Design

  • Domain Design
  • Detailed Design
  • Responsibilities
  • Golden Rules
  • Low Coupling Examined

 

Part 3: Introduction to Design Patterns

Lesson: Introduction to Design Patterns

  • History and Overview of Patterns
  • The Problem Definition
  • Basics
  • Software Community
  • Why Choose a Design Pattern?
  • Definitions
  • Problems & Solution
  • Crucial Qualities
  • What is Not a Pattern?
  • Anti-Patterns
  • Patterns: Relating to Methodologies
  • Design Patterns
  • Potential Problems with Patterns
  • Classification Criteria & Description
  • Patterns and Principles
  • The Selection Process
  • Creational; Structural, Behavioral
  • Gang of Four Patterns
  • Synopsis of GoF Patterns

 

Session: Exploring Creational Design Patterns

Each Pattern below will include:

  • Context; Problem; Solution
  • Components; Implementation
  • Code Examples; Consequences
  • Review and Summary
  • Supplemental Information

 

Lesson: Creational Patterns

  • Factory Method
  • AbstractFactory
  • Singleton
  • Builder
  • Prototype

 

Lesson: Survey of Creational Design Patterns

  • Comparison of Creational Patterns
  • Factory, Singleton, and Builder Analysis

 

Part 4: Exploring Structural Design Patterns

 Each Pattern below will include:

  • Context; Problem; Solution
  • Components; Implementation
  • Code Examples; Consequences
  • Review and Summary
  • Supplemental Information

 

Lesson: Structural Patterns

  • Façade
  • Composite
  • Adapter
  • Proxy
  • Bridge
  • Decorator

 

Lesson: Survey of Structural Design Patterns

  • Common Trends Among Structural Patterns
  • Comparison of Structural Patterns
  • Factory, Singleton, Composite, & Bridge Analysis

 

Part 5: Exploring Behavioral Design Patterns

 NOTE: Each Pattern below will include:

  • Context; Problem; Solution
  • Components; Implementation
  • Code Examples; Consequences
  • Review and Summary
  • Supplemental Information

 

Lesson: Behavioral Patterns

  • Iterator
  • Observer
  • Command
  • Strategy
  • Façade and Observer Analysis
  • Visitor
  • Interpreter
  • Chain of Responsibility
  • Mediator
  • State

 

Lesson: Survey of Behavioral Design Patterns

  • Common Trend Among Behavioral Patterns
  • Encapsulation
  • Objects as Arguments
  • Decoupling Senders from Receivers

 

Part 6: Base Patterns

 NOTE: Each Pattern below will include:

  • Context; Problem; Solution
  • Components; Implementation
  • Code Examples; Consequences
  • Review and Summary
  • Supplemental Information

 

Lesson: Base Patterns

  • Base Patterns
  • Base Patterns and GoF Patterns
  • Gateway
  • Servlet Using a Gateway
  • Gateway Pattern – Awkward System
  • Separated Interface
  • Registry: Introduction
  • Special Case

 

Part 7: Working with Patterns

 

Lesson: Applying Patterns

  • Usefulness of Patterns
  • Selecting the Right Pattern
  • Adapting an Existing Pattern
  • Creating a New Pattern
  • Language Considerations

 

Lesson: Packaging Principles

  • Packages
  • Packages - Principles of Package Cohesion
  • Reuse-Release Equivalency Principle
  • Common Closure Principle
  • Common Reuse Principle
  • Packages - Principles of Package Coupling
  • Acyclic Dependencies Principle
  • Stable Dependencies Principle
  • Stable Abstractions Principle

 

Lesson: Metrics

  • Metrics
  • Instability metric
  • Abstractness metric
  • Main Sequence

 

Who should attend

This an introductory-level programming course, designed for experienced C++ developers who need to identify, design, and lead the implementation of OO projects. We will explore and apply the terminology, the specification, the processes and technologies specific to OO. Examples are written in C++.

 

Attendees should be familiar with UML and have basic programming experience in C++.  This course is not recommended for developers new to C++ programming.

Pre-Requisites

This an introductory-level programming course, designed for experienced C++ developers who need to identify, design, and lead the implementation of OO projects. We will explore and apply the terminology, the specification, the processes and technologies specific to OO. Examples are written in C++.

 

Attendees should be familiar with UML and have basic programming experience in C++.  This course is not recommended for developers new to C++ programming.

0
1