Object-Oriented Design Patterns and Best Practices in C++

Learn in-depth about object-oriented design patterns and techniques to work effectively with C++

Course Code : 1351
Object-Oriented Design Patterns and Best Practices in C++ 0 5 0

$2595

Overview

This course offers participants, hands-on experience with the most common object-oriented design patterns. During the course, they will learn how to apply these patterns to build superior-quality, reusable software development applications. In addition, participants will also review essential OO programming concepts as part of the program to help them develop a strong fundamental knowledge of object-oriented design patterns. The course framework is designed with sessions which require participants to work in coding labs as well as undertake several ‘mini-projects’ throughout the program to help participants effectively apply and review the design patterns in a practical manner. The course focuses on relatively advanced topics, selected specifically to provide participants with an extensive background on concepts relating to OO, combining the latest and most efficient techniques with the most effective practices.

Schedule Classes

Looking for more sessions of this class?

Course Delivery

This course is available in the following formats:

Live Classroom
Duration: 5 days

Live Virtual Classroom
Duration: 5 days

What You'll learn

  • Explore core concepts of Object-Oriented analysis and design using UML
  • Effectively assign responsibilities using the patterns and principles of GRASP (General Responsibility Assignment Software Patterns)
  • Use Creational, Structural and Behavior design patterns to effectively build robust, reusable applications
  • Complete all lab coding work in a C++ development environment
  • Explore a wide variety of design patterns, targeting multiple levels of coverage, focusing on the most commonly used patterns, and survey other lesser-used patterns

Outline

  • Introduction to OO design domains
    • The Process of OO analysis and design
    • OOAD process
    • Requirements capture
    • Analysis
    • Domain design
    • Detailed design
    • Architectural design
  • Classes and objects
    • Classes
    • Responsibilities and operations
    • Instances
    • Messages and objects
    • Encapsulation
    • Inheritance
    • Method overriding
    • Aggregation
    • Polymorphism
    • Polymorphism diagram
  • Review of UML diagrams
    • What is UML?
    • Introduction
    • Class diagram
    • Interaction diagrams
    • Sequence diagrams
    • Communication diagrams
    • State Machine diagrams
    • Activity diagram
    • Implementation diagrams
  • Analysis through use cases
    • Discovering the use cases
    • The use case view
    • Actors
    • Use case
    • Caveats!
    • Extending use cases
  • 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
  • Domain design
    • Domain design
    • Detailed design
    • Responsibilities
    • Golden rules
    • Low coupling examined
  • 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
  • Creational patterns
    • Factory method
    • AbstractFactory
    • Singleton
    • Builder
    • Prototype
  • Survey of creational design patterns
    • Comparison of creational patterns
    • Factory, singleton, and builder analysis
  • Structural Patterns
    • Façade
    • Composite
    • Adapter
    • Proxy
    • Bridge
    • Decorator
  • Survey of structural design patterns
    • Common trends among structural patterns
    • Comparison of structural patterns
    • Factory, singleton, composite, & bridge analysis
  • Behavioral Patterns
    • Iterator
    • Observer
    • Command
    • Strategy
    • Façade and Observer Analysis
    • Visitor
    • Interpreter
    • Chain of Responsibility
    • Mediator
    • State
  • Survey of behavioral design patterns
    • Common trend among behavioral patterns
    • Encapsulation
    • Objects as arguments
    • Decoupling senders from receivers
  • Base patterns
    • Base patterns
    • Base patterns and GoF patterns
    • Gateway
    • Servlet using a gateway
    • Gateway pattern – awkward system
    • Separated interface
    • Registry: Introduction
    • Special case
  • Applying patterns
    • Usefulness of patterns
    • Selecting the right pattern
    • Adapting an existing pattern
    • Creating a new pattern
    • Language considerations
  • 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
  • Metrics
    • Metrics
    • Instability metric
    • Abstractness metric
    • Main sequence
View More

Prerequisites

Participants must have basic programming experience in C++.  This course is not recommended for developers new to C++ programming.

Who Should Attend

Anyone interested in the paradigm shifts necessary to enable organizational agility in today’s innovative business climate will find the Business Agility Foundations course compelling. The course is highly recommended for –

  • Current and aspiring business agility leaders
  • Business change agents
  • Business leaders
  • Business managers
  • Value managers
  • Product owners
  • Product managers
  • Anyone wanting a certification in ICAgile Business Agility Foundation (ICP-BAF)
  • Anyone wanting to be an ICAgile Certified Expert in Business Agility

Interested in this course? Let’s connect!

Customer Reviews

Name
Email
Review Title
Rating
Review Content

No reviews yet